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

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
[rain]
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-14 21:32:27
Контактная информация:

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

Непрочитанное сообщение [rain] » 2008-04-28 17:11:05

Доброго дня.
Новичок в сфере почты, активно изучаю мануалы, но где-то что-то не догоняю...

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

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

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

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

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

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2460 рублей (8 CPU, 8Gb RAM, 2x500Gb HDD, RAID 3ware 9750):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2008-04-28 17:49:51

Посмотри прилепленную тему "Полезные скрипты\настройки для exim" там есть пост "Блокировка спамеров на этапе connect". Кажется, то, что тебе надо.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

[rain]
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-14 21:32:27
Контактная информация:

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

Непрочитанное сообщение [rain] » 2008-04-28 19:04:10

Ога ога, спасибо, по сути, то что надо.
Прикрутил, но не работает, в логи сообщение не пишется. Подозреваю, что дело в формате файла, но не понимаю.
Читаю тут:

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

Четыре вида именованных списков создаются конфигурационными строками, начинающимися со слов “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

[rain]
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-14 21:32:27
Контактная информация:

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

Непрочитанное сообщение [rain] » 2008-04-28 20:30:13

Формат - случайно не вот такой в файле должен быть?

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

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

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35069
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2008-04-28 22:03:35

да хрен его знает...
тебе какая разница в каком файле?
найди в доках поиск с примерами, его и заюзай.
накрайняк мусю - хоть и изврат...
Убей их всех! Бог потом рассортирует...

[rain]
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-14 21:32:27
Контактная информация:

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

Непрочитанное сообщение [rain] » 2008-04-28 22:11:17

Да тем и занимаюсь, ищу, думаю...

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2008-04-29 9:22:33

Я тоже парился с форматом файлов для плохих кейвордов. Как разберешься - напиши.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

cyrus_user
сержант
Сообщения: 181
Зарегистрирован: 2007-04-24 12:16:36

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

Непрочитанное сообщение cyrus_user » 2008-04-29 9:46:37

princeps писал(а):Я тоже парился с форматом файлов для плохих кейвордов. Как разберешься - напиши.
wildsearch, nwildsearch?
В НЛО не верю, но верю, что где-то до сих пор вымирают динозавры, bsd, птеродактили, мамонты.

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2008-04-29 10:10:08

cyrus_user писал(а):wildsearch, nwildsearch?
Да, действительно. [rain], читай тут:
http://www.lissyara.su/?id=1209#9.2
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

[rain]
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-14 21:32:27
Контактная информация:

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

Непрочитанное сообщение [rain] » 2008-04-29 16:54:24

Пока решился вопрос внесением в конфиг такого кода:

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

 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, ога, пасибо за намеки, тоже буду посмотреть.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35069
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2008-04-30 21:59:29

я одного не пойму - в конфиге который ты пилишь есть эти примеры...
чем они не устроили?
Убей их всех! Бог потом рассортирует...

[rain]
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-14 21:32:27
Контактная информация:

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

Непрочитанное сообщение [rain] » 2008-04-30 22:56:54

Кто сказал, что они не устроили? Вполне себе устроили, ковыряюсь в них как свин в грязи, по этим примерам еще одно там правило писать буду, на проверку наличия точки в HELO, потому как спам смотрю - суют дохрена просто левых слов.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35069
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

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

Непрочитанное сообщение Alex Keda » 2008-05-01 10:10:12

там есть похожая проверка...
там где самый большой запрос к БД =)))
Убей их всех! Бог потом рассортирует...

[rain]
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-14 21:32:27
Контактная информация:

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

Непрочитанное сообщение [rain] » 2008-05-07 9:41:19

Ога, пошарился, нашел кое-что и чуть переписал, получилось вот такое правило (воткнул его сразу после запрета с определенных доменов):

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

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
Сегодня буду посмотреть на результат, в логах сообщения идут - уже хорошо =)

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2008-05-07 10:00:37

В статье Лиса про exim+exchange много подобных правил. Там еще на количество точек-тире и т.п.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

[rain]
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-14 21:32:27
Контактная информация:

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

Непрочитанное сообщение [rain] » 2008-05-07 10:10:56

Дык по его конфигам и смотрю... :wink:

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2008-05-07 11:32:15

У меня получалось, что к проверкам $sender_helo_name надо еще добавлять проверку $sender_host_name, и наоборот, т.к. полно хмырей, у которых правильный helo, зато в сервере отправителя хрен знает что написано.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

[rain]
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-14 21:32:27
Контактная информация:

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

Непрочитанное сообщение [rain] » 2008-05-07 11:43:27

Ну, у меня сначала идет проверка релея, после него как раз проверка существования точки в helo, а там дальше уже остальные вещи, но, к слову, до проверки по $sender_host_name я еще не добрался, но все к тому идет. =)

shlash
мл. сержант
Сообщения: 82
Зарегистрирован: 2007-10-21 13:34:58
Откуда: С.-Петербург
Контактная информация:

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

Непрочитанное сообщение shlash » 2008-05-09 16:54:59

По правилам, 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

Аватара пользователя
Morty
ст. лейтенант
Сообщения: 1370
Зарегистрирован: 2007-07-17 23:25:12

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

Непрочитанное сообщение Morty » 2008-05-10 13:42:48

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

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2008-05-10 19:12:44

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
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

shlash
мл. сержант
Сообщения: 82
Зарегистрирован: 2007-10-21 13:34:58
Откуда: С.-Петербург
Контактная информация:

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

Непрочитанное сообщение shlash » 2008-05-11 6:49:11

Раскройте, пожалуйста, тему, приведите примеры, каким образом вы получили значение "$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

[rain]
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-14 21:32:27
Контактная информация:

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

Непрочитанное сообщение [rain] » 2008-05-11 17:15:25

Ковыряясь в спаме, перелопатив ни одну сотню писем, могу привести примеры того, что спамеры пихают в $sender_helo_name:

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

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

princeps
майор
Сообщения: 2684
Зарегистрирован: 2007-09-25 10:20:59
Откуда: Сочи, Москва
Контактная информация:

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

Непрочитанное сообщение princeps » 2008-05-12 8:50:14

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
У моих - тех, которые правильные - не встречаются. На худой конец есть белые списки.
Deus quos vult perdere dementat prius
http://www.itforum-sochi.ru

[rain]
рядовой
Сообщения: 16
Зарегистрирован: 2008-04-14 21:32:27
Контактная информация:

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

Непрочитанное сообщение [rain] » 2008-05-12 9:23:22

У моих - тех, которые правильные - не встречаются. На худой конец есть белые списки.
+1.

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