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

ASUS EEE PC 900

Заказал для своих бухов сей девайс в oldi. Сразу отмечу, что он белый, а не как у них на картинке черный, это минус. Меня уже достаточно давно не устраивает эта контора, но это моё ИМХО, которое я полноценно озвучивать сейчас не собираюсь.

В общем... это книжка, такая книжечка. Не большая книжечка ( хочу взять фотик у своего свояка, классный креатифщег, что бы заснять в нормальном виде.)
Удобен для моих админских дел, сея устройство подходит, причем очень. Правда клавиатура совсем не привычная. Зато чехол к буку меня радует. Слабая печатная машинка с функцией mp3 плеера, если вам это подходит, то берите.
P.S.: Не курю, поэтому нарушу традицию с зажигалкой, кстати на нем фото его соседа, это фото сделано тем же соседом, которым я пользовался для написания этого сообщения.
P.P.S.: Заказал третий ноут, на этот раз пришел негретенок. Кстати, смотрится симпатично.
Несколько знакомых уже оценили это чудо, ждут денег на покупку.

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

DBMAIL+POSTFIX+MYSQL+SASL(PAM) DEBIAN

Собственно решил настроить эту связку. Парился долго.

Пролог.
Как-то не раз парился с mbox и maildir и вот посмотрел на dbmail и понял, чем он меня заинтересовал:
1. Управление через БД
2. Хорошая возможность репликации

Поэтому начнем.
Часть 1. debian
За основу был выбран debian lenny, кто-то проругается, кто-то нет. Ибо из коробки dbmail есть и ничего лишнего прописывать не надо.
~# Подразумевается корневая директория рута, ну и собственно пользователь root
Часть 2. mysql
Вопрос стал в том, что база уже есть и по ней идет регистрация пользователей в системе по средством pam. Т.е. связка pam+mysql уже реализована.
Итак:
~# aptitude install mysql-server mysql-common
Часть 3. dbmail
~# aptitude install dbmail-mysql ~# mysql
А теперь добавим БД и пользователя dbmail
mysql> create database dbmail;
mysql> grant all privileges on dbmail.* to dbmail identified by 'dbmail_pass';
mysql>exit
Зайдем в каталог, где хранится пример базы данных для dbmail'a
~# cd /usr/share/dosc/dbmail-mysql/examples
Разархивируем в файл dbmail.mysql (вдруг понадобиться подредактировать)
~# gzip -cd create_tables.mysql.gz > dbmail.mysql
И создадим все таблицы в БД dbmail
~# mysql -h 127.0.0.1 -u dbmail -p dbmail <>Затем заменяем строки в файле /etc/dbmail/dbmail.conf на:
driver = mysql
authdriver = sql
host = 127.0.0.1
sqlport = 3306
user = dbmail
pass = dbmail_pass
db = dbmail
encoding = latin1
С поледним пунктом не всё так ясно, по идее utf8 проходить должен, но dbmail ругается, по этому решил использовать latin1.
Тут ещё можно добавить в секцию [lmtp] опцию BINDIP=127.0.0.1, ну да ладно, хотя сделать это стоит.
Далее идем в /etc/default/dbmail и дописывает
dbmail-lmtpd
dbmail-imapd
Сюда можно было и dbmail-pop3d, но мне этот протокол не нравится, ввиду его древности.
Далее говорим
~# /etc/init.d/dbmail start
Советую проверить как работает dbmail
~# dbmail-util -a
На этом наше повествование по поводу dbmail'а закончено.
Часть 4. postfix
Один из интереснейших разделов, ибо конфиг до жути простой получается:
Надо добавить строчку в /etc/postfix/master.cf
dbmail-lmtp unix - - n - - lmtp
Далее привожу пример пробного рабочего конфига /etc/postfix/main.cf

biff = no

append_dot_mydomain = no
readme_directory = no

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

smtpd_sasl_path = smtpd
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
broken_sasl_auth_clients = yes
smtpd_sasl_authenticated_header = yes

myhostname = mail.first_domain.ru
mydomain = first_domain.ru
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = $mydomain
mydestination = first_domain.ru, second_domain.org, localhost
mynetworks = 127.0.0.0/8
mynetworks_style = host
local_recipient_maps =
mailbox_transport = dbmail-lmtp:localhost:24
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:60000

Несколько моментов к пояснению. В mydestination дописывать надо те доменные имена для которых вы хотите получать почту (на самом деле, не этот параметр, но настройки в таком виде пойдут). И chech_policy_service inet:127.0.0.1:60000 опращается к сервису greylist висящем на 60000 (прочтите про него, если не знаете), устанавливается он
~# aptitude install postgrey
Т.е. данный конфиг не сильно отличается от того, который по умолчанию.
На этом с postfix'ом я заканчиваю, сюда можно навернуть ещё многое чего (антиспам, антивирь, tls), но для моих практических изысканий подошло в самый раз.
Часть 5. SASL + PAM +MYSQL
Вот с этой связкой я нарыбачился, очень нарыбачился.
в качестве sasl будем использовать вот такое:
~# aptitude install libsasl2-2 libsasl2-modules sasl2bin
Далее следуя логике того, что наш доблестный postfix почему-то chroot'ился, накой его бес попутал - я не знаю, делаем следующее:
~# mkdir -p /var/spool/postfix/var/run/saslauthd
~# chown :sasl /var/spool/postfix/var/run/saslauthd
~# ln -sf /var/spool/postfix/var/run/saslauthd /var/run/saslauthd
~# adduser postfix sasl
На самом деле вышеизложенные строчки, далеко не так очевидны, из-за отсутствия одной из них убил день, при этом долго не понимал, что происходит.
Далее создадим файл /etc/postfix/sasl/smtpd.conf со следующим содержанием:
pwcheck_method: saslauthd
Затем скажем так:
~# ln -sf /etc/postfix/sasl/smtpd.conf /usr/lib/sasl2/smtpd.conf
И создадим /etc/pam.d/smtp c таким содержанием:
auth required pam_mysql.so user=dbmail passwd=dbmail_pass db=dbmail table=dbmail_users usercolumn=userid passwdcolumn=passwd crypt=1
account sufficient pam_mysql.so user=dbmail passwd=dbmail_pass db=dbmail table=dbmail_users usercolumn=userid passwdcolumn=passwd crypt=1
И... всё.
Эпилог.
Проверка аутентификации производите через
~# testsaslauthd -u username -p password
Для добавления пользователей я использовал
~# dbmail-users -a test -s test@first_domain.ru -W -p crypt

От автора.
В ходе этой работы, я ещё глубже копнул в постфикс и настучал себе шишек, что пропорционально набранному опыту.
Учится на чужих ошибках тяжело, а на своих ещё тяжелее.