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
    

Не молча отбрасывайте определенный спам, а используйте отклонение на этапе подключения, как это делают эти примеры.

Другие вопросы по тегам