Re: Re[2]: HELO не проверяется, либо я чего-то не понимаю

От: Andrey N. Oktyabrski <CGatePro_at_mx_ru>
Дата: Thu 07 Dec 2006 - 11:32:55 MSK

Нехорошев Михаил wrote:
>>>> Так вот вопрос, почему письмо прошло проверку, когда заведомо IP
>>>> 132.248.8.146 не соответствует домену localhost.localdomain
>>>> в чем я не прав?
>>> Если бы параметр HELO разрешился в 132.248.8.146, в заголовке Received
>>> было бы использовано имя из HELO, а в скобочках было бы - verified.
>>>
>>> Невозможность определить истинность параметра HELO недостаточна для
>>> отказа в приеме соединения/письма.

> Andrey N. Oktyabrski> В таком примере как здесь смело можно давать отлуп, совершенно не 
> Andrey N. Oktyabrski> опасаясь ложных срабатываний. Более того, так же смело можно давать 
> Andrey N. Oktyabrski> отлуп на все HELO, которые равны одному из локальных имен/адресов. 
> Andrey N. Oktyabrski> Например, мой сервер работает на хосте с именем cgp.dom.ru с адресом 
> Andrey N. Oktyabrski> 1.2.3.4 - так вот если кто-то ломится ко мне с целью влить почту и 
> Andrey N. Oktyabrski> представляется как cgp.dom.ru или 1.2.3.4, то
> Andrey N. Oktyabrski> это точно враг. Исключения 
> Andrey N. Oktyabrski> - белый список, локальные адреса и
> Andrey N. Oktyabrski> аутентифицированные пользователи - им 
> Andrey N. Oktyabrski>   разрешено совать в HELO любой мусор. Это
> Andrey N. Oktyabrski> правило работает у меня уже 
> Andrey N. Oktyabrski> не один год и не дало ни одного ложного срабатывания.
> 
> Андрей, если можно поделиться, поделитесь.. ПЛЗЗЗЗЗ, достали уроды с
> непонятными холами.

Могу, но только настройками для exim, который у меня стоит фронтендом к CGP. В самом CGP я ничего не фильтрую и почту им по SMTP не принимаю. Собираю список запрещенных helo таким скриптом:

ano@moon:~> sudo cat /opt/exim/bin/wrong_helo.sh #!/bin/sh
EXIMDB=/opt/exim/db
for a in \

         127.0.0.1 \
         5.6.7.8 \
         1.2.3.4; do

   echo $a >> $EXIMDB/wrong_helo
   for d in /var/named/master/*.hosts; do
     dom=`basename $d | sed 's/\.hosts$//' | awk '{print tolower($1)}'`
     for name in `host -t a -l -v $dom | awk -v addr=$a '{if ($NF == 
addr) print tolower($1)}'`; do
         echo $name
         host -t cname -l -v $dom | awk -v name=$name '{if (tolower($NF) 
== name) print tolower($1)}'
     done

   done | grep -vE '^[^.]+$' | sed 's/\.$//' >> $EXIMDB/wrong_helo done Получено Thu Dec 07 08:39:20 2006

Этот архив был сгенерирован hypermail 2.1.8 : Thu 07 Dec 2006 - 12:13:36 MSK