Ок
в acl, где есть check_rcpt_ это относиться к acl_smtp_rcpt:
Например в
Код: Выделить всё
# Считем число точек или дефисов в доменном имени. (больше 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;
или например в
Код: Выделить всё
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 начинает принимать почту сразу тут:
я пробовал их ниже ставить - в другие листы, но там же нет возможности проверки доменов?
А потом еще есть листы:
Код: Выделить всё
450.acl_check_predata.conf
470.acl_check_mime.conf
500.acl_check_data.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}
в
есть
Код: Выделить всё
# 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}}