postfix ограничивает ретрансляцию почты только для определенных адресов отправителя («MAIL FROM:»)

postfix ограничивает ретрансляцию почты только для определенных адресов отправителя («MAIL FROM:»)

Я хотел бы настроить postfix для ретрансляции почты только с определенных адресов отправителя. Postfix должен ретранслировать почту на разные relayhosts(/smarthosts) (Gmail, AOL, ...) в зависимости от адреса отправителя ("MAIL FROM:").

На данный момент моя текущая конфигурация работает следующим образом:

  • Пользователи аутентифицируются на postfix для почтовой ретрансляции в целом. Если они не могут аутентифицироваться, ретрансляция невозможна. Обратите внимание, что эта аутентификация отличается от аутентификации для relayhosts.

  • В зависимости от адреса отправителя ("MAIL FROM:") выбирается определенный релейный хост ( smtp_sender_dependent_authentication, sender_dependent_relayhost_maps, smtp_sasl_password_maps). Это тоже работает нормально.

  • Однако если пользователь может пройти аутентификацию и его адрес отправителя не указан в sender_dependent_relayhost_maps, Postfix пытается напрямую ретранслировать почту, что часто не работает из-за ограничений по IP-адресам (черных списков).


Теперь у меня вопрос: как отклонить почту, которая была бы передана напрямую (без smarthost), т. е. адрес отправителя которой не указан в sender_dependent_relayhost_maps? Есть какие-нибудь подсказки, как этого добиться?

решение1

Вам понадобится какой-то ограничивающий тестдо permit_sasl_authenticated. Предпосылкой для этого будет наличие отдельного smtpd на порту 25для входящей почты и другого smtpd дляподчинениена порту 587. В противном случае это ограничение приведет к отклонению входящей почты, поскольку она не пройдет тест. Затем удалите permit_sasl_authenticatedиз порта 25вообще и добавьте тест в конфигурацию отправки в master.cf.

  • Если отвечать на ваш вопрос буквально,check_sender_accessПодходящим тестом было бы внесение всех доменов, перечисленных в списке, в белый список sender_dependent_relayhost_mapsи отклонение почты для остальных.

    check_sender_access type:table

    Поиск указанногодоступ(5)базу данных для MAIL FROMадреса, домена, родительских доменов или localpart@и выполнить соответствующее действие.

    Это можно добавить либо кsmtpd_sender_restrictionsилиsmtpd_recipient_restrictions.

  • То же самое, но еще больше мешая пользователям использовать адреса друг друга, можно сделать с помощьюreject_sender_login_mismatch. Это требует дополнительногоsmtpd_sender_login_mapstable, но если ваши virtual_alias_mapsзаписи уже сформированы как [email protected] username, вы можете использовать тот же файл, и разрешенные адреса отправителей будут автоматически обновляться всякий раз, когда вы обновляете свою базу данных виртуальных псевдонимов с помощью postmap. Пример такой конфигурации отправки в master.cf:

    submission inet n - - - - smtpd
    # Other parameters
      -o smtpd_sender_login_maps=hash:/etc/postfix/virtual
      -o smtpd_sender_restrictions=reject_sender_login_mismatch
      -o smtpd_client_restrictions=permit_sasl_authenticated,reject
    # Other parameters
    

Связанный контент