Страница 1 из 2

exim: рубить спам через blacklist

Добавлено: 2008-04-28 17:11:05
[rain]
Доброго дня.
Новичок в сфере почты, активно изучаю мануалы, но где-то что-то не догоняю...

Решил зарубить спам через blacklist релеев, составленный собственноручно, засим в файлик поместил список в форме:

Код: Выделить всё

host1
host2
host3
Прочитав, как сделано тут, в конфиг вписал следующий acl:

Код: Выделить всё

deny         message = sender IP address $sender_host_address is locally blacklisted here.
                hosts = ${/path/to/dir/blacklist.txt}
И есть у меня подозрения, что эта схема чуть неработоспособна.
Сомнения верны?

Re: exim: рубить спам через blacklist

Добавлено: 2008-04-28 17:49:51
princeps
Посмотри прилепленную тему "Полезные скрипты\настройки для exim" там есть пост "Блокировка спамеров на этапе connect". Кажется, то, что тебе надо.

Re: exim: рубить спам через blacklist

Добавлено: 2008-04-28 19:04:10
[rain]
Ога ога, спасибо, по сути, то что надо.
Прикрутил, но не работает, в логи сообщение не пишется. Подозреваю, что дело в формате файла, но не понимаю.
Читаю тут:

Код: Выделить всё

Четыре вида именованных списков создаются конфигурационными строками, начинающимися со слов “domainlist”, “hostlist”, “addresslist” или “localpartlist” соответственно. Задаваемые вами списки помещайте после них. Например:

hostlist    relay_hosts = 192.168.23.0/24 : my.friend.example
addresslist bad_senders = cdb;/etc/badsenders
Два вопроса: что есть cdb (отменяется, нашел инфу о cdb вот тут) и в каком формате должны быть домены записаны в файле? :?
У меня они идут в формате:

Код: Выделить всё

*.spokaneschools.org
*.outblaze.com
*.com.br
*.aboutcomics.com
*.bluebird.com
*.bofill.com
*.ingr.com
*.chinaxinzhou.com
*.ezagenda.com
*.antronomia.com
*.mexxxico.com

Re: exim: рубить спам через blacklist

Добавлено: 2008-04-28 20:30:13
[rain]
Формат - случайно не вот такой в файле должен быть?

Код: Выделить всё

^.*bezeqint\\.net
^.*arcor-ip\\.net
^.*novis\\.pt
^.*rr\\.com
^.*verizon\\.net

Re: exim: рубить спам через blacklist

Добавлено: 2008-04-28 22:03:35
Alex Keda
да хрен его знает...
тебе какая разница в каком файле?
найди в доках поиск с примерами, его и заюзай.
накрайняк мусю - хоть и изврат...

Re: exim: рубить спам через blacklist

Добавлено: 2008-04-28 22:11:17
[rain]
Да тем и занимаюсь, ищу, думаю...

Re: exim: рубить спам через blacklist

Добавлено: 2008-04-29 9:22:33
princeps
Я тоже парился с форматом файлов для плохих кейвордов. Как разберешься - напиши.

Re: exim: рубить спам через blacklist

Добавлено: 2008-04-29 9:46:37
cyrus_user
princeps писал(а):Я тоже парился с форматом файлов для плохих кейвордов. Как разберешься - напиши.
wildsearch, nwildsearch?

Re: exim: рубить спам через blacklist

Добавлено: 2008-04-29 10:10:08
princeps
cyrus_user писал(а):wildsearch, nwildsearch?
Да, действительно. [rain], читай тут:
http://www.lissyara.su/?id=1209#9.2

Re: exim: рубить спам через blacklist

Добавлено: 2008-04-29 16:54:24
[rain]
Пока решился вопрос внесением в конфиг такого кода:

