И так прижало мне сделать для себя почтовый сервер на своём сервере. раньше оно работало из коробки и я горя не знал, но тут оказалось, что надо всё делать ну чтож приступим
ubuntu 8.10
UPD:
Прошло время, и сервер поднял по более стабильному варианту, всем рекоемндую
http://sudouser.com/ustanovka-pochtovogo-servera-postfix-dovecot-mysql-i-virtualnyx-domenov.html
Стами 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
На этом всё, можно пользоваться, рекомендую ещё настроить шифрование, но мне оно не нужно было
Настройка клиента
Буду на основе Аутглюк экспресс.
Добавляем почтовый акк, в общем всё как обычно КРОМЕ
не ставим галочку
“Использовать безопасную бла бла SPA”
и ставим галочку ниже Сервер исходящей почты “проверка подлинности пользователя”
И всё можно пользоваться