среда, 30 июля 2008 г.

Внедрение никсов

Итак, сегодня в нашей организации стартовал проект Внедрение никсов ))
Я должен был проводить вводный семинар по данной теме, но опоздал на него на полтора часа, благодоря МГТСникам, работу коих по прокладке оптики сегодня принимал на 2-х объектах. Тем не менее семинар состоялся: внедрению никсов - быть! )

пятница, 25 июля 2008 г.

Open source и государство

Сегодня говорил с сотрудником одного федерального агенства, занимается он там тем, чем в коммерческой структуре занимается IT директор. Заговорили о линуксе и государстве, он показал мне брошюру от info-foss.ru. В ней шла речь о необходимости внедрения опенсорса в госструктурах, о GPL, об опыте других стран и пр. Вступление было от минсвязи. Этот человек сказал, что эти книжечки распространяются по госслужбам. Может, начало действительно положено? Хотелось бы верить.

Деньги за предустановленную винду

Как один человек вернул деньги за отказ от использования предустановленной свисты:
ссылка

четверг, 24 июля 2008 г.

Пага Хаммера

Оказывается, у Хаммера есть пага на PDJ, надо заглянуть, послушать. Ссылка на пагу.

суббота, 19 июля 2008 г.

Еноты-воришки

Пара забавных роликов про енотов:



пятница, 18 июля 2008 г.

Преобразование IP адреса в целое число

Для осуществления моего проекта почтового клиента мне потребовалась функция, для перевода строки, содержащий IP адрес в челое число. Нигде не нашёл решения для C++, решил написать свою функцию. Вот, может кому пригодится:

#include <iostream>
#include <cstdlib>

using namespace std;

int iptoint(char* str)
{
int ip = 0;
int i;
str = str - 1;
for (i = 3; i >= 0; i--)
ip = ip + (strtol(str + 1, &str, 10) << 8 * i);
return ip;
}

Мой будущий почтовый клиент

Параллельно с изучением Postfix начал писать в образовательных целях одну штуку. Это будет простой почтовый клиент, к которому я со временем прикручу гуй на Qt, а впоследствии поддержку шифрования. Таким образом, я укреплю свои знания в области сокетов и smtp протокола, а также окунусь в ООП.

Пишу на C++, пытаясь максимально придерживаться парадигмы ООП.
Пока готов набросок класса Socket, кот. будет использоваться для соединения с сервером и готов класс Message, объект которого будет письмом.

воскресенье, 13 июля 2008 г.

Postfix + TLS

Здесь я буду постить результаты своих попыток прикручивания TLS к Постфиксу.

Для начала нам нужен сертификат нашего центра сертификации:

#cd /usr/share/ssl/misc
#./CA.pl -newca

В процессе создания говорим, что common name - имя нашего хоста.

Получаем каталог /usr/share/ssl/demoCA, в кот. есть файлик cacert.pem, ставим этот сертификат конкверором.

Делаем сертификат Постфикса:
из каталога /usr/share/ssl

#openssl req -new -nodes -keyout postfix_private_key.pem -out postfix_private_key.pem -days 730
#openssl ca -policy policy_anything -out postfix_public_cert.pem -infiles postfix_private_key.pem
если в процессе выполнения второй команды получаем ошибки открытия файлов - значит есть проблема с путями (т.к. путь к закрытому ключу сервера относительный, то имеет значение, откуда даётся команда).

Дальше делаем каталог /etc/postfix/certs, куда копируем /usr/share/ssl/demoCA/cacert.pem и созданные для постфикса закрытый ключ postfix_private_key.pem и сертификат postfix_public_cert.pem. Устанавливаем на ключ права 600.

Пишем в /etc/postfix/main.cf :

smtpd_use_tls = yes
tls_random_source = dev:/dev/urandom

smtpd_tls_key_file = /etc/postfix/certs/postfix_private_key.pem
smtpd_tls_cert_file = /etc/postfix/certs/postfix_public_cert.pem
smtpd_tls_CAfile = /etc/postfix/certs/cacert.pem

smtpd_tls_loglevel = 2
smtpd_tlsreceived_header = yes
Таким образом мы включили TLS, сказали, где генератор случайных чисел, сертификаты, а таже установили детальные логи для tls и добавление заголовков.

Внимание - грабли!

В /etc/postfix/master.cf раскомментируйте строку
tlsmgr unix - - n 1000? 1 tlsmgr
Иначе получите ошибки, вроде:
Jul 15 15:26:19 deck postfix/smtpd[3098]: initializing the server-side TLS engine
Jul 15 15:26:19 deck postfix/smtpd[3098]: warning: connect to private/tlsmgr: Connection refused
Jul 15 15:26:19 deck postfix/smtpd[3098]: warning: problem talking to server private/tlsmgr: Connection refused
Jul 15 15:26:20 deck postfix/smtpd[3098]: warning: connect to private/tlsmgr: Connection refused
Jul 15 15:26:20 deck postfix/smtpd[3098]: warning: problem talking to server private/tlsmgr: Connection refused
Jul 15 15:26:20 deck postfix/smtpd[3098]: warning: no entropy for TLS key generation: disabling TLS support
Убеждаемся, что всё работает:

