Суммирование СПАМ балов всех ACL в Exim

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

Модератор: xM

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Stason
ефрейтор
Сообщения: 51
Зарегистрирован: 2009-04-28 13:15:04

Суммирование СПАМ балов всех ACL в Exim

Непрочитанное сообщение Stason » 2013-12-23 20:39:11

Всем, привет.
Вот уже много лет у многих из нас работают экзимы, настроенных по известнейшей статье http://www.lissyara.su/articles/freebsd ... +exchange/.
Я потом много еще чего докрутил, и наверно еще чего докручу.

И вот чего пока ни как не могу понять:
например у нас есть:

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

200.acl_check_rcpt.conf
300.acl_check_rcpt_spam_rule.conf
400.acl_check_rcpt_end.conf
450.acl_check_predata.conf
500.acl_check_data.conf
Но Exchange начинает принимать почту сразу тут

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

400.acl_check_rcpt_end.conf
там есть правило:

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

accept	domains	= +relay_to_domains
Это как Acl на фаеволле
deny...
deny...
deny...
allow... о, проскочило
deny...
deny...
Я напихал еще немного проверок со спам баллами на спам в

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

450.acl_check_predata.conf и в 500.acl_check_data.conf
но, они не суммируются...
Подскажите, че делать? Как просуммировать балы и уже с этими баллами решить судьбу письма и понять пересылать это на Exchange или не пересылать?

Хостинговая компания 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/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: Суммирование СПАМ балов всех ACL в Exim

Непрочитанное сообщение xM » 2013-12-24 11:56:10

Каких именно баллов? Тех, что вы начисляете в ходе проверок в ACL?
Как вы их начисляете - покажите пару примеров из разных ACL.
IT voodoo blog https://kostikov.co

Stason
ефрейтор
Сообщения: 51
Зарегистрирован: 2009-04-28 13:15:04

Re: Суммирование СПАМ балов всех ACL в Exim

Непрочитанное сообщение Stason » 2013-12-24 14:48:37

Ок

в acl, где есть check_rcpt_ это относиться к acl_smtp_rcpt:
Например в

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

300.acl_check_rcpt_spam_rule.conf

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

# Считем число точек или дефисов в доменном имени. (больше 4-х - 20 балов)
	warn	condition = ${if match{$sender_host_name}{\N((?>\w+[\.|\-]){4,})\N}{yes}{no}}
		hosts = !+relay_from_hosts : *
		set acl_m0 = ${eval:$acl_m0+20}
		set acl_c_spammsg = $acl_c_spammsg $acl_m0 for More dots in name;
#		log_message = Score is $acl_m0. Details: $acl_c_spammsg;
или например в

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

400.acl_check_rcpt_end.conf

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

warn	hosts = !+relay_from_hosts
	dnslists = dnsbl.sorbs.net
	set acl_m0 = ${eval:$acl_m0+60}
	set acl_c_spammsg = $acl_c_spammsg $acl_m0. You in blacklist - $dnslist_domain --> $dnslist_text; $dnslist_value
Далее там же идет вот что - делаю денай для ярых спамеров:

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

##------------------------------------------------------------
## этап блокировки писем, набравших от 160 балов, в ответ клиент получит «550 Message rejected.» - отлуп не разрывая сессию
## В лог записывается почему это произошло, пока клиенту ни чего не уходит, что бы это произошло нужно добавить message
##drop		condition = ${if >{$acl_m0}{160}{yes}{no}}
deny		!senders = :
		!condition = ${if <{$acl_m0}{160}}
#		condition = ${if !eq{$acl_m2}{1} {yes}{no}}
		log_message = Connection closed. Spamscore threshold (160 points) reached. Spamscore is $acl_m0! Details: $acl_c_spammsg;
##		warning: IP [$sender_host_address] added to Blacklist. Details: $acl_c_spammsg;
##		condition = ${lookup mysql{insert into `auto_blacklist` (`ip`, `added_timestamp`)\
##				values ('${sender_host_address}',UNIX_TIMESTAMP())}}
Далее, как я уже писал Exchange начинает принимать почту сразу тут:

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

