Хочу послушать мнения товарищей на счёт фильтрации HELO\EHLO.
в acl_smtp_rcpt я установил фильтрацию сообщений для клиентов:
Код: Выделить всё
# Запрещщаем тех, кто не обменивается приветственными
# сообщениями (HELO/EHLO)
deny message = "Access denied - HELO/EHLO require by SMTP (See RFC2821 4.1.1.1)"
condition = ${if eq{$sender_helo_name}{}}
# Рубаем тех, кто подставляет в HELO ip адрес.
deny message = "Access denied - HELO/EHLO must contain a FQDN or IP literal"
!authenticated = *
hosts = !127.0.0.1 : !localhost : *
condition = ${if isip{$sender_helo_name}}
# Проверка HELO на literal ipv4, блочить если literal ipv4 отличается от ip отправителя или HELO/EHLO не содержит FQDN..
deny message = "Access denied - Your literal ip in HELO/EHLO isn't your IP address or HELO/EHLO don't contain a FQDN"
!authenticated = *
hosts = !127.0.0.1 : !localhost : *
condition = ${if or{\
{and{\
{match{$sender_helo_name}{\N\[((25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]?)\.)((25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]?|0)\.){2}(25[0-5]|2[0-4][0-9]|[1][0-9][0-9]|[1-9][0-9]?)\]\N}}\
{!eq{$sender_helo_name}{[$sender_host_address]}}}}\
{!match{$sender_helo_name}{\N(((([[:lower:][:digit:]]+)(((-)([[:lower:][:digit:]]+))*))\.)+)([[:lower:][:digit:]]{2,})\N}}}}
# Рубаем тех, кто подставляет в HELO пихает мой hostname
deny message = "Access denied - HELO/EHLO don't must contain a [$sender_helo_name]"
hosts = !127.0.0.1 : !localhost : *
condition = ${if eq{$sender_helo_name}{$primary_hostname}}
# Рубаем тех, кто подставляет в HELO домены из локальных доменов.
deny message = "Access denied - HELO/EHLO don't must contain a [$sender_helo_name]"
hosts = !127.0.0.1 : !localhost : !+relay_from_hosts : *
condition = ${if match_domain{$sender_helo_name}{+local_domains}}
Обдумываю дополнительный вариант фильтрации: запрещать почту с релеев, которые в HELO подставляют несуществующий FQDN, т.е. без A записи.
Всё никак не могу прийти в выводу зарежет ли мне такое правило валидную почту от криво настроенных серверов или нет (а если сервера настолько кривые, так ли нужна от них почта?). То же самое на соответствие helo literal ip address или FQDN (по rfc).
Есть ли у вас какие-нибудь мысли?
Спасибо.