в этом разделе мы начнём с конца и поставим сначала то, что нужно основному "виновнику торжества" - postfix'у.
cyrus-sasl2
для начала поставим cyrus-sasl2. в зависимости от свежести вашего дерева портов может быть два варианта. для более старого дерева портов вы можете просто сделать:
cd /usr/ports/security/cyrus-sasl2 make -DWITHOUT_OTP -DWITHOUT_CRAM -DWITHOUT_DIGEST -DWITHOUT_NTLM
перед началом сборки должно вылезти красивое текстовое окошечко с кучей опций, из которых для нас важна только одна. остальные желательно убрать, оставив только:
[X] SASLAUTHD
после того, как cyrus-sasl2 собрался, то стандартно:
make install clean
ежели красивого окошечка не выскакивало, то, значит, у вас свежие порты и после всех этих действий у вас все ещё не хватает нужного нам saslauthd. его можно поставить вот таким образом:
cd /usr/ports/security/cyrus-sasl2-saslauthd make install clean
но повторяю, что данный порт есть только в новых портах, в старых портах он включён в порт cyrus-sasl2 и не нужен. теперь поправим конфиг для активации этого самого saslauthd в postfix. редактируем /usr/local/lib/sasl2/smtpd.conf:
pwcheck_method: saslauthd
теперь надо поставить pam-mysql. это делается стандартно:
cd /usr/ports/security/pam-mysql make install clean
после прочтения и осмысливания /usr/local/share/doc/pam_mysql/Readme добавим в /etc/pam.conf следующие строчки:
smtp auth sufficient pam_mysql.so user=mailer passwd=mailer_password db=mail table=users usercolumn=login passwdcolumn=password crypt=1 where=expired=0 smtp account sufficient pam_mysql.so user=mailer passwd=mailer_password db=mail table=users usercolumn=login passwdcolumn=password crypt=1 where=expired=0
не забудем запустить saslauthd:
/usr/local/etc/rc.d/saslauthd.sh start ps ax|grep sasl 363 ?? IWs 0:00,00 /usr/local/sbin/saslauthd -a pam 367 ?? IW 0:00,00 /usr/local/sbin/saslauthd -a pam 368 ?? IW 0:00,00 /usr/local/sbin/saslauthd -a pam 369 ?? IW 0:00,00 /usr/local/sbin/saslauthd -a pam 370 ?? IW 0:00,00 /usr/local/sbin/saslauthd -a pam