Код: Выделить всё

 deny    message         = "I think, your domain is an open relay with spam, so goodbye!"
             condition       = ${if match{$sender_helo_name}{.com.br| \
                                .etb.net.co|.gaoland.net|.com.mx|.inetia.pl|.tpnet.pl| \
                                .com.tr|.net.tr}{yes}{no}}
            delay           = 299s
Результат есть, в логах сообщения имеются.

По вчерашним измышлениям, сначала сделал таким образом:

Код: Выделить всё

domainlist _blacklist = cdb;/path/to/dir/_blacklist
далее вписал:

Код: Выделить всё

acl_smtp_connect = acl_check_connect
и потом по ходу конфига включил вот такое дело:

Код: Выделить всё

acl_check_connect:

deny   message = Denied domain
#       domains = +_blacklist
Перезапустил exim, на что он у на меня тут же стал матерно ругаться в логах, что-то на тему не готовности сервера принять соединения (вечерком дома протестирую чуть по чуть, дам сюда пример лога), в итоге я закомментировал внесенные для acl_check_connect изменения, полез гуглить и нагуглил вот этот адрес, но так как весь день в бегах и времени не было свободного, опять таки буду тестить все это дело вечерком.

cyrus_user, princeps, ога, пасибо за намеки, тоже буду посмотреть.

Re: exim: рубить спам через blacklist

Добавлено: 2008-04-30 21:59:29
Alex Keda
я одного не пойму - в конфиге который ты пилишь есть эти примеры...
чем они не устроили?

Re: exim: рубить спам через blacklist

Добавлено: 2008-04-30 22:56:54
[rain]
Кто сказал, что они не устроили? Вполне себе устроили, ковыряюсь в них как свин в грязи, по этим примерам еще одно там правило писать буду, на проверку наличия точки в HELO, потому как спам смотрю - суют дохрена просто левых слов.

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-01 10:10:12
Alex Keda
там есть похожая проверка...
там где самый большой запрос к БД =)))

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-07 9:41:19
[rain]
Ога, пошарился, нашел кое-что и чуть переписал, получилось вот такое правило (воткнул его сразу после запрета с определенных доменов):

Код: Выделить всё

deny    message      = "HELO not contain dots in the domain name, so goodbye again!"
           condition    = ${if !match{$sender_helo_name}{\N\w\.\w\N}{yes}{no}}
           hosts         = !+relay_from_hosts : *
           delay        = 300s
Сегодня буду посмотреть на результат, в логах сообщения идут - уже хорошо =)

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-07 10:00:37
princeps
В статье Лиса про exim+exchange много подобных правил. Там еще на количество точек-тире и т.п.

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-07 10:10:56
[rain]
Дык по его конфигам и смотрю... :wink:

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-07 11:32:15
princeps
У меня получалось, что к проверкам $sender_helo_name надо еще добавлять проверку $sender_host_name, и наоборот, т.к. полно хмырей, у которых правильный helo, зато в сервере отправителя хрен знает что написано.

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-07 11:43:27
[rain]
Ну, у меня сначала идет проверка релея, после него как раз проверка существования точки в helo, а там дальше уже остальные вещи, но, к слову, до проверки по $sender_host_name я еще не добрался, но все к тому идет. =)

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-09 16:54:59
shlash
По правилам, HELO ($sender_helo_name) должен повторять $sender_host_name, поэтому будет вполне достаточно следующего:

Код: Выделить всё

acl_check_helo:

require
 message   = "HELO ($sender_helo_name) not permitted for hostname ($sender_host_name)."
 condition = ${if eq {${lc:$sender_helo_name}}{${lc:$sender_host_name}}{yes}{no}}

accept
При этом считать количество точек совершенно не нужно, хотя, наверное, тоже интересно иногда.
Теперь можно полностью сконцентрироваться на фильтрации $sender_host_name в acl_check_connect.
Обработку своего чёрного списка через wildlsearch можно сделать следующим образом:

Код: Выделить всё

deny
 message = "Spam blocked from local HOSTNAME black list."
 hosts   = wildlsearch;/usr/local/etc/exim/reject_host_names
