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