Для OpenSMTPd я хотел бы заблокировать сервер от отправки мне почты на основе доменного имени этого сервера. Он имеет большое количество IP-адресов повсюду, и блокировка каждого отдельного - слишком большая работа, особенно с огромным количеством рассылаемого спама. Я хотел бы просто полностью заблокировать сервер, есть ли способ просто отклонить всю почту, поступающую с почтовых серверов на «example.com» (например, «Получено» содержит это)?
Спасибо!
В Received
заголовки не должны использоваться для определения происхождения электронного письма, так как они могут быть легко подделаны. Вместо этого вы должны доверять только той информации, которую ваш почтовый сервер может получить сам, например, адрес источника, HELO
имя хоста и MAIL FROM
(проверено по SPF-записи домена отправителя). Последний, т.е. самый верхний Received:
заголовок добавляется вашим сервером, и эта информация поступает из HELO
Команда SMTP (в сочетании с IP-адресом и обратным PTR
).
Проверка содержимого заголовка была бы возможна, например, с помощью Постфикс header_checks
(действие REJECT
), но похоже, что в OpenSMTPd ничего подобного не реализовано. Кроме того, OpenSMTPd может ретранслировать почту только на внешние фильтры, что делает отказ на этапе подключения для отказавшего SFP или Черный список на основе DNS (DNSBL) невозможно.
Возможности OpenSMTPd, которые могут помочь, описано в smtpd.conf(5)
, match
параметры reject
:
Вы говорите, что есть большое количество IP-адресов повсюду, но на самом деле все они могут находиться в одном сетевом блоке. Используйте, например, whois IP.ADD.RE.SS
для определения подсети как CIDR-нотации, поскольку OpenSMTPd может читать подсети, выраженные в CIDR-нотации, например блокировать 192.0.2.0/24
с участием:
match from src 192.0.2.0/24 reject
Если хочешь отклонять всю почту, поступающую с почтовых серверов в example.com
и этот домен действительно используется в HELO
имя хоста, можно использовать эту информацию для отклонения. Точно так же match
есть опция для этого, и вы можете использовать список table(5)
файл:
match helo <rejectHeloDomains> reject
table rejectHeloDomains file:/etc/mail/rejectHeloDomains
Файл списка, содержащий домены, разрешенные подстановочные знаки:
example.com
*.example.com
Не молча отбросить явный спам, но используйте отказ на этапе подключения, как и в этих примерах.