Mail server - xmail
Сервер почты на postfix (smtp), sasl2 (Авторизция) cyrus-pop3d (POP3 демон) ставим пакеты:
apt-get install postfix libsasl2-2 libsasl2-modules sasl2-bin cyrus-imapd-2.2 cyrus-pop3d-2.2 cyrus-admin-2.2
Во время первоначальной настройки postfix укажите конфигурацию для Интернет-сайта (Internet Site). На вопрос об имени почтового сервера-оставьте вариант по-умолчанию или укажите свой. В нашем случае это было domain.ru
Настроим сервер авторизации saslauthd на использование базы данных паролей sasldb2. Для этого отредактируем файл /etc/default/saslauthd:
START=yes MECHANISMS="sasldb"
Запускаем сервис
/etc/init.d/saslauthd start
проверим работает ли он, но для начала необходимо добавить хотя бы одного пользователя.
proxy:~# saslpasswd2 test Password: Again (for verification):
смотрим список пользователей
proxy:~# sasldblistusers2 test@proxy: userPassword
Пробуем авторизироваться
proxy:~# testsaslauthd -u test -p test
На что получаем ответ
0: OK "Success.
У почтового сервера postfix есть одна особенность — после запуска он работает в chroot окружении, которое находится в папке /var/spool/postfix/
Учитывая то, что для авторизации пользователей postfix будет использоваться демон saslauthd, нам нужно перенести его socket в рабочую директорию нашего сервера /var/spool/postfix/. Самый простой способ сделать это заключается в монтировании в нужную папку директории с уже созданным сокетом демона saslauthd.
Делается это редактированием файла /etc/fstab.
/var/run/saslauthd /var/spool/postfix/var/run/saslauthd none rw,bind 0 0
Не забудьте поставить [Enter] после последней строки. Создаём каталог и монтируем.
mkdir -p /var/spool/postfix/var/run/saslauthd mount /var/run/saslauthd
Настраиваем postfix на работу с sasl авторизацией Добавим в /etc/postfix/main.cf
smtpd_sasl_local_domain = smtpd_sasl_auth_enable = yes smtpd_sasl_security_options = noanonymous broken_sasl_auth_clients = yes smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination smtpd_sasl_authenticated_header = yes smtpd_sasl_application_name = smtpd
запретим отсылать почту через наш SMTP шлюз без авторизации. Для этого создадим файл /etc/postfix/sasl/smtpd.conf со следующим содержимым.
pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
Перезапустим наш postfix сервер и просмотрим следующие файлы на предмет ошибок:
/etc/init.d/postfix restart tail /var/log/mail.err tail /var/log/mail.info tail /var/log/mail.warn tail /var/log/mail.log
Если все чисто, сухо и гладко — обратимся к утилите telnet, для того, чтобы подключиться к нашему серверу.
root@proxy:/var/log# telnet localhost 25 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. 220 krasfun ESMTP Postfix (Ubuntu) EHLO www.ru 250-krasfun 250-PIPELINING 250-SIZE 10240000 250-VRFY 250-ETRN 250-STARTTLS 250-AUTH PLAIN LOGIN 250-AUTH=PLAIN LOGIN 250-ENHANCEDSTATUSCODES 250-8BITMIME 250 DSN quit 221 2.0.0 Bye Connection closed by foreign host. root@proxy:/var/log#
Если у вас нечто похожее — продолжаем
Для того, чтобы «подружить» saslauthd и postfix необходимо выполнить следующее:
adduser postfix sasl
Cyrus — это мощный набор POP3/NNTP/IMAP и некоторых других демонов для создания полноценных сервисов работы с электронной почтой.
Отредактируем файл /etc/imapd.conf
admins: cyrus allowplaintext: yes sasl_mech_list: PLAIN sasl_pwcheck_method: saslauthd auxprop sasl_auxprop_plugin: sasldb
Обратите внимание, что cyrus так же, как и saslauthd, придется взаимодействовать с postfix, поэтому их нужно сделать доступными друг другу. Воспользуемся уже известным механизмом:
/etc/fstab : /var/run/cyrus /var/spool/postfix/var/run/cyrus none rw,bind 0 0
создаём каталоги для cyrus.
mkdir -p /var/spool/postfix/var/run/saslauthd mkdir -p /var/spool/postfix/var/run/cyrus mount /var/spool/postfix/var/run/saslauthd mount /var/spool/postfix/var/run/cyrus
Монтируем
mount /var/run/cyrus
предоставим возможность cyrus забирать почту у postfix и отпалять почту на куда угодно. Отредактируем файл /etc/postfix/main.cf:
mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp local_recipient_maps =
Добавим группу и добавим в неё постфикс
addgroup lmtp adduser postfix lmtp
Дальше 2 команды
dpkg-statoverride --remove /var/run/cyrus/socket dpkg-statoverride --force --update --add cyrus lmtp 750 /var/run/cyrus/socket
Добавим пользователя cyrus в нашу базу учетных записей:
saslpasswd2 -c cyrus
Введите пароль, когда вас об этом попросят, и перезапустим наши демоны:
/etc/init.d/postfix start /etc/init.d/cyrus2.2 restart /etc/init.d/saslauthd restart
Добавим почтового пользователя например saber и создадим ему каталоги
saslpasswd2 –c saber cyradm localhost –user cyrus localhost> cm user.saber localhost> cm user.saber.INBOX localhost> cm user.saber.Sent localhost> cm user.saber.Draft localhost> cm user.saber.Trash UPD1 01.02.2013 Эта часть,что выше, устарела немного и пользователь создаётся другим путём, я дословно не помню но примерно так saslpasswd2 saber cyradm login cyrus localhost> cm user.saber localhost> cm user.saber.INBOX localhost> cm user.saber.Sent localhost> cm user.saber.Draft localhost> cm user.saber.Trash
Вот как-то так я добалял пользователей недавно
На этом всё, можно пользоваться, рекомендую ещё настроить шифрование, но мне оно не нужно было ;)
Настройка клиента Буду на основе Аутглюк экспресс. Добавляем почтовый акк, в общем всё как обычно КРОМЕ не ставим галочку «Использовать безопасную бла бла SPA»
и ставим галочку ниже Сервер исходящей почты «проверка подлинности пользователя» И всё можно пользоваться :)