exim фильтрация HELO\EHLO

EXIM, sendmail, postfix, Dovecot и прочие. Решение проблем связанных с работой электронной почты

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
deisler
рядовой
Сообщения: 37
Зарегистрирован: 2009-03-18 17:56:17

exim фильтрация HELO\EHLO

Непрочитанное сообщение deisler » 2013-04-01 17:39:33

Приветствую всех.
Хочу послушать мнения товарищей на счёт фильтрации 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).
Есть ли у вас какие-нибудь мысли?
Спасибо.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: exim фильтрация HELO\EHLO

Непрочитанное сообщение ChihPih » 2013-04-01 18:34:08

Лучше делать на основе спам очков, ибо гибче, ИМХО. Вот как за пример.
www.info-x.org - информационный ресурс о ОС FreeBSD.

wildman
рядовой
Сообщения: 39
Зарегистрирован: 2012-12-02 15:45:49
Откуда: Kiev, Ukraine

Re: exim фильтрация HELO\EHLO

Непрочитанное сообщение wildman » 2013-04-01 18:42:09

мое скромное мнение:
- проверять существование домена -всегда.
- проверять существование отправителя - всегда.
- проверять PTR - всегда.

deisler
рядовой
Сообщения: 37
Зарегистрирован: 2009-03-18 17:56:17

Re: exim фильтрация HELO\EHLO

Непрочитанное сообщение deisler » 2013-04-01 19:19:24

ChihPih писал(а):Лучше делать на основе спам очков, ибо гибче, ИМХО. Вот как за пример.
Да можно, конечно, было бы на основе спам очков.
Только я использую dspam определения спамности только по содержимому письма.
В идеале хотелось бы сделать такую схему - подсчёт очков, и установление начального spam score для dspam, на который он накидывал бы свои очки и принимал решение о спамности письма или нет, т.е. чтобы последней инстанцией был dspam, т.к. пользователи у меня сами переучивают dspam фильтр под себя.
Проблема в том, что dspam не позволяет устанавливать начальный spam scrore, к сожалению...

Вот я и думаю как сохранить решение dspam как последней инстанции и максимально средствами exim прибивать спам без потенциальной потери важных писем с криво настроенных серверов.

ASY
мл. сержант
Сообщения: 130
Зарегистрирован: 2011-02-21 12:50:03

Re: exim фильтрация HELO\EHLO

Непрочитанное сообщение ASY » 2013-04-05 12:08:13

deisler писал(а):Обдумываю дополнительный вариант фильтрации: запрещать почту с релеев, которые в HELO подставляют несуществующий FQDN, т.е. без A записи.
К сожалению, RFC 2821 запрещает отлуп по данному основанию в явном виде:

An SMTP server MAY verify that the domain name parameter in the EHLO
command actually corresponds to the IP address of the client.
However, the server MUST NOT refuse to accept a message for this
reason if the verification fails: the information about verification
failure is for logging and tracing only.

Так что, остаётся только синтаксис проверять, а ля "10.1.1.1" или "[localhost]".

deisler
рядовой
Сообщения: 37
Зарегистрирован: 2009-03-18 17:56:17

Re: exim фильтрация HELO\EHLO

Непрочитанное сообщение deisler » 2013-04-05 14:10:35

ASY писал(а):
deisler писал(а):Обдумываю дополнительный вариант фильтрации: запрещать почту с релеев, которые в HELO подставляют несуществующий FQDN, т.е. без A записи.
К сожалению, RFC 2821 запрещает отлуп по данному основанию в явном виде:

An SMTP server MAY verify that the domain name parameter in the EHLO
command actually corresponds to the IP address of the client.
However, the server MUST NOT refuse to accept a message for this
reason if the verification fails: the information about verification
failure is for logging and tracing only.

Так что, остаётся только синтаксис проверять, а ля "10.1.1.1" или "[localhost]".
Да, я читал этот пункт.
Тут статистика такова, что 99,....% отправляющих с helo который не является literal ip или fqdn, являются спамерами, либо клиентами, которые юзают почтовые программы, а клиентов из такой проверки мы исключаем.
В принципе, можно конечно и не резать, а накидывать баллы.