Есть два почтовых сервера Postfix. Оба прописаны на DNS в качестве MX. Один из них с более низким приоритетом, работает как сервер исходящей почты (прописан в качестве relay для внутреннего Exchange). Второй, с более высоким приоритетом, работает как сервер входящей почты. Речь пойдет о нем.
Кусочек main.cf:
smtpd_sender_restrictions =
reject_unknown_sender_domain,
reject_unknown_hostname,
reject_non_fqdn_sender,
reject_non_fqdn_hostname,
check_client_access pcre:/etc/postfix/client_checks.pcre,
check_helo_access pcre:/etc/postfix/helo_checks.pcre,
permit_mynetworks,
check_sender_access hash:/etc/postfix/sender_access_hashФайл /etc/postfix/sender_access_hash:
mydomain.ru REJECT My Own Domain.
Здесь все нормально. Запрещает отправлять письма от address@mydomain.ru, если отправка идет не из mynetworks.
Но проходят письма, в которых в поле mail from: стоит реальный адрес спамера, а в поле data, в заголовке from: стоит address@mydomain.ru
Если в main.cf прописать:
header_checks = regexp:/etc/postfix/header_checks
А в файле /etc/postfix/header_checks прописать:
/^From:.*@mydomain\.ru/ REJECT Problems with headers.
То реджектится "хорошая" почта, которая идет от address1@mydomain.ru наружу, а потом пересылается с ящика адресата на address2@mydomain.ru
Может можно как-то по другому прописать header_checks? Или есть другой путь решения проблемы. Сам перерыл кучу документации, не нашел.