Содержимое файла reject_host_names:

Код: Выделить всё

*.domain1.com
*.domain2.net
*.orange.fr
*.net.br

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-10 13:42:48
Morty
orange.fr
этих сразу фаерволом лучше блочь - оттуда всегда очень большая активность спама
ЗЫ: непонятно как их еще во все международные блэклисты не внесли

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-10 19:12:44
princeps
shlash писал(а):По правилам, HELO ($sender_helo_name) должен повторять $sender_host_name
Эммм, по правилам может и так, но на деле оказывается, что не всегда повторяет - в 30% случаев они разные. Вот, к примеру, моя статистика за вчерашний день (всего было послано нахер 4000 писем - обычно в пять раз больше, видимо спамеры тоже празднуют :) ):
$sender_host_name без точек - 1097
$sender_helo_name без точек - 319
shlash писал(а):При этом считать количество точек совершенно не нужно, хотя, наверное, тоже интересно иногда.
Опять из тех же 4000 писем:
Больше четырех точек в $sender_host_name - 550
Больше четырех точек в $sender_helo_name - 250
Больше четырех дефисов в $sender_host_name - 146
Больше четырех дефисов в $sender_helo_name - 41

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-11 6:49:11
shlash
Раскройте, пожалуйста, тему, приведите примеры, каким образом вы получили значение "$sender_host_name без точек - 1097"?
В имени хоста, в инете, не может быть менее одной точки.. :roll:

Из моей практики, неэквивалентность $sender_host_name и $sender_helo_name у "правильных" отправителей бывает двух видов, например:
$sender_host_name = relay.domain.ru, $sender_helo_name = mail.domain.ru - разное слово перед первой точкой;
$sender_host_name = relay.domain.ru, $sender_helo_name = domain.ru - HELO содержит только почтовый домен.

У отправителей встречаются весьма странные, по сочетанию букв-цифр-дефисов, имена, сейчас навскидку могу вспомнить только google и avaya

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-11 17:15:25
[rain]
Ковыряясь в спаме, перелопатив ни одну сотню писем, могу привести примеры того, что спамеры пихают в $sender_helo_name:

Код: Выделить всё

ivan-vdlyjmekc5
ce0b38a46f454de
hernxwx
tycoon-ab65c9a2
и прочая лабуда.
После проверки на наличие точки в helo стало отсекаться порядка 3/4 спама.

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-12 8:50:14
princeps
shlash писал(а):Раскройте, пожалуйста, тему, приведите примеры, каким образом вы получили значение "$sender_host_name без точек - 1097"?
В имени хоста, в инете, не может быть менее одной точки.. :roll:
Вот, пожалуйста:

Код: Выделить всё

# Считаем число точек в helo, если меньше одной - deny
        deny    condition       = ${if !match{$sender_helo_name}{\N\w\.\w\N}{yes}{no}}
                !senders        = :
                hosts           = !+relay_from_hosts : *
                message         = "Не бывает HELO без точек"

# Считаем число точек (не меньше одной) в sender_host_name
        deny    condition       = ${if !match{$sender_host_name}{\N\w\.\w\N}{yes}{no}}
                !senders        = :
                hosts           = !+relay_from_hosts : *
                message         = "Не бывает хостов без точек"
По первому правилу за вчерашний день было послано 284 письма из общего количества 6677, по второму - 1187, что однозначно говорит, что $sender_helo_name и $sender_host_name у них были разными.
shlash писал(а):У отправителей встречаются весьма странные, по сочетанию букв-цифр-дефисов, имена, сейчас навскидку могу вспомнить только google и avaya
У моих - тех, которые правильные - не встречаются. На худой конец есть белые списки.

Re: exim: рубить спам через blacklist

Добавлено: 2008-05-12 9:23:22
[rain]
У моих - тех, которые правильные - не встречаются. На худой конец есть белые списки.
+1.

У тебя каким образом реализовано, через файл?