#openssl s_client -starttls smtp -connect localhost:25
Если мы видим данные о сертификате и ожидание дальнейшего ввода - значит всё правильно.

А так, как ранее мы прикрутили к нашему серваку plaintext аутентификацию, то имеет смысл засунуть её под шифрование, /etc/postfix/main.cf:
smtpd_tls_auth_only = yes
Коннектимся телнетом и убеждаемся, что нам не предлагают аутентификацию, а только STARTTLS, опять коннектимся, используя openssl, потом приветствуем сервер и убеждаемся, что теперь аутентификация возможна.

для оптимизации шифрования добавляем в конфиг:

smtpd_tls_session_cache_database = sdbm:/etc/postfix/smtpd_scache
smtpd_tls_session_cache_timeout = 3600s

Продолжение следует...

четверг, 10 июля 2008 г.

Ссылки по теме Postfix + virtual users

Postfix Virtual Domain Hosting Howto
Настраиваем виртуальный почтовый хостинг с ипользованием Postfix и dovecot.

Postfix + SASL

Сразу оговорюсь, что всё как следует написано в Postfix SASL Howto, этот мануальчик я пишу на всякий случай. Мануал не будет "пошаговым" и подробным, только необходимое. Скорее всего, по мере моего продвижения в этой теме, пост будет пополняться.


Итак, предполагается, что сам постфикс и сасл уже стоят, а в конфиге постфикса прописаны всякие там myhosname и пр.
Пока рассмотрим механизм plain и использования sasldb (обычная берклевская БД).
В конфиге /etc/sasl2/smtpd.conf пишем:

pwcheck_method: auxprop
auxprop_plugin: sasldb
mech_list: plain login

В конфиге постфикса /etc/postfix/main.cf добавляем:

smtpd_sasl_auth_enable = yes
этим мы включаем аутентификацию.

Теперь надо указать, юзерам какой области (realm) разрешить аутентификацию, например для нашего хоста это будет:

smtpd_sasl_local_domain = $myhostname


Тогда постфикc в базе sasldb будет искать юзеров из домена myhostname, таким образом, правильно заводить юзеров надо так:

#saslpasswd2 -c -u `postconf -h myhostname` yakrevedko
Естественно, в качестве сасловской области можно прописать mydomain, тогда и юзеры должны быть соответствующие.

Чтобы постфикс мог обращаться к sasldb, надо его сделать хозяином файлика.

Теперь сделаем так, чтобы через наш сервак могли отправлять почту только прошедшие аутентификацию юзеры, за исключеним случая отправки писем нам самим:

smtpd_recipient_restrictions = permit_mynetworks, permit_auth_destination,
permit_sasl_authenticated,reject_unauth_destination
Возможность аутентификации для "ущербных" клиентов:

broken_sasl_auth_clients = yes
Пока вроде всё..

Ура!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Аааааааааааааааааа!!!!!!!!!!!!!!!!!
получилось!!!!!!!!!!!!!!!!!!!!!
235 2.7.0 Authentication successful
!!!
Наконец-то я завёл sasl аутентификацию. Долго у меня каменная чаша не выходила, а всё из-за того, что проморгал в манах строчку:
IMPORTANT: To get sasldb running, make sure that you set the SASL domain (realm) to a fully qualified domain name.
Ладно, пора спать идти, завтра напишу краткий ман по прикручиванию сасла к постфиксу.

среда, 9 июля 2008 г.

Катание на супербайке

Сегодня, вернее уже вчера, товарищ Мегавольт подбросил меня до метро на своём Кавасаки. Вообще, круто было прокатиться, только несколько отвлекали две вещи - я пытался не свалиться с мотоцикла и пытался не потерять шлем Мегавольта, который я как следует не закрепил )
Особо порадовало, как мотик рвёт с места, правда, особо разогнаться было негде, но оно к лучшему )

четверг, 3 июля 2008 г.

Рекорд состоялся!

Цитата с Spreadfirefox :
Благодаря поддержке изумительного сообщества Mozilla, мы установили Мировой Рекорд Гиннесса для программы с наибольшим количеством загрузок за 24 часа.

И откуда такие берутся..

среда, 2 июля 2008 г.

Происки АОЛ

Вчера копытцо мне сказало - аська не работает, старый клиент. Обновил копыту - заработало. Сегодня прочитал, что асечные сервера стали требовать поддержку 6 протокола. Интересно, нет ли тут связи с пропихиванием аккаунта 12111 ?.. ИМХО, аол всё же ищет пути впаривания людям, юзающих квип, пиджин и т.д., своего поганого клиента.