Hi,

I have a problem with restriction classes that I can't solve. I have a bunch of 
restriction classes. In order to simplify this mail I am only using two. One 
for SPF checking and the other for Greylisting. Now I would like to have for 
each of the restriction classes a bunch of conditions to whitelist by client 
ip, sender name or recipient name and that twice. Once on a map per policy 
service and one global.

Basically something like that here (simplified example):
-------
/etc/postfix/main.cf:
    smtpd_restriction_classes =
                spf_policy
                greylist_policy
    
        spf_policy =
        check_client_access 
pcre:${config_directory}/lookups/pcre/spf_client_whitelist.cf
                check_sender_access 
pcre:${config_directory}/lookups/pcre/spf_sender_whitelist.cf
        check_recipient_access 
pcre:${config_directory}/lookups/pcre/spf_recipient_whitelist.cf
                check_client_access 
pcre:${config_directory}/lookups/pcre/global_client_whitelist.cf
        check_sender_access 
pcre:${config_directory}/lookups/pcre/global_sender_whitelist.cf
        check_recipient_access 
pcre:${config_directory}/lookups/pcre/global_recipient_whitelist.cf
        check_policy_service unix:private/spf-smtpd-policy

    greylist_policy =
        check_client_access 
pcre:${config_directory}/lookups/pcre/greylist_client_whitelist.cf
        check_sender_access 
pcre:${config_directory}/lookups/pcre/greylist_sender_whitelist.cf
        check_recipient_access 
pcre:${config_directory}/lookups/pcre/greylist_recipient_whitelist.cf
                check_client_access 
pcre:${config_directory}/lookups/pcre/global_client_whitelist.cf
        check_sender_access 
pcre:${config_directory}/lookups/pcre/global_sender_whitelist.cf
        check_recipient_access 
pcre:${config_directory}/lookups/pcre/global_recipient_whitelist.cf
        check_policy_service inet:127.0.0.1:2501

    smtpd_recipient_restrictions = 
                permit_mynetworks
                reject_unauth_destination
                spf_policy
                greylist_policy
                permit
-------


Now my problem is that if I would add an sender/recipient/client ip to one of 
the maps for SPF and return OK as action then the Greylisting policy would as 
well be overstepped. I don't know what I can add as action to not overstep the 
Greylisting policy? I have not tried DUNNO but as far as I understand the DUNNO 
would just continue to evaluate the other maps and at the end it would hit the 
check_policy_service anyway. Right?

I was thinking in maybe adding another restriction class and branch/jump there 
instead of giving an OK. For example:

instead of:
-------
/^123\.123\.123\.123$/ OK
-------

use this here:
-------
/^123\.123\.123\.123$/ dunno_policy
-------


and then in main.cf adding dunno_policy to smtpd_restriction_classes and adding 
something like that for the dunno_policy:
-------
dunno_policy =
        check_client_access 
pcre:${config_directory}/lookups/pcre/dunno_policy_client.cf
-------

and in dunno_policy_client.cf:
-------
/./ DUNNO
-------


But I am unsure what happens if I branch/jump from one restriction class to 
another and the other restriction class has just a DUNNO. Will then the 
processing return back to the first restriction class and continue or is the 
whole branching/jumping more or less like a flow of processing without 
returning back there where it was originally called?

Does anyone know the answer? Is that somewhere described in Postfix? Where?

Or does anyone know a better way in handling such a situation/problem?


// Steve
-- 
GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT!
Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01

Reply via email to