В Ubuntu агент передачи почты (Mail Transfer Agent (MTA)) по умолчанию - Postfix. Он считается безопасным, быстрым и легким в администрировании. Он совместим с MTA sendmail. Данный раздел объяснит, как установить и настроить postfix. Так же будет описано, как настроить SMTP сервер с использованием безопасного соединения (для безопасной передачи почты).
Для устрановки postfix вместе с SMTP-AUTH и Transport Layer Security (TLS) запустите следующую команду:
sudo apt-get install postfix
Просто нажимайте enter когда установщик будет задавать вопросы, настройки будут описаны более подробно в следующем шаге.
Для настройки приложения postfix, выполните следующую команду:
sudo dpkg-reconfigure postfix
Будет запущен пользовательский интерфейс. На каждом экране выберите следующие значения:
Ok
Сайт в интернете
NONE
mail.example.com
mail.example.com, localhost.localdomain, localhost
No
127.0.0.0/8
Yes
0
+
все
![]() |
|
Замените mail.example.com именем хостав вашего почтового сервера |
Сейчас удобный момент решить какой формат почтового ящика использовать. По-умолчанию, Postfix будет использовать формат ящика mbox. Вместо прямого редактирования файла конфигурации, Вы можете использовать комманду postconf для настройки всех параметров postfix. Параметры конфигурации будут храниться в файле /etc/postfix/main.cf
. Позже, если Вы захотите перенастроить отдельный параметр, Вы сможете выполнить команду или изменить его вручную в файле.
Для настройки формата почтового ящика в Maildir:
sudo postconf -e 'home_mailbox = Maildir/'
![]() |
|
Это будет помещать новую почту в /home/username/Maildir , так что Вам придется настроить Агент по доставке почты (MTA) так, чтобы он использвал тот же путь. |
Следующим шагом будет настройка postfix для использования SASL для SMTP AUTH.
Настройте Postfix для использования SMTP AUTH с помощью SASL (saslauthd):
sudo postconf -e 'smtpd_sasl_local_domain =' sudo postconf -e 'smtpd_sasl_auth_enable = yes' sudo postconf -e 'smtpd_sasl_security_options = noanonymous' sudo postconf -e 'broken_sasl_auth_clients = yes' sudo postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination' sudo postconf -e 'inet_interfaces = all'
Откройте файл /etc/postfix/sasl/smtpd.conf
и добавьте следующие строки в его конец:
pwcheck_method: saslauthd mech_list: plain login
После этого, сконфигурируйте цифровой сертификат для TLS. Когда будут заданы вопросы, следуйте инструкциям и отвечайте соответствующим образом.
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024 chmod 600 smtpd.key openssl req -new -key smtpd.key -out smtpd.csr openssl x509 -req -days 365 -in smtpd.csr -signkey smtpd.key -out smtpd.crt openssl rsa -in smtpd.key -out smtpd.key.unencrypted mv -f smtpd.key.unencrypted smtpd.key openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 sudo mv smtpd.key /etc/ssl/private/ sudo mv smtpd.crt /etc/ssl/certs/ sudo mv cakey.pem /etc/ssl/private/ sudo mv cacert.pem /etc/ssl/certs/
![]() |
|
Вы можете получить цифровой сертификат у органа управления сертификатами. В качестве альтернативы, вы можете сами создать сертификат. Подробнее см. подраздел Создание собственноручно подписанного сертификата. |
Настройте Postfix для использования шифрования TLS для исходящей и входящей почты:
sudo postconf -e 'smtpd_tls_auth_only = no' sudo postconf -e 'smtp_use_tls = yes' sudo postconf -e 'smtpd_use_tls = yes' sudo postconf -e 'smtp_tls_note_starttls_offer = yes' sudo postconf -e 'smtpd_tls_key_file = /etc/ssl/private/smtpd.key' sudo postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt' sudo postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/cacert.pem' sudo postconf -e 'smtpd_tls_loglevel = 1' sudo postconf -e 'smtpd_tls_received_header = yes' sudo postconf -e 'smtpd_tls_session_cache_timeout = 3600s' sudo postconf -e 'tls_random_source = dev:/dev/urandom' sudo postconf -e 'myhostname = mail.example.com'
Выключить команду chroot для сервера SMTP. Найдите следующую строку в файле /etc/postfix/master.cf
:
smtp inet n - - - - smtpd
и измените на:
smtp inet n - n - - smtpd
![]() |
|
SMTP AUTH для with postfix будет настроена после того, как вы запустите все команды. Собственный сертификат создан для TLS и настроен для использования с postfix. |
Теперь, файл /etc/postfix/main.cf
должен выглядеть подобным образом.
Началная настройка postfix завершена. Вы можете запустить демона postfix с помощью следующей команды:
sudo /etc/init.d/postfix start
Теперь демон postfix установлен, настроен и удачно запущен. Postfix поддерживает SMTP AUTH как определено в документе RFC2554, который основан на SASL. Однако, аутентификацию SASL все таки необходимо настроить до того, как вы сможете использовать SMTP.
The libsasl2-2, sasl2-bin and libsasl2-modules are necessary to enable SMTP AUTH using SASL. You can install these applications if you have not installed them already.
sudo apt-get install libsasl2-2 sasl2-bin
A few changes are necessary to make it work properly. Because Postfix runs chrooted in /var/spool/postfix
, SASL needs to be configured to run in the false root (/var/run/saslauthd
becomes /var/spool/postfix/var/run/saslauthd
):
sudo mkdir -p /var/spool/postfix/var/run/saslauthd sudo rm -rf /var/run/saslauthd
Для активации saslauthd отредактируйте файл /etc/default/saslauthd
, изменив или добавив в него переменную START. Для настройки запуска saslauthd в "поддельном" root-окружении, добавьте параметры PWDIR, PIDFILE и PARAMS. Напоследок, измените переменную MECHANISMS на подходящую для вашего случая. Файл должен выглядеть примерно вот так:
# This needs to be uncommented before saslauthd will be run # automatically START=yes PWDIR="/var/spool/postfix/var/run/saslauthd" PARAMS="-m ${PWDIR}" PIDFILE="${PWDIR}/saslauthd.pid" # You must specify the authentication mechanisms you wish to use. # This defaults to "pam" for PAM support, but may also include # "shadow" or "sasldb", like this: # MECHANISMS="pam shadow" MECHANISMS="pam"
![]() |
|
Если хотите, вы можете использовать shadow вместо pam. Этот способ будет использовать передачу паролей хешированных с помощью MD5, что является полностью безопасным. Имя пользователя и пароль, необходимые для авторизации, будут такими же, как и у пользователей на системе, которую вы используете под сервер. |
Next, update the dpkg "state" of /var/spool/portfix/var/run/saslauthd
. The saslauthd init script uses this setting to create the missing directory with the appropriate permissions and ownership:
sudo dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd
Настройка SMTP AUTH завершена. Теперь самое время для проверочного запуска и тестирования установок. Вы можете запустить демон SASL с помощью следующей команды:
sudo /etc/init.d/saslauthd start
Чтобы проверить правильно ли работают SMTP-AUTH и TLS, выполните следующую команду:
telnet mail.example.com 25
После установки соединения с почтовым сервером postfix, введите:
ehlo mail.example.com
Все работает правильно, если в представленном выводе вы увидите в том числе и строки представленные ниже:
250-STARTTLS 250-AUTH LOGIN PLAIN 250-AUTH=LOGIN PLAIN 250 8BITMIME
Введите команду quit для завершения сеанса.