On our server we are using policyd 1.x together with Postfix 2.1.5 for greylisting and enforcing incoming quotas from unauthorized users (ie. mail for our domains). For this, I have set up Postfix
main.cf like this:
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,
and set up a selective greylisting configuration:
# 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
i.e. the SASL authentication overrides policyd. So far, this works great. However, I would now like to use policyd as well for authenticated users and set up a completely different rule set for these users:
For SOME unauthorized users, based on remote host name,
- accounting (limit number of mails per time) with defaults,
For authorized (SASL) users,
- no greylisting,
- different user-specific outgoing mail quota with default,
- no blacklisting,
- no whitelisting.
So far, I think I have to run another instance of policyd with different SQL database and configuration file.
Is this true or is there a way to configure a single instance of policyd to use different rulesets based on remote hostname AND SASL authentication status?