Назад | Перейти на главную страницу

Это хорошая практика или слишком суровая практика отклонять письма с почтовых серверов без RDNS?

Я недавно отказался от SpamAssassin и теперь основываю отказ от спама на DNSRBL, сером списке и других базовых тестах, и мне интересно, должен ли я также блокировать хосты, у которых нет действительного RDNS, соответствующего EHLO?

Если я сделаю это, я буду создавать проблемы из-за большого количества законной почты и расстроить моих клиентов? Я слышал, как люди недовольны тем, что AOL делает это, и я думаю, что это, возможно, слишком необычно для меня.

Мне также интересно, могу ли я пойти на компромисс, проверив, что RDNS хотя бы настроен на что-то, но не пытаюсь сопоставить его с EHLO. Возможно ли это с Postfix (и полезно ли это)?

Чрезвычайно часто блокируют SMTP-серверы, у которых нет этих основ:

  1. Имя хоста в HELO forward преобразуется в исходное IP-соединение.
  2. IP-адрес источника соединения меняется на имя хоста, заявленное в HELO.
  3. Если существуют политики SPF, DKIM или DMARC, проверьте.

Любой, кто боится заблокироваться из-за одного из них, должен быть покрыт смолой и перьями.
Я сочувствую людям, которые в конечном итоге оказываются заблокированными по другим причинам, особенно в ситуациях, когда в «ненормальных» ситуациях полагается на соответствие RFC. Спам - такая проблема, что нет оправдания упущению основ.

Я пробовал несколько подходов с проверкой HELO / EHLO с довольно приличной клиентской базой от 100 000 до 200 000 пользователей и в итоге выбрал решение, которое делает следующее:

  • Убедитесь, что HELO / EHLO содержит доменное имя. - В основном это сводится к тому, есть ли в названии точка. Проверка DNS по имени привела к МНОГИМ отказавшим серверам, так как нередко сервер представляет внутреннее имя или что-то, что вы не можете правильно разрешить.
  • Убедитесь, что IP-адрес имеет обратную запись DNS. - Опять же, это слабая настройка, поскольку мы не проверяем ее по HELO / EHLO. Проверка по HELO / EHLO создала так много тикетов, что эта настройка не длилась ни одного дня.
  • Проверьте правильность доменного имени отправителя. - Это базовая проверка, чтобы убедиться, что если нам действительно нужно отклонить сообщение, есть по крайней мере какой-то способ найти для него сервер.

Вот блок Postfix, который мы используем для этих проверок:

smtpd_recipient_restrictions =
    reject_non_fqdn_sender,
    reject_unauth_destination,
    reject_unknown_reverse_client_hostname,
    reject_invalid_helo_hostname,
    reject_non_fqdn_helo_hostname,
    reject_unknown_sender_domain,
    reject_non_fqdn_recipient

Я ожидаю, что отправка MTA будет иметь действительный RDNS, но настаивание на совпадении EHLO будет зависеть от того, кто такие «клиенты». Вы можете найти несколько интересных рекомендаций в RFC5321:

2.3.5.

(...) Доменное имя, указанное в команде EHLO, ДОЛЖНО быть либо первичным именем хоста (доменное имя, которое разрешается в адрес RR), либо, если у хоста нет имени, литералом адреса (...)

4.1.4.

(...) SMTP-сервер МОЖЕТ проверить, что аргумент имени домена в команде EHLO действительно соответствует IP-адресу клиента. Однако, если проверка не удалась, сервер НЕ ДОЛЖЕН отказывать в приеме сообщения на этом основании.

но потом в 7.9.

Это общепризнанный принцип, согласно которому SMTP-сервер может отказать в приеме почты по любой оперативной или технической причине, которая имеет смысл для сайта, предоставляющего сервер. (...)

Обратный поиск не обязательно указывает на имя хоста, указанное в HELO. Иногда несколько доменов размещаются на одном хосте, и все они имеют один и тот же IP-адрес. Но когда вы попытаетесь выполнить обратный поиск, вы получите имя, которое было помещено в PTR-запись. Очевидно, что оба FQDN будут разными - и это вполне приемлемо.

Единственное обстоятельство, которое позволяет отбросить сообщение, - это неудачный обратный поиск. Любой успешный поиск означает, что хост действителен. Имена не должны совпадать.

Мне интересно, должен ли я также блокировать хосты, у которых нет действительного RDNS, соответствующего EHLO?

Нет, не надо. Блокирует все письмо только по одному критерию, это плохая практика.

Если я сделаю это, я буду создавать проблемы из-за большого количества законной почты и расстроить моих клиентов?

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

Мне также интересно, могу ли я пойти на компромисс, проверив, что RDNS хотя бы настроен на что-то, но не пытаюсь сопоставить его с EHLO. Возможно ли это с Postfix (и полезно ли это)?

да, это возможно. Вы можете использовать reject_unknown_reverse_client_hostname вместо reject_unknown_client_hostname

К сожалению, в postfix нет гибких возможностей для «комплексного решения». В exim вы можете добавить несколько очков для таких писем, например,

Score = 0 
1. The HELO or EHLO hostname is not in fully-qualified domain or address literal form. Score +=10
2. The HELO or EHLO hostname has no DNS A or MX record. Score +=20
3. The HELO or EHLO hostname is listed with the A record "d.d.d.d" under rbl_domain. Score +=20
4. The sender domain has no DNS A or MX record. Score +=10
5. SPF checks return softfail. Score +=10, fail, Score +=20
...

И так далее. После того, как все проверки будут завершены, и если ваш счет будет> 100, вы можете отклонить почту. На самом деле вы можете получить такое поведение, но вам нужно будет написать свой собственный служба политики