В 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 именем хостав вашего почтового сервера |
Now is a good time to decide which mailbox format you want to use. By default
Postifx will use mbox for the mailbox format.
Rather than editing the configuration file directly,
you can use the postconf command to configure
all postfix parameters. The
configuration parameters will be stored in
/etc/postfix/main.cf
file. Later if you
wish to re-configure a particular parameter, you can either
run the command or change it manually in the file.
To configure the mailbox format for Maildir:
sudo postconf -e 'home_mailbox = Maildir/'
![]() |
|
This will place new mail in /home/username/Maildir so you'll need to configure your Mail Delivery Agent to use the same path. |
The next steps are to configure postfix to use SASL for SMTP AUTH.
Configure Postfix to do SMTP AUTH using 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'
Open the /etc/postfix/sasl/smtpd.conf
file and add
the following lines to end of the file:
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/
![]() |
|
Вы можете получить цифровой сертификат у органа управления сертификатами. В качестве альтернативы, вы можете сами создать сертификат. Подробнее см. подраздел Создание собственноручно подписанного сертификата. |
Configure Postfix to do TLS encryption for both incoming and outgoing mail:
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'
Turn off the chroot operation for SMTP server. Locate
for the following line in
/etc/postfix/master.cf
file:
smtp inet n - - - - smtpd
and modify it as follows:
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 для завершения сеанса.