Тематические термины: Postfix, SMTP, Dovecot.
Данная настройка позволит запрашивать логин с паролем при отправке сообщений. В данном примере аутентификация реализована при помощи dovecot.
Устанавливаем dovecot.
а) если используем CentOS / Red Hat:
yum install dovecot
б) если используем Ubuntu / Debian:
apt-get install dovecot-imapd dovecot-pop3d
Открываем конфигурационный файл Postfix:
vi /etc/postfix/main.cf
И добавляем:
smtpd_sasl_path = private/authsmtpd_sasl_auth_enable = yessmtpd_sasl_type = dovecotsmtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
* где smtpd_sasl_path — путь до плагина аутентификации по механизму SASL; smtpd_sasl_auth_enable — разрешает или запрещает аутентификацию по механизму SASL; smtpd_sasl_type — тип плагина, который используется для SASL-аутентификации; smtpd_relay_restrictions — правила разрешения и запрета использования MTA при пересылке.
Открываем настройки аутентификации в dovecot:
vi /etc/dovecot/conf.d/10-master.conf
и приводим опцию service auth к следующему виду:
service auth { … unix_listener /var/spool/postfix/private/auth { mode = 0660 user = postfix group = postfix } …}
* если соответствующей секции unix_listener нет, то ее нужно создать.
Отключаем требование ssl для аутентификации:
vi /etc/dovecot/conf.d/10-ssl.conf
Настройки аутентификации приводим к следующему виду:
vi /etc/dovecot/conf.d/10-auth.conf
auth_mechanisms = plain login
В этом же файле проверяем, что снят комментарий со следующей строки:
!include auth-system.conf.ext
Перезапускаем сервис Postfix:
systemctl restart postfix
Запускаем Dovecot:
systemctl enable dovecot
systemctl start dovecot
Готово. В качестве логина и пароля необходимо использовать системную учетную запись.
Теперь настроим проверку подлинности не с помощью системных учетных записей, а с помощью виртуальных. В данном примере это будут виртуальные пользователи только для аутентификации при отправке почты.
Открываем конфигурационный файл dovecot:
vi /etc/dovecot/conf.d/auth-system.conf.ext
Находим секцию passdb и приводим ее к виду:
passdb {# driver = pam driver = passwd-file args = scheme=SHA1 /etc/dovecot/passwd …}
* в моем случае было закомментировано использование pam драйвера и добавлены опции driver и args. В данном примере они указывают на использование в качестве базы логинов и паролей — файл /etc/dovecot/passwd.
Создаем хэш для пароля первого пользователя:
doveadm pw -s sha1 | cut -d ‘}’ -f2
* система запросит пароль — вводим его дважды.
Полученный хэш имеет, примерно, такой вид:
tMoWsjKKoenYg7+SLRB8GXZQY38=
Копируем его и создаем файл:
vi /etc/dovecot/passwd
[email protected]:tMoWsjKKoenYg7+SLRB8GXZQY38=
* в данном примере [email protected] — имя виртуального пользователя; tMoWsjKKoenYg7+SLRB8GXZQY38= — хэш нашего пароля.
Задаем права на файл с базой логинов и паролей:
chown dovecot: /etc/dovecot/passwd
chmod 600 /etc/dovecot/passwd
Перезапускаем Dovecot:
systemctl restart dovecot
В конфигурационный файл postfix добавляем:
smtpd_tls_cert_file = /etc/ssl/certs/dovecot.pemsmtpd_tls_key_file = /etc/ssl/private/dovecot.pemsmtpd_use_tls = yessmtpd_tls_auth_only = yes
Добавляем в master.cf:
vi /etc/postfix/master.cf
smtps inet n — n — — smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes -o smtpd_client_restrictions=permit_sasl_authenticated,reject
Настраиваем требование сертификата:
ssl = required
Генерируем сертификат:
mkdir -p /etc/ssl/certs
mkdir /etc/ssl/private
cd /usr/share/doc/dovecot-*
vi mkcert.sh
SSLDIR=${SSLDIR-/etc/ssl}
sh mkcert.sh
Перезапускаем postfix и dovecot:
Готово. Аутентификация будет требовать шифрованного подключения по порту 25 (STARTTLS) или 465 (SSL/TLS).
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies