Я обслуживаю 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
...