Как настроить Postfix так, чтобы он передавал только электронные письма с определенного домена? - PullRequest
0 голосов
/ 14 марта 2019

Я уже ответил на свой вопрос и, возможно, позже обновлю этот вопрос, чтобы отразить исходную точку / шаги, которые я предпринял, чтобы найти свое решение, но решил, что задам вопрос, с которого я начал, и результат, который мне потребовался.мне неоправданно много часов исследований и проб и ошибок, чтобы добраться до.Пожалуйста, внесите любые изменения или предложите свое собственное решение postfix / main.cf, поскольку мне еще многое предстоит узнать.

Введение в проблему

Поэтому я сам принимаюнесколько вещей на моем сервере в "example.com" и настройте Postfix в качестве моего агента пересылки почты (MTA).На моем почтовом сервере у меня есть настройка virtual_alias для получения писем с указанием конкретного «email_users@example.com» на мое имя пользователя на сервере.В моем Alma mater включена переадресация электронной почты, поэтому электронные письма на адрес «student@college.edu» или «alum@alum.college.edu» пересылаются на «email_users@example.com» и поступают в мой почтовый ящик пользователя.По сути, все электронные письма (на мой .edu или мой .com) идут по адресу /home/user/Maildir/new.

При написании электронных писем с использованием MUTT (мой предпочтительный MUA) я иногда буду менять свою электронную почту «ОТ»поле должно быть "student@college.edu", "alumnus@alum.college.edu", или по умолчанию ответить с любым включенным полем для ответа. желаемое поведение для моего почтового сервера, отправляемого на другие серверы, выглядит следующим образом:

  1. Для писем с «FROM: *@example.com» - маршрутизировать электронную почту через SMTP через локальныйПостфикс MTA прямо в интернет.(* представляет wildchar)
  2. В электронных письмах с «FROM: student@college.edu» направьте электронную почту через SMTP через локальный MTA Postfix и перенаправьте ее на другой SMTP-сервер С аутентификацией, чтобы другой сервер доставлял без каких-либоsoft-fail или bounces (в данном случае SMTP-сервер колледжа).

Для ясности, это вопрос конфигурации Postfix, когда пользователь хочет отправлять почту с: local Postfix MTA -> внешний SMTP-сервер -> получатель через интернет.

Эти вопросы / инструкции, как правило, не содержат четкого ответа, не задают одно и то же и требуют лучшего задаваемого названия, или инструкции, которые только начинают отвечать на начало этой настройки:

Конечно, полная документация полезна, но довольно многословна и ее трудно своевременно выяснить, если вы новичок в Postfix.Например, вы можете ожидать найти это в SMTP Relay / Access Control, но основной аспект, который я пропустил, был в общей конфигурации в SASL Auth .

1 Ответ

0 голосов
/ 14 марта 2019

Для пересылки электронной почты на другой SMTP-сервер без , всегда пересылающей по умолчанию, используйте sender_dependent_relayhost_maps в файле конфигурации (/etc/postfix/main.cf).Если вы используете relayhost, не используйте.

Примечание: smtp используется в исходящей почте, а smtpd является демоном для входящей почты

/ etc/postfix/main.cf

 smtp_use_tls = yes
 smtp_sender_dependent_authentication = yes
 sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay
 smtp_sasl_auth_enable = yes
 smtp_sasl_security_options = noanonymous
 smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
 smtp_always_send_ehlo = yes
 smtp_tls_CAfile = /etc/ssl/certs/ca-certificates.crt

Теперь в / etc / postfix / sender_relay необходимо указать адрес электронной почты, который будет отправляться на интересующий внешний SMTP-сервер:

Примечание. Обозначение в скобках '[]' указывает Postfix не использовать запись MX.Обычно номер порта составляет 587

/ etc / postfix / sender_relay

student@college.edu         [smtp.server.edu]:port
alumnus@alum.college.edu    [alum.smtpserver.edu]:port

Теперь, когда электронное письмо отправляется с любого из этих адресов, оноретранслируется на эти SMTP-серверы для отправки от вашего имени.Последнее, что нужно сделать, это авторизовать его с помощью SASL.

Примечание: SMTP-сервер, указанный в sender_relay, должен совпадать с таковым в sasl_passwd, а пара имя пользователя: пароль в sasl_passwd должна совпадать с пользователем, от которого вы отправляетев sender_relay и его соответствующей паре паролей.Невыполнение этого требования может привести к ошибкам pam_authenticate () в /var/log/mail.log

/ etc / postfix / sasl_passwd

[smtp.server.edu]:port      student:password
[alum.smtpserver.edu]:port  alumnus:password

Поскольку вы вводите здесь информацию, чувствительную к незашифрованному тексту, убедитесь, что вы обновили права владения, если у вас их раньше не было:

sudo chmod 600 /etc/postfix/sasl_passwd

Последнее, что нужно сделать, это использовать postmap для обновления этих файлов и перезагрузить postfix с помощьюновая конфигурация:

sudo postmap sasl_passwd
sudo postmap sender_relay
sudo postfix reload
...