
Для OpenSMTPd я хотел бы заблокировать сервер от отправки мне почты на основе доменного имени этого сервера. У него большое количество IP-адресов по всему миру, и блокировка каждого из них — слишком много работы, особенно с учетом огромного количества спама, который он рассылает. Я хотел бы просто полностью заблокировать сервер, есть ли способ просто молча отклонять всю почту, приходящую с почтовых серверов на "example.com" (в "Received" содержится это), например?
Спасибо!
решение1
Заголовки Received
не следует использовать для определения источника электронной почты, поскольку их можно легко подделать. Вместо этого следует доверять только той информации, которую ваш почтовый сервер может получить сам, например, исходный адрес, HELO
имя хоста и MAIL FROM
(проверено по записи SPF домена отправителя). Последний, т. е. самый верхний Received:
заголовок, добавляется вашим сервером, и эта информация поступает из HELO
команды SMTP (в сочетании с IP-адресом и обратным адресом PTR
).
Проверка содержимого заголовка возможна, например, с помощью Postfixheader_checks
(действие REJECT
), но, похоже, OpenSMTPd не реализовал ничего подобного. Кроме того, OpenSMTPd может только ретранслировать почту на внешние фильтры, делаяотклонение на этапе соединениядля неудавшегося SFP илиСписок блокировки на основе DNS(DNSBL) невозможно.
Что может сделать OpenSMTPd, чтобы помочь, описано в smtpd.conf(5)
,match
параметры reject
:
Вы говорите, что естьбольшое количество IP-адресов по всему миру, но они все могут фактически находиться в одном сетевом блоке. Используйте eg
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
Не молчиотказатьсяОпределенно спам, но используйтеотклонение на этапе соединения, как это делают эти примеры.