Установка и настройка Postfix как релей yandex

В статье будет описан способ установки Postfix и настройки его как relay для Yandex. Думаю что вы уже добавили свою почту на yandex, если нет то Вам сюда
Установка необходимых пакетов
sudo apt-get install postfix mutt
Настройка PostFix
Для настройки PostFix, как релей yandex, откроем файл /etc/postfix/main.cf для редактирования:
sudo nano /etc/postfix/main.cf
Удалим все его содержимое и вставим следующий текст
###############################
#### Основные параметры
smtpd_banner = $myhostname ESMTP server
biff = no
#### TLS параметры
smtpd_use_tls=yes
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache
smtp_tls_CAfile = /etc/postfix/yandex.crt
#### информация о включении SSL в SMTP-клиенте.
smtpd_relay_restrictions = permit_mynetworks permit_sasl_authenticated defer_unauth_destination
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
relayhost =
#### SASL параметры
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/private/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_type = cyrus
smtp_sasl_mechanism_filter = login
smtp_sender_dependent_authentication = yes
sender_dependent_relayhost_maps = hash:/etc/postfix/private/sender_relay
sender_canonical_maps = hash:/etc/postfix/private/canonical
###########################################################
## Ограничения и запреты
# Запретить ETRN команду
smtpd_etrn_restrictions = reject
# Запретить VRFY команду
disable_vrfy_command = yes
# Требовать наличие EHLO (HELO) команды
smtpd_helo_required = yes
# Всегда отклонять письма для всех неизвестных ящиков
smtpd_reject_unlisted_recipient = yes
# Ограничения на клиента - принимаем только если есть PTR (не жёсткий запрет)
smtpd_client_restrictions =
permit_mynetworks
reject_unknown_reverse_client_hostname
permit
# Ограничения на HELO. Отклоняем письма от всех хостов, которые даже представиться не могут
smtpd_helo_restrictions =
permit_mynetworks
reject_invalid_helo_hostname
reject_non_fqdn_helo_hostname
permit
# Ограничения на MAIL FROM. Отклоняем все письма, отправитель которых предоставил невалидный адрес
smtpd_sender_restrictions =
reject_non_fqdn_sender
reject_unknown_sender_domain
permit
# Ограничения на RCPT TO. Принимаем только для известных нам адресов
smtpd_recipient_restrictions =
reject_non_fqdn_recipient
reject_unlisted_recipient
permit_mynetworks
reject_unauth_destination
permit
# Ограничения на данные. Не принимаем в случае некорректной передачи
smtpd_data_restrictions =
reject_unauth_pipelining
Т.к. взаимодействие с сервером идёт по TLS, не помешает скачать сертификат SMTP-сервера.
Добыть сертификат можно вот так:
openssl s_client -starttls smtp -crlf -connect smtp.yandex.ru:25
Из вывода нам нужно что-то вроде такого:
-----BEGIN CERTIFICATE-----
MIIGazCCBVOgAwIBAgIQcUU9mJXW4OUs5Gf0JfLtsjANBgkqhkiG9w0BAQsFADBf
MQswCQYDVQQGEwJSVTETMBEGA1UEChMKWWFuZGV4IExMQzEnMCUGA1UECxMeWWFu
ZGV4IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRIwEAYDVQQDEwlZYW5kZXggQ0Ew
HhcNMTcxMDExMTMyNzI2WhcNMTkxMDExMTMyNzI2WjB3MQswCQYDVQQGEwJSVTET
MBEGA1UECgwKWWFuZGV4IExMQzEMMAoGA1UECwwDSVRPMQ8wDQYDVQQHDAZNb3Nj
b3cxGzAZBgNVBAgMElJ1c3NpYW4gRmVkZXJhdGlvbjEXMBUGA1UEAwwOc210cC55
YW5kZXgucnUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCTI5WsplxQ
g7gZDCEmnbxHI0a0/cXtx0+Zwz7Y9TSFy0NI/SzYC+bgukWvsnvuIheM3yKpJ+cU
Ss2G+K3nKOYDNJUezzziirhu3UVC/tZLD39orKKGAa6qmx5Dv2Z7/ynkOfKZjmXB
t9HemoCItyM62YTD8AQQmkMCB4Kue+j2wm8fHxPtgIYuQzEtD9xCU9vANj6imgaM
IlrM0cegknd6sWBDR074pDsBEUjg2GsNSqAo2nD0tvOGCFZ2qkIMLIjZgsCmtain
nM7Xt+THw8ApMu9BVsgTyXMTfVC0CzfB1HbId1UzqIbILprB3iLrxCHn3K1F68ok
WfBXBDY4gphTAgMBAAGjggMJMIIDBTAMBgNVHRMBAf8EAjAAMGkGA1UdHwRiMGAw
L6AtoCuGKWh0dHA6Ly9jcmxzLnlhbmRleC5uZXQvY2VydHVtL3ljYXNoYTIuY3Js
MC2gK6AphidodHRwOi8veWFuZGV4LmNybC5jZXJ0dW0ucGwveWNhc2hhMi5jcmww
cQYIKwYBBQUHAQEEZTBjMCwGCCsGAQUFBzABhiBodHRwOi8veWFuZGV4Lm9jc3At
cmVzcG9uZGVyLmNvbTAzBggrBgEFBQcwAoYnaHR0cDovL3JlcG9zaXRvcnkuY2Vy
dHVtLnBsL3ljYXNoYTIuY2VyMB8GA1UdIwQYMBaAFDdc4xngso6hqE7Sz6vQ3OML
XDVNMB0GA1UdDgQWBBTC1Kbatmr8y04cui/VCaPVq1mgKzAOBgNVHQ8BAf8EBAMC
BaAwggEXBgNVHSAEggEOMIIBCjCCAQYGDCqEaAGG9ncCBQEKAjCB9TCB8gYIKwYB
BQUHAgIwgeUwIBYZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjADAgECGoHAVXNh
Z2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdHJpY3RseSBzdWJqZWN0ZWQgdG8g
dGhlIENFUlRVTSBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVudCAoQ1BT
KSBpbmNvcnBvcmF0ZWQgYnkgcmVmZXJlbmNlIGhlcmVpbiBhbmQgaW4gdGhlIHJl
cG9zaXRvcnkgYXQgaHR0cHM6Ly93d3cuY2VydHVtLnBsL3JlcG9zaXRvcnkuMB0G
A1UdJQQWMBQGCCsGAQUFBwMBBggrBgEFBQcDAjARBglghkgBhvhCAQEEBAMCBsAw
egYDVR0RBHMwcYIOc210cC55YW5kZXgucnWCDnNtdHAueWFuZGV4LmJ5gg5zbXRw
LnlhbmRleC5reoIPc210cC55YW5kZXguY29tgg5zbXRwLnlhbmRleC51YYISc210
cC55YW5kZXguY29tLnRyggpzbXRwLnlhLnJ1MA0GCSqGSIb3DQEBCwUAA4IBAQA1
GjyKSYMgaRVLGd4EWtB3oTkybDu5QrUXt/eoZiquzUqZwk7x9FRsEEirawKsrSS6
FXcliRD7xcXneROVDZK1a4ur6974vn742B/lOx9T/7+6a8XQo4jz191zZWS3J47G
dSvkMZPSdsZPxn7cDbAymFP4yw3b/aJJBFarpYTUixvRXZardO93VAFx157pCt/8
3dN7jLWyYVWBvZh93JioukAu9uDt7Nzuq9XhTBLUzLnFFi4vXVsssKk7h3X2sMNU
kZ3EPMAOSsvl9XY5RHZJs7BZubvGgnDxxGFfziP1XnTbL4MRCAXbdhwx3nmnQ3yZ
nRG0DfdqYIuPGApFORYe
-----END CERTIFICATE-----
..и сохранить в файл (в моём случае /etc/postfix/yandex.crt).
sudo nano /etc/postfix/yandex.crt
Далее необходимо создать папку /etc/postfix/private
sudo mkdir /etc/postfix/private
Перейдем в папку и создаем три файла для Postfix:
cd /etc/postfix/private && sudo touch canonical sender_relay sasl_passwd
Откроем файл canonical и добавим следующий текст:
sudo nano canonical
Содержимое:
@yandex.ru user@yandex.ru
где
user@yandex.ru — Ваша почта на Яндексе
Далее откроем файл sender_relay:
sudo nano sender_relay
Содержимое:
@yandex.ru smtp.yandex.ru
И наконец:
sudo nano sasl_passwd
С содержимым:
[smtp.yandex.ru] user@yandex.ru:password
где
user@yandex.ru — Ваша почта на Яндексе,
password — Ваш пароль от ящика.
Запускаем созданные файлы в работу:
sudo postmap /etc/postfix/private/*
Также необходимо создать файл aliases:
sudo nano /etc/aliases
В него необходимо занести записи сопоставлений пользователей и почты для них. У меня в нем находятся следующие записи:
postmaster: root
root: user@ваша-почта-на-яндекс.ru
Данная запись будет отправлять всю почту предназначенную для пользователя root на вашу почту от яндекса.
Чтобы изменения вступили в силу, необходимо обновить базу алиасов командой:
cd /etc && sudo newaliases
Перезапускаем PostFix:
sudo service postfix restart
Отправляем почту
Все, можно проверять работу с помощью, например, mutt. Отправим тестовое сообщение на наш e-mail, но на другой почтовый сервер. Что-бы не было локального заворота на свою же почту.
echo "test" | mutt -s "test" user@mail.ru
user@mail.ru — ваш яшик на mail.ru
Чтобы отправить файл, надо добавить ключ -a затем сам файл:
echo "test" | mutt -s "test" user@yandex.ru -a /home/user/file.txt
Проверить настройки можно также вот такой командой (без установки mutt)
echo test | sendmail -v почта@куда_отсылаем
Если что-то не получается, курим логи:
tail -f /var/log/mail.log
Если есть вопросы, то пишем в комментариях.
Также можете вступить в Телеграм канал, ВКонтакте или подписаться на Twitter. Ссылки в шапке страницы.
Заранее всем спасибо!!!
Подскажите как настроить почту от mail.ru сейчас яндекс стала платной
Скоро подготовлю статью для вас про mail.ru
Спасибо буду ждать.
А как настроить relay на mail.ru. Напишите пожалуйста статью про релай на маил.ру
А что делать если 25 порт заблокирован у хостера?
Тут только писать хостеру, чтобы разблокировали.
!!!