Mail server - xmail: различия между версиями

Материал из support.qbpro.ru
imported>Vix
Нет описания правки
imported>Vix

Версия от 10:50, 1 октября 2013

Сервер почты на 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»

и ставим галочку ниже Сервер исходящей почты «проверка подлинности пользователя» И всё можно пользоваться :)