Дано: бизнес-аккаунты почтового сервиса VKmail. Требуется настроить отправку почты локальных информационных систем. Не все системы корректно умеют работать с TLS и авторизацию. Поэтому используем локальных шлюз почты с авторизацией на внешнем релее. Для этого конечно используем Postfix и Cyrus SASL. ОС Oracle Linux 7.
Установка прикладного ПО:
yum install -y cyrus-sasl cyrus-sasl-lib cyrus-sasl-plain postfix
SMTP VKmail: smtp.mail.ru, порт 587
/etc/postfix/main.cf
# sasl аутентификация отправителя
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
# релей хост по умолчанию
relayhost = [smtp.mail.ru]:587
# smtp аутентификация
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
# ключи центров сертификации, в системе по-умолчанию
smtp_tls_CAfile = /etc/pki/tls/certs/ca-bundle.crt
smtp_use_tls = yes
smtp_tls_security_level = encrypt
/etc/postfix/master.cf раскомментировать две строки
-o smtpd_sasl_auth_enable=yes
/etc/postfix/sender_relay
hr-noreply@mydomain.tld [smtp.mail.ru]:587
fin-noreply@mydomain.tld [smtp.mail.ru]:587
portal-noreply@mydomain.tld [smtp.mail.ru]:587
external-noreply@mydomain.tld [smtp.mail.ru]:587
www-noreply@mydomain.tld [smtp.mail.ru]:587
work-noreply@mydomain.tld [smtp.mail.ru]:587
/etc/postfix/sasl_passwd
hr-noreply@mydomain.tld hr-noreply@mydomain.tld:PAssW0rd1
fin-noreply@mydomain.tld fin-noreply@mydomain.tld:PAssW0rd2
portal-noreply@mydomain.tld portal-noreply@mydomain.tld:PAssW0rd3
external-noreply@mydomain.tld external-noreply@mydomain.tld:PAssW0rd4
www-noreply@mydomain.tld www-noreply@mydomain.tld:PAssW0rd5
# один аккаунт по-умолчанию
[smtp.mail.ru]:587 work-noreply@fa.ru:MyirTd97
Обязательно преобразовать файлы в бинарный формат, который использует postfix
postmap /etc/postfix/sender_relay /etc/postfix/sasl_passwd
Включить автозапуск postfix и запустить его
systemctl enable postfix && systemctl start postfix
Проверка работы отправкой почты из консоли, отправку смотрим в логах /var/log/maillog, получение в адресе назначения
sendmail -f external-noreply@mydomain.tld -t <<EOF
To: saprisada@mydomain.tld
Subject: Hey, I successfully configured Postfix with sender-dependent SASL authentication!
Content-type: text/html
<b>Isn't this awesome?</b>
EOF
Добавим ограничение для хостов, которым разрешена отправка почты через настроенный релей. Опция в конфигурационном файле main.cf mynetworks, но содержимое вынесем в отдельный файл /etc/postfix/mynetworks
10.50.5.104 cl01vserver104
10.50.5.105 cl01vserver105
10.50.5.106 cl01vserver106
10.50.5.107 cl01vserver107
10.50.5.108 cl01vserver108
10.50.5.189 cl01vserver189
10.50.5.68 cl01vserver68
10.5.50.112 cl04vserver112
10.5.50.113 cl04vserver113
10.5.50.114 cl04vserver114
и в /etc/postfix/main.cf
mynetworks = hash:/etc/postfix/mynetworks
Обязательно сформировать бинарный формат, перезапустить postfix и проверить отправку
postmap /etc/postfix/mynetworks и systemctl restart postfix