Содержание
Postfix
Postfix является агентом передачи почты (MTA) в Ubuntu по умолчанию. Он разработан чтобы быть быстрым, простым в администрировании и безопасным. Он совместим с MTA sendmail. Этот раздел описывает как установить и настроить postfix. Здесь также разъясняется как сделать его SMTP сервером, использующим безопасные соединения (для безопасной передачи сообщений).
Установка
Для установки postfix выполните следующую команду:
sudo apt-get install postfix
Просто нажимайте ввод когда процесс установки задает вопросы, очень детальная настройка будет выполнена на следующем этапе.
Базовая настройка
Для настройки postfix, выполните следующую команду:
sudo dpkg-reconfigure postfix
Будет запущен пользовательский интерфейс. На каждом экране выбирайте следующие значения:
Internet Site
mail.example.com
steve
mail.example.com, localhost.localdomain, localhost
No
127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 192.168.0.0/16
0
+
all
Теперь самое время решить какой формат почтового ящика вы хотите использовать. По умолчанию postfix использует формат mbox. Вместо непосредственного редактирования файла конфигурации вы можете использовать команду postconf для настройки параметров postfix. Параметры будут сохранены в файле /etc/postfix/main.cf. В дальнейшем если вы решите переконфигурировать отдельные параметры вы можете как запустить команду, так и вручную поправить файл.
Для настройки формата почтового ящика для Maildir:
sudo postconf -e 'home_mailbox = Maildir/'
Аутентификация SMTP
SMTP-AUTH позволяет клиенту идентифицировать себя через механизм аутентификации (SASL). Транспортный уровень безопасности (TLS) будет использоваться для шифрования процесса аутентификации. После аутентификации SMTP сервер позволит клиенту передавать почту.
1. Настройте Postfix на SMTP-AUTH с использованием SASL (Dovecot SASL):
sudo postconf -e 'smtpd_sasl_type = dovecot' sudo postconf -e 'smtpd_sasl_path = private/auth-client' sudo postconf -e 'smtpd_sasl_local_domain =' sudo postconf -e 'smtpd_sasl_security_options = noanonymous' sudo postconf -e 'broken_sasl_auth_clients = yes' sudo postconf -e 'smtpd_sasl_auth_enable = yes' sudo postconf -e 'smtpd_recipient_restrictions = \ permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
2. Далее создайте или получите цифровой сертификат для TLS. Смотрите подробности в разделе Сертификаты. Этот пример также использует Центр сертификации (CA). Для информации по созданию сертификатов CA смотрите раздел Центр сертификации.
3. Как только у вас появился сертификат, настройте Postfix на использование TLS шифрования как для входящей, так и для исходящей почты:
sudo postconf -e 'smtp_tls_security_level = may' sudo postconf -e 'smtpd_tls_security_level = may' sudo postconf -e 'smtp_tls_note_starttls_offer = yes' sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/server.key' sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/server.crt' sudo postconf -e 'smtpd_tls_loglevel = 1' sudo postconf -e 'smtpd_tls_received_header = yes' sudo postconf -e 'myhostname = mail.example.com'
4. Если вы используете собственный Центр сертификации, для подписи сертификата введите:
sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem'
Опять же, для подробностей смотрите раздел Сертификаты.
После выполнения всех команд Postfix настроен на SMTP-AUTH и самоподписанный сертификат создан для TLS шифрования.
Начальная настройка postfix закончена. Выполните следующую команду для перезапуска сервиса postfix:
sudo /etc/init.d/postfix restart
Postfix поддерживает SMTP-AUTH как описано в RFC2554. Он основан на SASL. Однако все-таки необходимо настроить аутентификацию перед тем, как вы сможете использовать SMTP-AUTH.
Настройка SASL
Postfix поддерживает две реализации SASL: Cyrus SASL и Dovecot SASL. Чтобы разрешить Dovecot SASL, требуется установить пакет dovecot-common. Для этого из терминала введите следующее:
sudo apt-get install dovecot-common
Далее вам потребуется отредактировать /etc/dovecot/dovecot.conf. В секции auth default снимите комментарий с опции socket listen и измените ее следующим образом:
socket listen { #master { # Master socket provides access to userdb information. It's typically # used to give Dovecot's local delivery agent access to userdb so it # can find mailbox locations. #path = /var/run/dovecot/auth-master #mode = 0600 # Default user/group is the one who started dovecot-auth (root) #user = #group = #} client { # The client socket is generally safe to export to everyone. Typical use # is to export it to your SMTP server so it can do SMTP AUTH lookups # using it. path = /var/spool/postfix/private/auth-client mode = 0660 user = postfix group = postfix } }
Чтобы позволить использовать SMTP-AUTH клиентам Outlook, в секции auth default файла /etc/dovecot/dovecot.conf добавьте "login":
mechanisms = plain login
После того, как Dovecot настроен, перезапустите его:
sudo /etc/init.d/dovecot restart
Почтовый стек доставки
Другой опцией настройки Postfix для SMTP-AUTH является использование пакета mail-stack-delivery (ранее он назывался dovecot-postfix). Этот пакет установит Dovecot и настроит Postfix для его использования совместно с SASL аутентификацией и как агента доставки почты (MDA). Пакет также настроит Dovecot для IMAP, IMAPS, POP3 и POP3S.
Чтобы установить пакет, введите в терминале:
sudo apt-get install mail-stack-delivery
У вас теперь рабочий почтовый сервер, но существует несколько опций, которые вы, возможно, захотите изменить в дальнейшем. Например, пакет использует сертификат и ключ от ssl-cert пакета, и в рабочей среде, вы должны использовать сертификат и ключ, сгенерированный для хоста. Смотрите радел Сертификаты для дополнительных деталей.
После того, как вы получили заказанный сертификат для сервера, замените следующую опцию в /etc/postfix/main.cf:
smtpd_tls_cert_file = /etc/ssl/certs/ssl-mail.pem smtpd_tls_key_file = /etc/ssl/private/ssl-mail.key
Перезапустите Postfix:
sudo /etc/init.d/postfix restart
Тестирование
Настройка SMTP-AUTH завершена. Теперь самое время проверить настройки.
Чтобы убедиться, что SMTP-AUTH и TLS работают правильно, выполните следующую команду:
telnet mail.example.com 25
После установления соединения с почтовым сервером postfix введите:
ehlo mail.example.com
Если среди прочего вы увидите следующие строки, все работает замечательно. Введите quit для выхода.
250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME
Решение проблем
Эта секция описывает несколько общих способов определения причин возникающих проблем.
Отказ от режима chroot
Пакет postfix в Ubuntu по умолчанию устанавливается в окружении chroot из соображений безопасности. Это может дополнительно усложнить процесс поиска решения проблем.
Для отключения функционирования chroot, найдите следующую строку в файле настроек /etc/postfix/master.cf:
smtp inet n - - - - smtpd
И замените на следующее:
smtp inet n - n - - smtpd
После этого вам придется перезапустить Postfix для использования новых настроек. Из терминал введите следующее:
sudo /etc/init.d/postfix restart
Файлы журналов
Postfix посылает все сообщения в журнал /var/log/mail.log. Однако сообщения об ошибках и предупреждения могут иногда теряться в нормальном журнале, поэтому они отдельно сохраняются в /var/log/mail.err и /var/log/mail.warn соответственно.
Для просмотра сообщений журнала в режиме реального времени вы можете использовать команду tail -f:
tail -f /var/log/mail.err
Количество деталей, записываемых в журнал, может быть увеличено. Ниже приведено несколько опций настройки для увеличения уровня детализации некоторых областей, описанных выше.
1. Для увеличения TLS активности журнала, установите опции smtpd_tls_loglevel значение от 1 до 4.
sudo postconf -e 'smtpd_tls_loglevel = 4'
2. Если вы испытываете трудности с отправкой или приемом почты отдельного домена, вы можете включить его в параметр debug_peer_list.
sudo postconf -e 'debug_peer_list = problem.domain'
3. Вы можете увеличить детализацию любого сервиса Postfix редактированием /etc/postfix/master.cf, добавив -v после соответствующей записи. Для примера изменим запись smtp:
smtp unix - - - - - smtp -v
sudo /etc/init.d/postfix reload
4. Для увеличения количества информации в журнале при поиске проблем с SASL, вы можете установить следующие опции в /etc/dovecot/dovecot.conf:
auth_debug=yes auth_debug_passwords=yes
sudo /etc/init.d/dovecot reload
Ссылки
Администрирование сервера Postfix может быть очень сложной задачей. В какой-то момент вам может потребоваться обратиться к сообществу Ubuntu для более квалифицированной помощи.
Хорошее место задать вопрос по сопровождению Postfix и влиться в сообщество Ubuntu Server, это IRC канал #ubuntu-server на freenode. Вы также можете отправить сообщение на один из интернет форумов.
Для погружения в информацию по Postfix очень рекомендуется прочитать The Book of Postfix.
Наконец сайт Postfix также содержит много информации по всем возможным опциям настройки.
Кроме того страница Ubuntu Wiki Postfix содержит дополнительную информацию.