400.acl_check_rcpt_end.conf
я пробовал их ниже ставить - в другие листы, но там же нет возможности проверки доменов?

А потом еще есть листы:

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

450.acl_check_predata.conf
470.acl_check_mime.conf
500.acl_check_data.conf
ну из названия понятно что там происходит:
в

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

470.acl_check_mime.conf
есть

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

## if message small and contains url links $message_body_end
	warn	hosts = !+relay_from_hosts
		log_message = "added 5 balls - found url links in small ($message_size) message"
		condition = ${if !eq{$acl_m2}{1} {yes}{no}}
		condition = ${if <{$message_size}{30k} {yes}{no}}
		condition = ${if match {${lc:$message_body}}{\Nhttp://\N} {yes}{no}}
		set acl_m0 = ${eval:$acl_m0+5}
в

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

500.acl_check_data.conf
есть

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

# Bad X-Mailer (idpkh_47, etc)
warn	hosts = !+relay_from_hosts:*
	condition = ${if match{$h_X-Mailer:}{\N(^\w+(_|\.|\s|-){1}[0-9]{2}$)\N}{1}}
	set  acl_m0 = ${eval:$acl_m0+30}
	log_message = Score is $acl_m0. Bad X-Mailer $h_X-Mailer
Хочется чтобы спамер был спамером, и все балы, которые его были его
Там есть еще разные проверки, но они с денаями, по хорошему если сделать начисление балов, например в том же:

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

 500.acl_check_data.conf есть
# 21.12.13 блок спама,  при условии замены from после data
deny	log_message = Invalid domain in header from
	hosts           = !+relay_from_hosts:*
	!authenticated  = *
#	condition       = ${if match_domain{${domain:$h_from:}}{+virtual_domains}}
	condition = ${if match_domain{${domain:${address:$h_from:}}}{+virtual_domains}{yes}{no}}

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: Суммирование СПАМ балов всех ACL в Exim

Непрочитанное сообщение xM » 2013-12-24 15:17:11

Кажется, я понял. У вас, видимо, счётчик не сохраняется.
Попробуйте использовать вместо переменной счётчика acl_m - acl_c.
IT voodoo blog https://kostikov.co

Stason
ефрейтор
Сообщения: 51
Зарегистрирован: 2009-04-28 13:15:04

Re: Суммирование СПАМ балов всех ACL в Exim

Непрочитанное сообщение Stason » 2013-12-24 15:23:15

ок, я ща попробую, но я правильно понял логику ацл?:

Это как Acl на фаеволле
deny...
deny...
deny...
allow... о, проскочило
deny...
deny...

Аватара пользователя
xM
ст. лейтенант
Сообщения: 1316
Зарегистрирован: 2009-01-15 23:57:41
Откуда: Königsberg
Контактная информация:

Re: Суммирование СПАМ балов всех ACL в Exim

Непрочитанное сообщение xM » 2013-12-24 17:12:35

Нет, неправильно.
Accept (без специальных модификаторов) действует для текущего ACL.
IT voodoo blog https://kostikov.co

ChihPih
ст. прапорщик
Сообщения: 568
Зарегистрирован: 2009-09-04 12:23:30
Откуда: Где-то в России...
Контактная информация:

Re: Суммирование СПАМ балов всех ACL в Exim

Непрочитанное сообщение ChihPih » 2013-12-25 16:40:25

Тут для примера гляньте - ссылка.
www.info-x.org - информационный ресурс о ОС FreeBSD.

Stason
ефрейтор
Сообщения: 51
Зарегистрирован: 2009-04-28 13:15:04

Re: Суммирование СПАМ балов всех ACL в Exim

Непрочитанное сообщение Stason » 2013-12-25 19:56:47

Да, действительно все так, все понял, прочитал про acl_m и acl_c, спасибо.
Тестирование провел, успешно. Внедрение отложил на после праздников.