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

Есть ли способ внести в белый список и адрес или домен в helo_restrictions Postfix?

Я использую postfix helo_restrictions для внесения в черный список доменов, склонных к спаму. Одна из них - это служба, предоставляющая электронную почту людям, которым нужны адреса электронной почты со своими доменами, но не хотят запускать почтовый сервер. Я блокирую эту службу в моем файле check_helo_access:

domainemailsvc.net ОТКЛЮЧИТЬ Пожалуйста, не используйте спам.

Но, к сожалению, несколько человек отправляют законную почту через эту же службу. Должен ли я просто удалить эту строку из check_helo_access и надеяться, что spamassassin выполнит свою работу или есть способ внести в белый список эти конкретные адреса электронной почты или поддомены?

Пример записи в файле журнала для сообщения от моего друга (tom@tomsdomain.com):

Sep 16 11:27:41 myserver postfix/smtpd[19223]: NOQUEUE: reject: RCPT from
 bosmailout01.domainemailsvc.net[xx.xx.xx.xx]: 554 5.7.1
 <bosmailout01.domainemailsvc.net>: Helo command rejected: No spam please.;
 from=<FSD0=AFyHhv=3K=tomsdomain.com=tom@domainemailsvc.net>
 to=<lido@myserver.com> proto=ESMTP helo=<bosmailout01.domainemailsvc.net>

Я пробовал добавить в свой файл check_helo_access следующее:

tomsdomain.com OK
tom@domainemailsvc.net OK

... но, похоже, это не работает.

Команда EHLO / HELO SMTP (над которой работает функция check_helo_access) имеет только имя хоста в качестве данных, так что это все, с чем может работать этот конкретный фильтр. Таким образом, вы не можете использовать файл check_helo_access, чтобы разрешить определенным отправителям с имени хоста / домена, который вы блокируете с его помощью.

Если вы хотите получать почту от определенных пользователей в этом домене, разрешите это с помощью check_helo_access.

Затем вы можете использовать, если я помню, sender_access, чтобы разрешить определенные адреса и заблокировать все остальное из этого домена.

Хороший способ подумать об этих проверках в постфиксе состоит в том, что каждая из них работает с определенной частью диалога SMTP, которая, в свою очередь, имеет определенные данные. Домен вступает в игру с HELO. RCPT TO включает местный адрес для доставки. ПОЧТА ОТ включает адрес отправителя. И так далее. Определите, какую часть SMTP-диалога вы хотите отфильтровать, а затем используйте связанную с ним проверку Postfix.

Спасибо @malcolmpdx за то, что указали мне правильное направление. На самом деле sender_access - это то, как я смог это сделать, используя базовое регулярное выражение:

в main.cf:

smtpd_sender_restrictions = check_sender_access pcre:/etc/postfix/sender_access

в sender_access:

/^.*=tom@domainemailsvc.net$/ OK
/^.*domainemailsvc.net$/ REJECT