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

Сделайте так, чтобы Postfix использовал MySQL, чтобы проверить, разрешен ли адрес отправителя

Мы пытаемся использовать PostFix, чтобы проверить, разрешено ли электронному адресу отправителя отправлять на конкретный электронный адрес.

Другой способ описать это - это то, что я хочу, чтобы определенные адреса электронной почты разрешали только входящие сообщения (не входящие в систему SMTP) с определенных адресов электронной почты.

Будет ли что-то подобное работать? main.cf:

smtpd_recipient_restrictions =
    [other restrictions here]
    check_sender_access
        mysql:/etc/postfix/restricted_senders_to_recipents.cf

limited_senders_to_recipents.cf:

user = uname
password = pword
hosts = 127.0.0.1
dbname = dbname
#!!!PSEUDOCODE!!!
query = SELECT allowed FROM members WHERE sender = %sender AND recipent = %recipent;

Это возможно? Если то как?

Я знаю, что псевдонимы в MySQL работают именно так, поскольку мы уже его используем. (http://www.postfix.org/mysql_table.5.html)

Короткий ответ - ВЕРОЯТНО НЕТ.

Postfix поддерживает ограничение на отправителя / получателя / клиента с Postfix для каждого клиента / пользователя / и т. Д. Контроль доступа с участием smtpd_restriction_classes. С вашим требованием вы должны динамически установить smtpd_restriction_classes параметр, но он не работает с постфиксом.

В качестве обходного пути вы можете использовать Milter (см. документация) или что-то вроде Postfwd или ПолитикаD

Кажется, вы можете сделать это в два этапа.

Сначала создайте smtpd_sender_restriction, который представляет собой поиск в mysql для адресов, принадлежащих классу пользователей, которым нужен acl:

smtpd_recipient_restrictions = reject_non_fqdn_sender,
    ...
    mysql:/etc/postfix/protected_users.cf

Затем, поскольку этот поиск mysql вернет класс пользователей, вы можете назначить этот класс пользователей для выполнения другого поиска, чтобы решить, можно ли отправить почту:

smtpd_recipient_restrictions = reject_non_fqdn_sender,
    ...
    proxy:mysql:/etc/postfix/protected_users.cf

whitelist = check_sender_access прокси: mysql: /etc/postfix/whitelist.cf, отклонить

Этот поиск из двух частей должен делать то, что вам нужно.

Ссылка