URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 92069
[ Назад ]

Исходное сообщение
"Помогите проанализировать лог exim"

Отправлено dmitry_sairus , 05-Авг-11 10:59 
Каждые 20 сек. в лог Exim сыпется такая вот штука:

2011-08-05 09:46:42 SMTP syntax error in "MAIL FROM: <auspiciousness5@inbox.ru> BODY=8BITMIME" H=([180.244.221.145]) [180.244.221.145] malformed address: BODY=8BITMIME may not follow <auspiciousness5@inbox.ru>

Fail2ban эти адреса сразу банит, но в файрволе уже столько DROPов, что ого-го.

У меня вопрос - что это за попытки? - это на прием или отправку писем? Как с этим бороться?  

В exim.conf

прописал

deny    message        = We don't allow domain literals, sorry - many spam...
    hosts        = !+relay_from_hosts:*
    !senders = :
    condition    = ${if isip{$sender_helo_name}{yes}{no}}

Но это явно не помогает. Логи ростут как дрожжах.


Содержание

Сообщения в этом обсуждении
"Помогите проанализировать лог exim"
Отправлено Нубос , 05-Авг-11 16:56 
>[оверквотинг удален]
> У меня вопрос - что это за попытки? - это на прием
> или отправку писем? Как с этим бороться?
> В exim.conf
> прописал
> deny message  = We don't allow domain literals, sorry - many
> spam...
>  hosts  = !+relay_from_hosts:*
>  !senders = :
>  condition = ${if isip{$sender_helo_name}{yes}{no}}
> Но это явно не помогает. Логи ростут как дрожжах.

Судя по всему у тебя кто-то стучится с неправильно сформированным телом письма, об этом и говорит лог.
Как временная мера можешь дропать этого отправителя. Убивать IP адрес файерволом можно при 99% уверенности, что никакой важной почты с него не придет. В принципе, если ты не являешься провом - то можешь смело закрывать 180.244.221.145.  http://www.senderbase.org/senderbase_queries/detailip?search...
И кстати HELO - это этап приветствия, а утебя на этапе DATA идет ошибка.  
Для борьбы со СПАМ как один из возможных инструментов можешь использовать все тот-же DSBL.
Например
acl_check_rcpt:
  deny     !senders     = список_исключений_для_проверки_DSBL
            dnslists    = cbl.abuseat.org : multi.surbl.org : zen.spamhaus.org
            message     = Block_by_DSBL: $dnslist_text
            delay       = 30s      


Можно очень хорошо заточить почтовик, если он не является релеем для клиентов. Как пример - ограничить кол-во коннектов с 1 IP, кол-во писем с домена и прочее


"Помогите проанализировать лог exim"
Отправлено dmitry_sairus , 05-Авг-11 18:46 
>то можешь смело  закрывать 180.244.221.145.  http://www.senderbase.org/senderbase_queries/detailip?search...

Этот IP это один из многочисленных... Каждый раз разные IP и попытки отправить от другого email. Забанить IP конечно можно,но у меня за час файрволом блокируется 500 новых с такими же действиями.

То что это не мой клиент пытается отправить я уверен на 100%, просто мне уже надоела та резвость с которой эти IP стучаться...


> И кстати HELO - это этап приветствия, а утебя на этапе DATA
> идет ошибка.

А почему даннное правило не обламало отправителя еще на этапе приветствия? Он пропустил его?


> Для борьбы со СПАМ как один из возможных инструментов можешь использовать все
> тот-же DSBL.

DSBL подключен, некоторых отбивает, но вот такое вот движение, как в моем случае - не помогает.

что можно предпринять еще, чтобы отсеивать подобных ботов еще на этапе подключения?


"Помогите проанализировать лог exim"
Отправлено DeadLoco , 06-Авг-11 06:53 
> H=([180.244.221.145]) [180.244.221.145]

Отправитель в качестве хело подсовывает свой ИП-адрес. За одно это можете смело его фачить ацлем на стадии RCPT. У хоста нету доменного имени, и, по установившимся правилам, он должен всю свою почту слать через соответственно настроенный релей провайдера.

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

Поадресные фейл2баны и днсблы - бестолковые и громоздкие инструменты. Фильтрацией на RCPT можно отсеять гораздо больше и точнее.


"Помогите проанализировать лог exim"
Отправлено dmitry_sairus , 06-Авг-11 10:13 
> Фильтрацией на RCPT  можно отсеять гораздо больше и точнее.

Спасибо, DeadLoco. Именно это я и хочу сделать:

acl_check_rcpt:

deny  message       = Bad HELO: $sender_helo_name is not your address ($sender_host_address)
       condition     = ${if and { \
                         {isip {$sender_helo_name} } \
                         { !match_ip{$sender_helo_name}{$sender_host_address} } \
                         } \
                       {1}{0}}

deny  condition     = ${if and { \
                         { !isip{$sender_helo_name} } \
                         { !match{${lc:$sender_helo_name}}{^([a-z0-9][a-z0-9-]*\\.)+[a-z]\{2,6\}\$}} \
                       }}
message       = malformed HELO ($sender_helo_name)

И ничего не отсеивается. Что не так?


"Помогите проанализировать лог exim"
Отправлено DeadLoco , 07-Авг-11 00:23 
> И ничего не отсеивается. Что не так?

Не так то, что отправитель в хело отправляет ИП в квадратных скобках - [xxx.xxx.xxx.xxx], поэтому парсить через сендер_хост_адресс не получается, нужно регекспом


${if or{isip{$sender_helo_name}}{match_ip{$sender_helo_name}{[$sender_host_address}]}}{1}{0}}


