Назад | Перейти на главную страницу

В постфиксе, как я могу условно применить check_sender_access

Я обслуживаю 2 виртуальных домена: domain1.org, domain2.org. Я хочу обеспечить соблюдение следующей политики:

Если клиент подключается с IP-адреса в $ mynetworks тогда я хочу разрешить только почту для чего отправитель адрес домена принадлежит в один из моих доменов.

Если клиент подключается с любого другого IP-адреса тогда я хочу разрешить только почту для чего отправитель адрес домена не принадлежит в один из моих доменов.

Для этого есть два файла доступа к хешу (sender_for_local_clients и sender_for_remote_clients)

sender_for_local_clients содержит

domain1.org OK
domain2.org OK

sender_for_remote_clients содержит

domain1.org REJECT
domain2.org REJECT

Но я не знаю, как их объединить в директиве smtpd_sender_restrictions. Отчасти проблема заключается в том, что действия OK автоматически не разрешают РАЗРЕШЕНИЕ, в то время как действия REJECT автоматически выполняют REJECT, поэтому я не могу найти правильную последовательность smtpd_sender_restrictions, которая будет выполнять мою вышеизложенную политику. Любые идеи?

Для этого вам понадобится класс ограничения. Воспроизвести содержимое $ mynetworks на карте CIDR, например cidr: / etc / postfix / local_clients примерно так:

# local networks
192.168.0.0/24 local_senders

smtpd_restriction_classes = local_senders
local_Senders = check_sender_access hash:/etc/postfix/sender_for_local_clients, reject

smtpd_recipient_restrictions = 
 ...
 check_client_access cidr:/etc/postfix/local_clients
 ...
 check_sender_access hash:/etc/postfix/sender_for_remote_clients
 ...