... решил Шаман поднят себя imap-сервер. Полгода через SSH логиниться на сервак и читать почту с консоли... мндээээ... стыдно, в общем зато работает!!!. При всем богатстве вариантов альтернативы dovecot'у, в общем-то, нет (Ну, в самом деле! Не громоздить же на "домашний" atom'ный сервер, у которого "в прыжке" меньше 10-ти пользователей DBMail или там Courier мать-его-и-перемать!).
Вечер убил - но сервер поднял ). Особых хитростей там нет (Конфиги ОЧЕНЬ хорошо комментированы, плюс - "в комплекте" идет весь набор документации в wiki-формате), но, как водится, "есть нюансы", читай ГРАБЛИ :) - впрочем, по порядку:
ставим из портов, копируем /usr/share/doc/dovecot/example-config куда надо, начинаем править. Конфиги модульные (По сию пору не могу понять, нравится мне эта "тенденция" или нет - с одной стороны, нарушается "целостность восприятия", с другой - "уместить" в голове содержание пары-тройки "мааа-ааленьких файликов" проще, чем монструозную простыню на пять-шесть экранов) - dovecot.conf + содержимое conf.d, комментариев в них, пожалуй, даже слишком много (По ходу работы - выпилил нафиг, понадобятся - в wiki возьму).
При включении imap автоматически начинает слушаться и imaps на 993 порту, для отключения пришлось предпринять не вполне тривиальное действие - прописать куда надо что-то вроде:
service imap-login{
inet_listner imaps {
port = 0
}
}
Аутентификацию я рожал на сертификатах, так что:
ssl = required (Не 'yes'!)
disable_plaintext_auth
auth_ssl_require_client_cert=yes
auth_ssl_username_from_cert=yes
ssl_verify_client_cert=yes
ssl_cert_username_field=commonName
В качестве БД паролей используем static, запрос пароля отключаем:
passdb {
driver = static
args = nopasword=yes #Уродство, правда?(Ибо нефиг - )
}
userdb - системная /etc/passwd.
В процессе настройки наступил на грабли с:
auth_username_format= - решил lowercase'нуть полученное из сертификата имя и "срезать" доменную часть (Удруг-да появится? ))) для чего воткнул %Lu%n и получил на выходе в debug.log'е shamanshaman в качестве имени пользователя и ошибку поиска в результате. На поиск убил уйму времени и сил, но разобрался.
Еще один гнусный прикол обнаружился при попытке настроить тестовую аутентификацию через PAM - при запуске auth-worker'а от имени обычного пользователя pam_unix выдает UNIX autentication refused и "пишите письма", от root'а же все работает нормально.
В общем, долго ли, коротко - оно работает. Не понятно, правда, как убедить почтовый клиент, что сертификата, в общем-то, достаточно и пересылать имя+пароль не надо от слова "совсем"... впрочем, серверу и так хорошо, а клиент шлет себе '1' и радуется, ага.

@темы: FreeBSD, Жизнь