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

постфиксный глобальный белый / черный список, определяемый парой

Я определил глобальный белый список в postfix, используя MYSQL, со следующими параметрами:

smtpd_recipient_restrictions =
        reject_invalid_hostname,
        check_client_access mysql:/etc/postfix/client_whitelist
        check_sender_access mysql:/etc/postfix/sender_whitelist
        check_recipient_access mysql:/etc/postfix/recipient_whitelist
        permit_mynetworks,reject

Содержание /etc/postfix/client_whitelist

host = localhost:3306
user = root
password = password
dbname = postfix
query = SELECT restriction FROM client_whitelist WHERE client = "%s" AND status = "1";

Таблица mysql

+---------------+-------------+--------+
| client        | restriction | status |
+---------------+-------------+--------+
| 192.168.66.18 | OK          |      1 |
| 192.168.66.92 | OK          |      1 |
| 192.168.66.93 | REJECT      |      1 |
+---------------+-------------+--------+

И у меня есть та же таблица для отправителя и получателя. Моя основная проблема заключается в том, что у меня есть несколько доменов за постфиксом, и я хотел бы фильтровать клиентов / отправителей с учетом того, кто является получателем. Например:

Mail from 192.168.66.92 and sender "user1@test.com" IS ALLOW to "user2@domain1.com"

Mail from 192.168.66.92 and sender "user1@test.com" IS NOT ALLOW to "user2@domain2.com"

Mail from 192.168.66.18 IS ALLOW for recipient or domain "domain1.com"

Mail from 192.168.66.18 IS NOT ALLOW for recipient or domain "domain2.com"

Есть ли способ реализовать это в постфиксе? Я гуглил, но не повезло.

С другой стороны, я думал поставить «постфиксный прокси» для перенаправления на другие экземпляры постфикса, и каждый экземпляр фильтрует каждый домен. Но я не уверен в производительности этой среды, даже если это возможно.

Это невозможно при одной проверке доступа, поскольку в качестве входных данных предоставляется только одно из значений (клиент, отправитель или получатель, в зависимости от используемой проверки доступа), но не более одного.

Это неотъемлемая часть работы постфиксных таблиц доступа.

Вы можете обойти это, используя службу политик, например postfwd (которая имеет доступ ко всем этим значениям сразу), или используя классы ограничений.

Это позволяет, например, реализовать класс ограничений для клиентов и вернуть проверка доступа в результате вместо OK или REJECT.

Увидеть доступ к странице руководства для получения более подробной информации о картах доступа и возможных результатах.

Обратите внимание, что «белый список» не является полезным термином для того, что у вас есть, если он включает в себя как OK, так и REJECT в качестве результатов.