Каждые 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.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, кол-во писем с домена и прочее
>то можешь смело закрывать 180.244.221.145. http://www.senderbase.org/senderbase_queries/detailip?search...Этот IP это один из многочисленных... Каждый раз разные IP и попытки отправить от другого email. Забанить IP конечно можно,но у меня за час файрволом блокируется 500 новых с такими же действиями.
То что это не мой клиент пытается отправить я уверен на 100%, просто мне уже надоела та резвость с которой эти IP стучаться...
> И кстати HELO - это этап приветствия, а утебя на этапе DATA
> идет ошибка.А почему даннное правило не обламало отправителя еще на этапе приветствия? Он пропустил его?
> Для борьбы со СПАМ как один из возможных инструментов можешь использовать все
> тот-же DSBL.DSBL подключен, некоторых отбивает, но вот такое вот движение, как в моем случае - не помогает.
что можно предпринять еще, чтобы отсеивать подобных ботов еще на этапе подключения?
> H=([180.244.221.145]) [180.244.221.145]Отправитель в качестве хело подсовывает свой ИП-адрес. За одно это можете смело его фачить ацлем на стадии RCPT. У хоста нету доменного имени, и, по установившимся правилам, он должен всю свою почту слать через соответственно настроенный релей провайдера.
Если отправитель в хело указывает имя, которое не резолвится в ИП, или резолвится, но этот ИП не бекрезолвится в то же самое имя - фачить нещадно. С некоторой малой вероятностью это может быть результатом криворучия админа на той стороне, но с гораздо большей вероятностью это будет попытка спамбота прикрыться чужим именем.
Поадресные фейл2баны и днсблы - бестолковые и громоздкие инструменты. Фильтрацией на RCPT можно отсеять гораздо больше и точнее.
> Фильтрацией на 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)И ничего не отсеивается. Что не так?
> И ничего не отсеивается. Что не так?Не так то, что отправитель в хело отправляет ИП в квадратных скобках - [xxx.xxx.xxx.xxx], поэтому парсить через сендер_хост_адресс не получается, нужно регекспом
${if or{isip{$sender_helo_name}}{match_ip{$sender_helo_name}{[$sender_host_address}]}}{1}{0}}
> ${if or{isip{$sender_helo_name}}{match_ip{$sender_helo_name}{[$sender_host_address}]}}{1}{0}}К сожалению не помогло... Уже пробовал и просто match и ставить слеши перед [], в разных местах ставил данное условие. Может еще что-нибудь посоветуете?
>> ${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} }
>>> ${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} }
> Правильно:
> 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: и ничего. Может что не так делаю?
>> Правильно:
>> 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
> Поадресные фейл2баны и днсблы - бестолковые и громоздкие инструменты. Фильтрацией на RCPT
> можно отсеять гораздо больше и точнее.Только RCPT TO уже сожрет твои ресурсы, прежде чем будет отправлено письмо. Ненужное время простоя.
Чем РАНЬШЕ можно отсеять спам тем лучше. Самая эффективная и универсальная настройка - сочетание отсеивания по разным критериям на разных этапах SMTP соединения. Взять хотя бы IronPort. Кто использовал, полностью согласится, что у них комплексная система фильтрации и защиты.
>> Поадресные фейл2баны и днсблы - бестолковые и громоздкие инструменты. Фильтрацией на RCPT
>> можно отсеять гораздо больше и точнее.
> Только RCPT TO уже сожрет твои ресурсы, прежде чем будет отправлено письмо.
> Ненужное время простоя.
> Чем РАНЬШЕ можно отсеять спам тем лучше. Самая эффективная и универсальная настройка
> - сочетание отсеивания по разным критериям на разных этапах SMTP соединения.
> Взять хотя бы IronPort. Кто использовал, полностью согласится, что у них
> комплексная система фильтрации и защиты.Ду ну. Основной комплекс у них - это отсеивание по репутациям, которые они присваивают благодаря т.н. "ловушкам" по всему миру.
> Ду ну. Основной комплекс у них - это отсеивание по репутациям, которые
> они присваивают благодаря т.н. "ловушкам" по всему миру.)) я так понимаю ты работал с IronPort?)) Или это просто - пальцем в небо?))
>> Ду ну. Основной комплекс у них - это отсеивание по репутациям, которые
>> они присваивают благодаря т.н. "ловушкам" по всему миру.
> )) я так понимаю ты работал с IronPort?)) Или это просто -
> пальцем в небо?))Какая-то барыжная конторка давала нам на пробное использование на 1 месяц. Весчь клевая, но дорогая...
А что ты прочитал что-то не то в моем посте?...
> Не так то, что отправитель в хело отправляет ИП в квадратных скобках - [xxx.xxx.xxx.xxx]согласно rfc это допустимая форма, хоть и устаревшая
> согласно rfc это допустимая форма, хоть и устаревшаяЯ лишь имел в виду, что регексп не учитывал наличия скобок. А форма - допустимая и корректная формально, но недопустимая фактически. Каждый СМТП-отправитель из сторонних сетей должен иметь резолвящееся имя.