Назад | Перейти на главную страницу

postfix ограничивает ретрансляцию почты только для определенных адресов отправителя («ПОЧТА ОТ:»)

Я хочу настроить postfix для ретрансляции почты только от определенных адресов отправителя. Postfix должен пересылать почту на разные ретрансляторы (/ smarthosts) (Gmail, AOL, ...) в зависимости от адреса отправителя («ПОЧТА ОТ:»).

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


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

Вам понадобится ограничивающий тест перед 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_maps стол, но если ваш virtual_alias_maps записи уже сформированы как address@example.com 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