Я хочу добиться с помощью Postfix следующего:
Вот что у меня: (постфикс 10.0.8.0, а некоторые отправители 10.0.8.0 и 10.0.9.0)
mynetworks_style = subnet
smtpd_recipient_restrictions = check_recipient_access sqlite:/etc/postfix/access-bl.query, check_client_access hash:/etc/postfix/trusted_clients, check_recipie
nt_access hash:/etc/postfix/local_domains, reject_unauth_destination, permit
Итак, сейчас черный список работает. файл /etc/postfix/trusted_clients
содержит, кто может отправлять куда угодно (3), файл /etc/postfix/local_domains
содержит, куда вы можете отправить (2). Эти двое в порядке, они вернулись как следует.
Моя проблема в том, чтобы все трое работали вместе. Не уверен, что это проблема с заказом. Сейчас отправляю тест из 10.0.9.17, и я получаю Relay access denied
. Если я добавлю:
mynetworks = 10.0.8.0/24 10.0.9.0/24
тогда любой может отправить куда угодно, поэтому №2 не работает.
Версия Postfix - 2.10 в Ubuntu 14.04.
Любые идеи?
Выход postconf | grep restrictions
:
smtpd_client_restrictions =
smtpd_data_restrictions =
smtpd_end_of_data_restrictions =
smtpd_etrn_restrictions =
smtpd_helo_restrictions =
smtpd_recipient_restrictions = check_recipient_access sqlite:/etc/postfix/access-bl.query, check_client_access hash:/etc/postfix/trusted_clients, check_recipient_access hash:/etc/postfix/local_domains, reject_unauth_destination, permit_mynetworks
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, defer_unauth_destination
smtpd_sender_restrictions =
В postfix 2.10 добавлен новый параметр smtpd_relay_restrictions
был представлен. Это ограничение будет оценено ПЕРЕД smtpd_recipient_restrictions
.
Фрагмент из официальная документация
smtpd_relay_restrictions (по умолчанию: permission_mynetworks, permission_sasl_authenticated, defer_unauth_destination) Ограничения доступа для управления ретрансляцией почты, которые SMTP-сервер Postfix применяет в контексте команды RCPT TO, до smtpd_recipient_restrictions. См. SMTPD_ACCESS_README, раздел «Отложенная оценка списков ограничения доступа SMTP» для обсуждения контекста и времени оценки.
Поэтому любой клиент за пределами mynetworks
получите Relay Access Denied
потому что это правило defer_unauth_destination
.
Одно из решений - переместить ограничение (2) и (3) в smtpd_relay_restrictions
.
smtpd_recipient_restrictions =
check_recipient_access sqlite:/etc/postfix/access-bl.query
smtpd_relay_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
check_client_access hash:/etc/postfix/trusted_clients,
check_recipient_access hash:/etc/postfix/local_domains,
reject_unauth_destination
Примечание:
smtpd_relay_restrictions
или smtpd_recipient_restrictions
. Не нужно повторять оба места. smtpd_relay_restrictions
предназначен для того, чтобы разместить там, где вы устанавливаете правило реле, в то время как smtpd_recipient_restrictions
заполнитель для занесения в черный список спама (например, reject_non_fqdn_sender).