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
Не молча отбрасывайте определенный спам, а используйте отклонение на этапе подключения, как это делают эти примеры.