Я недавно отказался от SpamAssassin и теперь основываю отказ от спама на DNSRBL, сером списке и других базовых тестах, и мне интересно, должен ли я также блокировать хосты, у которых нет действительного RDNS, соответствующего EHLO?
Если я сделаю это, я буду создавать проблемы из-за большого количества законной почты и расстроить моих клиентов? Я слышал, как люди недовольны тем, что AOL делает это, и я думаю, что это, возможно, слишком необычно для меня.
Мне также интересно, могу ли я пойти на компромисс, проверив, что RDNS хотя бы настроен на что-то, но не пытаюсь сопоставить его с EHLO. Возможно ли это с Postfix (и полезно ли это)?
Чрезвычайно часто блокируют SMTP-серверы, у которых нет этих основ:
Любой, кто боится заблокироваться из-за одного из них, должен быть покрыт смолой и перьями.
Я сочувствую людям, которые в конечном итоге оказываются заблокированными по другим причинам, особенно в ситуациях, когда в «ненормальных» ситуациях полагается на соответствие RFC. Спам - такая проблема, что нет оправдания упущению основ.
Я пробовал несколько подходов с проверкой HELO / EHLO с довольно приличной клиентской базой от 100 000 до 200 000 пользователей и в итоге выбрал решение, которое делает следующее:
Вот блок 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, вы можете отклонить почту. На самом деле вы можете получить такое поведение, но вам нужно будет написать свой собственный служба политики