"Помогите проанализировать лог exim"
Отправлено dmitry_sairus , 07-Авг-11 18:20 
> ${if or{isip{$sender_helo_name}}{match_ip{$sender_helo_name}{[$sender_host_address}]}}{1}{0}}

К сожалению не помогло... Уже пробовал и просто match и ставить слеши перед [], в разных местах ставил данное условие. Может еще что-нибудь посоветуете?


"Помогите проанализировать лог exim"
Отправлено Golub Mikhail , 08-Авг-11 13:19 
>> ${if or{isip{$sender_helo_name}}{match_ip{$sender_helo_name}{[$sender_host_address}]}}{1}{0}}
> К сожалению не помогло... Уже пробовал и просто match и ставить слеши
> перед [], в разных местах ставил данное условие. Может еще что-нибудь
> посоветуете?

${if match{$sender_helo_name}{\N^\[[0-9]\.[0-9]\.[0-9]\.[0-9]\]\N} {yes}{no} }


"Помогите проанализировать лог exim"
Отправлено Golub Mikhail , 08-Авг-11 14:33 
>>> ${if or{isip{$sender_helo_name}}{match_ip{$sender_helo_name}{[$sender_host_address}]}}{1}{0}}
>> К сожалению не помогло... Уже пробовал и просто match и ставить слеши
>> перед [], в разных местах ставил данное условие. Может еще что-нибудь
>> посоветуете?
> ${if match{$sender_helo_name}{\N^\[[0-9]\.[0-9]\.[0-9]\.[0-9]\]\N} {yes}{no} }

Правильно:
condition = ${if match{$sender_helo_name}{\N^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\N} {yes}{no} }


"Помогите проанализировать лог exim"
Отправлено dmitry_sairus , 11-Авг-11 00:29 

> Правильно:
> condition = ${if match{$sender_helo_name}{\N^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\N}
> {yes}{no} }

Не помогает (((

Ставлю сразу же после acl_check_rcpt:  и ничего. Может что не так делаю?


"Помогите проанализировать лог exim"
Отправлено Golub Mikhail , 11-Авг-11 12:34 

>> Правильно:
>> condition = ${if match{$sender_helo_name}{\N^\[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\]\N}
>> {yes}{no} }
> Не помогает (((
> Ставлю сразу же после acl_check_rcpt:  и ничего. Может что не так
> делаю?

Включайте debug и смотрите.
Работает.
Блокирует довольно много спама.

Вот, например:
2011-08-11 11:21:33 H=([59.98.162.13]) [59.98.162.13] F=<reviewingiaj04@qip.ru> rejected RCPT


"Помогите проанализировать лог exim"
Отправлено Нубос , 08-Авг-11 17:09 
> Поадресные фейл2баны и днсблы - бестолковые и громоздкие инструменты. Фильтрацией на RCPT
> можно отсеять гораздо больше и точнее.

Только RCPT TO уже сожрет твои ресурсы, прежде чем будет отправлено письмо. Ненужное время простоя.
Чем РАНЬШЕ можно отсеять спам тем лучше. Самая эффективная и универсальная настройка - сочетание отсеивания по разным критериям на разных этапах SMTP соединения. Взять хотя бы IronPort. Кто использовал, полностью согласится, что у них комплексная система фильтрации и защиты.


"Помогите проанализировать лог exim"
Отправлено artemrts , 12-Авг-11 22:42 
>> Поадресные фейл2баны и днсблы - бестолковые и громоздкие инструменты. Фильтрацией на RCPT
>> можно отсеять гораздо больше и точнее.
> Только RCPT TO уже сожрет твои ресурсы, прежде чем будет отправлено письмо.
> Ненужное время простоя.
> Чем РАНЬШЕ можно отсеять спам тем лучше. Самая эффективная и универсальная настройка
> - сочетание отсеивания по разным критериям на разных этапах SMTP соединения.
> Взять хотя бы IronPort. Кто использовал, полностью согласится, что у них
> комплексная система фильтрации и защиты.

Ду ну. Основной комплекс у них - это отсеивание по репутациям, которые они присваивают благодаря т.н. "ловушкам" по всему миру.


"Помогите проанализировать лог exim"
Отправлено Нубос , 23-Авг-11 10:30 
> Ду ну. Основной комплекс у них - это отсеивание по репутациям, которые
> они присваивают благодаря т.н. "ловушкам" по всему миру.

)) я так понимаю ты работал с IronPort?)) Или это просто - пальцем в небо?))


"Помогите проанализировать лог exim"
Отправлено artemrts , 23-Авг-11 16:44 
>> Ду ну. Основной комплекс у них - это отсеивание по репутациям, которые
>> они присваивают благодаря т.н. "ловушкам" по всему миру.
> )) я так понимаю ты работал с IronPort?)) Или это просто -
> пальцем в небо?))

Какая-то барыжная конторка давала нам на пробное использование на 1 месяц. Весчь клевая, но дорогая...
А что ты прочитал что-то не то в моем посте?...


"Помогите проанализировать лог exim"
Отправлено ALex_hha , 14-Авг-11 13:22 
> Не так то, что отправитель в хело отправляет ИП в квадратных скобках - [xxx.xxx.xxx.xxx]

согласно rfc это допустимая форма, хоть и устаревшая


"Помогите проанализировать лог exim"
Отправлено DeadLoco , 15-Авг-11 18:12 
> согласно rfc это допустимая форма, хоть и устаревшая

Я лишь имел в виду, что регексп не учитывал наличия скобок. А форма - допустимая и корректная формально, но недопустимая фактически. Каждый СМТП-отправитель из сторонних сетей должен иметь резолвящееся имя.