Postfix ограничения доступа

Я использую Postfix 2.9.6 из Debian7. Определены некоторые виртуальные домены, все работает нормально, как и ожидалось.

Теперь я хочу ограничить прием входящих писем одним из моих доменов, если они приходят из того же домена или если отправитель имеет sasl_authenticated (из других размещенных доменов на том же сервере) или входящая почта поступает из одного домена из белого списка (о 2-3 домена).

В конфигах Postfix я вижу только sender_restrictions и receient_restriction, но как одновременно управлять получателем / отправителем?

2 ответа

В Postfix есть такие функции, которые называются классами ограничения SMTPD. Но это не удобно, как вы пишете ACL с if-then-else, Для этого вы можете использовать postfwd как ответ от tomas или policyD


Здесь вы положили в main.cf

# define one restrictio class, let's name it 'specialdomain'
smtpd_restriction_classes = specialdomain

# define the restriction for this class
specialdomain = 
    check_sender_access hash:/etc/postfix/specialdomain2    # permit sender same domain
    permit_sasl_authenticated                               # permint sasl_authenticated 
    check_sender_access hash:/etc/postfix/whitedomain       # permit whitelisted domain
    reject                                                  # otherwise reject        

smtpd_recipient_restrictions = 
    check_recipient_access = hash:/etc/postfix/specialdomain
    ... other restriction ...

Карты

# /etc/postfix/specialdomain
example.com     specialdomain

# /etc/postfix/specialdomain2
example.com    OK

#/etc/postfix/whitedomain
example.net     OK
example.org     OK

Как это устроено:

Первая проверка постфикса, если получатель указан в /etc/postfix/specialdomain, если да, то постфикс применяет ограничение, определенное в specialdomain параметр main.cf,

specialdomain ограничение имеет несколько параметров для разрешения электронной почты. Там два check_sender_access проверить, был ли домен отправителя таким же или уже занесен в белый список. Существует также permit_sasl_authenticated разрешить аутентификацию пользователя SASL. В противном случае отклоните это.

Я не думаю, что вы можете достичь этого, используя только постфикс. Посмотрите на postfwd, там вы можете установить набор правил, например:

&&TO_PROTECTED_DOMAIN {  recipient_domain=my_protected_domain.tld; };
&&FROM_WHITELIST_DOMAIN { sender_domain=my_protected_domain.tld; \
                          sender_domain=whitelisted1.tld; \
                          sender_domain=whitelisted2.tld; \
                        };

id=PD_01;  &&TO_PROTECTED_DOMAIN; sasl_method =~ (LOGIN|PLAIN);  action=DUNNO
id=PD_02;  &&TO_PROTECTED_DOMAIN; &&FROM_WHITELIST_DOMAIN; action=DUNNO
id=PD_03;  &&TO_PROTECTED_DOMAIN; action=REJECT You're not permitted sending to this domain.
Другие вопросы по тегам