На нашем сервере мы используем policyd 1.x вместе с Postfix 2.1.5 для создания серых списков и обеспечения квот на входящие сообщения от неавторизованных пользователей (например, почты для наших доменов). Для этого я настроил Postfix main.cf
как это:
smtpd_restriction_classes = greylisting
greylisting = check_policy_service inet:127.0.0.1:10031
...
smtpd_recipient_restrictions =
permit_mynetworks,
...
permit_sasl_authenticated,
...
check_client_access pcre:/etc/postfix/checks/greylist.pcre,
и настройте выборочную конфигурацию серых списков:
# greylist.pcre
/^unknown$/ greylisting
# TLDs with high spam rate
/\.(ni|ru|hu|us|si|sk|cn|jp|ro|hn|mx|br|ar|cc|ae|ee|my|tr|pt|cz)$/ greylisting
... etc
то есть аутентификация SASL переопределяет policyd. Пока это отлично работает. Однако теперь я хотел бы использовать policyd также для аутентифицированных пользователей и настроить полностью разные набор правил для этих пользователей:
Для НЕКОТОРЫХ неавторизованных пользователей, на основе имени удаленного хоста,
Для авторизованных (SASL) пользователей,
Пока я думаю, что мне нужно запустить еще один экземпляр policyd с другой базой данных SQL и файлом конфигурации.
Так ли это, или есть способ настроить один экземпляр policyd для использования разных наборов правил на основе имени удаленного хоста И статуса аутентификации SASL?
Это возможно в policyd v2 (cluebringer). Вы можете определить правила для каждой политики (одна политика для входящей электронной почты, другая политика для исходящей, третья для SASL). И затем вы можете назначить различные компоненты политик (grelist, SPF, quota) для каждой политики.