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

Как ограничить адреса в MAIL FROM?

Спокойной ночи,

У меня есть сервер postfix в сочетании с базой данных mysql для управления адресами. Есть таблица, отображающая пользователей и их почтовые адреса. например

|user|mail@domain.tld|
|user|mail2@domain.tld|

Кроме того, у меня есть несколько локальных псевдонимов для сервисов, например для веб-форума (forum@domain.tld)

Теперь я хочу настроить postfix следующим образом. Если кто-то отправляет письмо на почтовый сервер, MAIL FROM: заголовок должен быть проверен. Если он содержит письмо, принадлежащее пользователю в таблице, оно должно быть отклонено, если пользователь не авторизован. Если он принадлежит к локальному псевдониму, его следует запретить, если он не отправлен локальным хостом.

Я настроил постфикс следующим образом:

smtpd_sender_restrictions = permit_mynetworks, # allow local networks
        reject_unknown_hostname,
        reject_unknown_recipient_domain,
        reject_unknown_sender_domain,
        reject_sender_login_mismatch,
        permit_sasl_authenticated

(Виртуальные) псевдонимы настраиваются в alias_database и virtual_alias_maps. Для доставки почты пользователям имя пользователя извлекается mysql с помощью virtual_mailbox_maps.

Чтобы иметь сопоставление пользователя sasl auth со списком почтовых адресов, smtpd_sender_login_maps настроен на запрос, который возвращает всех пользователей на соответствующий адрес электронной почты.

Если я протестирую эти файлы, результаты будут работать в одном случае, но в сочетании они не работают должным образом.

Если я тестирую его и не авторизован, то письмо с MAIL FROM: mail@domain.tld отклоняется, как и ожидалось, но письмо с MAIL FROM: forum@domain.tld будет доставлено. Если я авторизован, я могу использовать любой MAIL FROM: заголовок. У меня нет настроек перезаписи для порта отправки.

Как я могу настроить ограничения таким образом, чтобы каждый пользователь мог отправлять сообщения только со списка разрешенных почтовых адресов?