Код: Выделить всё
$Cambridge: exim/exim-src/src/configure.default,v 1.13 2007/06/26 11:21:36 ph10 Exp $
### version 0.2 /10.12.08/
MY_IP = 111.222.333.444
MY_MSG = If You want near contacts us call me now by phone +7 xxx xxxx or ICQ xx-xxx-xxx \n
MY_MSG == MY_MSG or/and look more details on this page http://www.xxx.ru/abuse.html \n
MY_MSG == MY_MSG or send me to my personal address abuse@$primary_hostname
BAD_HELONAME = adsl|dialup|pool|peer|dhcp|pppoe|dynamic|.home.|ppp-|dsl-|Dynamic|.user.|.dsl.|.dyn.|.ttnet.net.tr
BAD_HELONAME == BAD_HELONAME|.orange.fr|.net.il|.wanadoo.
BAD_XXX = TNAME|FIRSTNAME|LASTNAME
BAD_XXX == BAD_XXX|devochk|katty|teddy
BAD_XXX == BAD_XXX|online.marine.su
MYSQL_ADDBLACK = INSERT IGNORE INTO blackhost(iphost,rule,comment,dates,hostname) VALUES ('$sender_host_address','$acl_c11','$sender_helo_name',CURRENT_TIMESTAMP,'$sender_host_name')
MYSQL_ADDWHITE = REPLACE INTO blackhost(iphost,rule,comment,dates,hostname) VALUES ('$sender_host_address','0','$sender_helo_name',CURRENT_TIMESTAMP,'$sender_host_name')
MYSQL_UPDTWHITE = UPDATE blackhost SET rule=0 WHERE iphost='$acl_c14'
MYSQL_ADDEMAIL = INSERT IGNORE INTO blackemail(email,rule,iphost) VALUES ('$sender_address','$acl_c11','$sender_host_address')
MYSQL_WHITE_EMAIL = REPLACE INTO blackemail(email,rule,iphost) VALUES ('${quote_mysql:$local_part@$domain}','0','$acl_c14')
MYSQL_ADDSPAM = INSERT IGNORE INTO spamers(mdbody,iphost,sender,spcount) VALUES ('$acl_c15','$sender_host_address','$sender_address','1')
MYSQL_HISTORY = INSERT INTO mailhistory(way,sender,recipient,sizes,dates) VALUES ('$acl_c11','${quote_mysql:$sender_address}','${quote_mysql:$recipients}','$message_size',CURRENT_TIMESTAMP)
##### это позволяет засечь спамера и не доводить дело до спамассиссина для реальных получателей
SPAM_LIKE = postmaster : webmaster : info : admin : support: director : direktor : secretar : sekretar
SPAM_LIKE == SPAM_LIKE : web : mail
MY_INF1 = $sender_host_address [$sender_host_name] /helo=$sender_helo_name / ($sender_address ==> $local_part@$domain)
MY_INF2 = $sender_host_address [$sender_host_name] /helo=$sender_helo_name / ($sender_address ==> $recipients) Size=$message_size
MAX_SPAM_SIZE = 40K
MIN_SPAM_SIZE = 5K
MAX_USERS = 4
###################################
acl_smtp_connect = acl_check_connect
acl_smtp_rcpt = acl_check_rcpt
acl_smtp_predata = acl_check_predata
acl_smtp_data = acl_check_data
####################################
######################################################################
# ACL CONFIGURATION #
######################################################################
### acl_c10 - verify sender (older client, not spammer)
### acl_c11 - reject code (temp value)
### acl_c12 - MYSQL request status (temp value)
### acl_c13 - MYSQL request status (temp value)
### acl_c14 - black or white IP host (data section)
### acl_c15 = MD5 summ of message_body (check_spam in data section)
### acl_c17 = $local_part
### acl_c18 = $domain
### acl_c19 = $sender_address_domain
####
begin acl
##########
acl_check_connect:
########## принимаем все локальные (в том числе и fetchmail) и от наших релеев
accept hosts = 127.0.0.1 : +relay_from_hosts
logwrite = INPUT_CONNECT_LOCAL: MY_INF1
########## принимаем со спамерских хостов потому, что там встечаются и наши клиенты
accept hosts = !127.0.0.1 : !+relay_from_hosts
condition = ${lookup mysql{SELECT 1 FROM blackhost WHERE iphost='${quote_mysql:$sender_host_address}' AND rule=0}}
logwrite = INPUT_CONNECT_TRUST: MY_INF1
##########01 блокируем по черному списку
deny message = "Spam Guard#01: IP $sender_host_address in our blak_host_list...\n MY_MSG \n "
condition = ${lookup mysql{SELECT rule FROM blackhost WHERE iphost='${quote_mysql:$sender_host_address}'}}
logwrite = MyBlock#01: black IP MY_INF1
delay = 30s
##########02 не нравится имя хоста
deny message = "Spam Guard#02: Drop dynamic address..."
condition = ${if match{$sender_host_name} {BAD_HELONAME}{yes}{no}}
set acl_c11 = 2
set acl_c12 = ${lookup mysql{MYSQL_ADDBLACK}}
logwrite = MyBlock#02: black host MY_INF1
delay = 30s
##########33 в имени нет точки (но вряд ли такое тут возможно)
deny condition = ${if !eq{$sender_host_name}{}{yes}{no}}
condition = ${if !match{$sender_host_name}{\N\w\.\w\N}{yes}{no}}
message = "Spam Guard#33: Bad hostname $sender_host_name"
set acl_c11 = 33
set acl_c12 = ${lookup mysql{MYSQL_ADDBLACK}}
logwrite = MyBlock#33: MY_INF1
delay = 30s
###########32 deny message = "Spam Guard#32: Drop IP digits in name... "
########### подумать еще раз - не обрежется ли тут нужное что-нить
################### condition = ${if match{$sender_host_name} {\N[0-9]\.[0-9]\-[0-9]\-[0-9]\N}{yes}{no}}
accept logwrite = INPUT_CONNECT_NEW: MY_INF1
acl_check_rcpt:
accept hosts = :
##########06 проверяем наличие HELO/EHLO
deny message = "Spam Guard#06: HELO\EHLO need for me"
condition = ${if eq{$sender_helo_name}{}{yes}{no}}
set acl_c11 = 6
set acl_c12 = ${lookup mysql{MYSQL_ADDBLACK}}
logwrite = MyBlock#06: no HELO / MY_INF1
delay = 30s
##########07 в HELO только IP
deny message = "Spam Guard#07: We dont allow IP-only in hello"
condition = ${if isip{$sender_helo_name}{yes}{no}}
hosts = !127.0.0.1 : !+relay_from_hosts
set acl_c11 = 7
set acl_c12 = ${lookup mysql{MYSQL_ADDBLACK}}
logwrite = MyBlock#07:IP-only MY_INF1
delay = 30s
##########08 в HELO нет точки
deny condition = ${if !match{$sender_helo_name}{\N\w\.\w\N}{yes}{no}}
hosts = !127.0.0.1 : !+relay_from_hosts
message = "Spam Guard#08: Bad helo name $sender_helo_name"
set acl_c11 = 8
set acl_c12 = ${lookup mysql{MYSQL_ADDBLACK}}
logwrite = MyBlock#08: not dot MY_INF1
delay = 30s
##########09 в helo [ квадратные скобки
deny condition = ${if match{$sender_helo_name}{\N\[\N}{yes}{no}}
message = "Spam Guard#09: Your host is hard spam host because bad helo_name"
hosts = !127.0.0.1 : !+relay_from_hosts : *
set acl_c11 = 9
set acl_c12 = ${lookup mysql{MYSQL_ADDBLACK}}
logwrite = MyBlock#09: >[]< MY_INF1
delay = 30s
##########10 это блокируется ранее в правиле 7
########## можно удалить
# deny message = "Spam Guard#10: Don't allow my IP, spammerrs"
# condition = ${if match{$sender_helo_name}{MY_IP}{yes}{no}}
# set acl_c11 = 10
# set acl_c12 = ${lookup mysql{MYSQL_ADDBLACK}}
# logwrite = MyBlock#10: Don't allow my IP, spammerrs
# delay = 20s
##########11 Рубаем тех, кто в HELO пихает только цифры
deny condition = ${if match{$sender_helo_name}{\N^\d+$\N}{yes}{no}}
hosts = !127.0.0.1 : !+relay_from_hosts : *
message = "Spam Guard#11: can not be only number in HELO!"
set acl_c11 = 11
set acl_c12 = ${lookup mysql{MYSQL_ADDBLACK}}
logwrite = MyBlock#11: only number in helo! MY_INF1
delay = 30s
##########12 рубаем по маске плохие хело-нэйм
deny message = "Spam Guard#12: Drop dynamic address..."
hosts = !127.0.0.1 : !+relay_from_hosts : *
condition = ${if match{$sender_helo_name} {BAD_HELONAME}{yes}{no}}
set acl_c11 = 12
set acl_c12 = ${lookup mysql{MYSQL_ADDBLACK}}
logwrite = MyBlock#12: drop dynamic MY_INF1
delay = 30s
##########13 Рубаем тех, кто в HELO пихает localhost или наш домен
deny hosts = !127.0.0.1 : !localhost : !+relay_from_hosts: *
condition = ${if match{$sender_helo_name}{localhost|$primary_hostname|$domain}{yes}{no}}
message = "Spam Guard#13: Your host is not localhost!"
set acl_c11 = 13
set acl_c12 = ${lookup mysql{MYSQL_ADDBLACK}}
logwrite = MyBlock#13: Drop localhost MY_INF1
delay = 30s
# хело проверили - поверяем адреса
#######################################################################################################
########### пустого отправителя проверять не будем, но убъем позднее
accept senders = :
logwrite = INPUT_CHECK:пропущена пустышка MY_INF1
########### запомним для секции data
warn set acl_c17 = $local_part
set acl_c18 = $domain
set acl_c19 = $sender_address_domain
##########04 если у отправителя плохой первый символ "-", "_" или "|" и т.п.
deny condition = ${if match{$sender_address}{\N^[-].*|^[_].*|^[/].*|^[|].*|^[.].*|^[/].*|^.*[%!/|]$\N}{yes}{no}}
logwrite = MyBlock#04: Bad sender MY_INF1
message = Spam Guard#04: Bad First Symbol '_-|' blocked!!
## hosts = !127.0.0.1 : !+relay_from_hosts
set acl_c11 = 4
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
delay = 30s
##########05 если у получателя плохой первый символ "-", "_" или "|" и т.п.
deny message = Restricted characters in address
### condition = ${if match{$local_part}{\N^[-].*|^[_].*|^[/].*|^[|].*|^[.].*|^[/].*|^.*[@%!/|]$\N}{yes}{no}}
local_parts = ^[./|] : ^.*[@%!/|] : ^.*/\\.\\./
set acl_c11 = 5
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
logwrite = MyBlock#05: Bad first symbol MY_INF1
message = "Spam Guard#05: Bad First Symbol in local_part '_-|' blocked!!!"
delay = 30s
##########14 блокируем при попытке прислать на "закрытый" адрес + в блэклист sender email
deny message = "Spam Guard#14: hard spams: $local_part@$domain in black list"
hosts = 127.0.0.1 : !+relay_from_hosts : *
condition = ${lookup mysql{SELECT rule FROM blackemail WHERE email='${quote_mysql:$local_part@$domain}'}}
logwrite = MyBlock#14: Close address MY_INF1
set acl_c11 = 14
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
delay = 30s
##########16 блокируем email отправителя, если он в списке чёрных доменов
deny message = "Spam Guard#16: Your domain in black list"
sender_domains = +bad_domain
set acl_c11 = 16
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
logwrite = MyBlock#16: 2-black email MY_INF1
delay = 30s
##########17 блокируем за попытку писать на служебные адреса, которые не используем в работе
deny message = "Spam Guard#17: Your domain add to black list : not use my reserved name"
domains = +local_domains
hosts = 127.0.0.1 : !+relay_from_hosts : *
local_parts = SPAM_LIKE
set acl_c11 = 17
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
logwrite = MyBlock#17: spam like MY_INF1
delay = 30s
########## письмо локальному реальному юзеру доставить сможем, если примем ?
##########18 если получатель не найден - отправителя в черный ящик
deny message = "Spam Guard#18: Unknow recipient.... "
domains = +local_domains : +relay_to_domains
!verify = recipient
logwrite = MyBlock#18: unknow users MY_INF1
# чтоб своих не внести в черный список
hosts = 127.0.0.1 : !+relay_from_hosts : *
### на всякий случай, если "черный" емайл идет с другого (нового) хоста
set acl_c11 = 18
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
delay = 30s
##########20 Проверка SPF : этот может слать отсюда?
deny message = "Spam Guard#20: [SPF] $sender_host_address is not allowed to send mail from $sender_address_domain"
hosts = !+relay_from_hosts : *
spf = fail
set acl_c11 = 20
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
logwrite = MyBlock#20: SPF Fail : MY_INF1 /$spf_received/
## log_message = SPF check failed
## logwrite = "SPF-1 status: spf_result = $spf_result; spf_smtp_comment = $spf_smtp_comment"
delay = 30s
##########31 пришлось добавить эту проверку т.к.SPF не всегда отлавливает подлог
deny message = Spam Guard#31: $sender_host_address is not allowed to send mail from $sender_address_domain
hosts = 127.0.0.1 : !+relay_from_hosts : *
sender_domains = +local_domains
set acl_c11 = 31
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
logwrite = MyBlock#31: from me to me : MY_INF1
delay = 30s
########## отравитель состоял в близких связях с нами ? (на всякий случай, чтоб не забанить важного клиента)
warn domains = +local_domains : +relay_to_domains
set acl_c10 = ${lookup mysql{SELECT 1 FROM blackemail WHERE email='${quote_mysql:$sender_address}' AND rule=0}}
### запомним адрес или снимем спам-блокировку
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDWHITE}}}{0}}
logwrite = INPUT_CONNECT_TRUST_USER:[$acl_c12] MY_INF1
########## отправителя проверить можно ?
##########19 отправитель не найден -> в черный ящик его
deny !condition = $acl_c10
domains = +local_domains : +relay_to_domains
hosts = 127.0.0.1 : !+relay_from_hosts : *
!verify = sender
message = "Spam Guard#19: We not allow messages from untrusted users.... "
set acl_c11 = 19
### на всякий случай, если "черный" емайл идет с другого (нового) хоста
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
logwrite = MyBlock#19: black email MY_INF1
delay = 30s
##########37 слишком много получателей для одного письма
deny message = Spam Guard#37: so many recipients .... not allow...
hosts = 127.0.0.1 : !+relay_from_hosts : *
condition = ${if >{$rcpt_count}{MAX_USERS}{yes}{no}}
set acl_c11 = 37
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
logwrite = MyBlock#37: many recipients : MY_INF1
delay = 30s
###########34 нули в заголовке
###########35 check RBL если хоцца
###########36 проверить связку емайл - релей (думаем тут)
####### письмо идет от нас наружу
warn hosts = +relay_from_hosts
domains = !+local_domains
#### клиент попал уже в черный список ?
set acl_c14 = ${lookup mysql{SELECT iphost FROM blackemail WHERE email='${quote_mysql:$local_part@$domain}'}}
logwrite = базе input : $acl_c14
#### такого адресата еще не было - подставим IP нашего отправителя, если клиент в списке - оставим его адрес
set acl_c14 = ${if eq{$acl_c14}{}{$sender_host_address}{$acl_c14}}
#### клиент не найден или мусор в базе от фетчмайла
set acl_c14 = ${if eq{$acl_c14}{0|127.0.0.1|-1}{$sender_host_address}{$acl_c14}}
logwrite = записи output : $acl_c14
set acl_c13 = ${lookup mysql{MYSQL_WHITE_EMAIL}}
logwrite = OUTPUT_MAIL [$acl_c13]: MY_INF1
set acl_c12 = ${lookup mysql{MYSQL_UPDTWHITE}}
logwrite = OUTPUT_MAIL-2 [$acl_c12]: Change to white IP [$acl_c14 for $local_part@$domain
############# проверку получателя делали ранее - поэтому просто принимаем все, что для нашего домена и от/для релеев
accept domains = +local_domains : +relay_to_domains
accept hosts = +relay_from_hosts
control = submission
accept authenticated = *
control = submission
##########03 за попытку отрелеить нас ==> в самый черный список
deny
hosts = !+relay_from_hosts : *
set acl_c11 = 3
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
# set acl_c12 = ${lookup mysql{MYSQL_ADDBLACK}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
logwrite = MyBlock#03: Block open relay / MY_INF1
message = Spam Guard#03: Access deny - this not open relay! here vam ne tut!!!
delay = 30s
accept logwrite = MyBlock#xx: Warning!!! Loook why?
######################################################################
acl_check_predata:
######### Прибиваем с пустым отправителями (<>) используется для проверки существования E-Mail'а
######### тут срежутся и (псевдо) рикошеты (от спамеров) - если нужны, то нужно принять выше этого правила
deny message = "Unknown empty user"
senders = : postmaster@* : Mailer-Daemon@*
logwrite = INPUT_CHECK:убили пустышку $sender_host_address [$sender_host_name] ==> $local_part@$domain
accept
acl_check_data:
######### этот лог можно включить чтобы отслеживать что пришло сюда и не дошло до акцепта
### warn logwrite = INPUT_DATA: MY_INF2 /$acl_c17 @ $acl_c18/
###
warn set acl_c15 = ${md5:$message_body}
logwrite = INPUT_DATA: acl_c15 = $acl_c15
##########39 пустой отправитель и mailer-daemon (или общий случай -> return-path не соответветсвует адресу from)
##########29 порверить количество кол-во в TO CC BCC
##########30 проверить реальный IP адрес если письмо идет через релей, а релей блокировать низзя
##########21 если у отправителя есть плохие символы в имени его
deny !condition = $acl_c10
condition = ${if match{$h_FROM:}{\N[|]|[!]|[%]|[}]|[{]|[?]|[=]\N}{yes}{no}}
set acl_c11 = 21
set acl_c12 = ${if !eq{$sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
set acl_c16 = ${lookup mysql{MYSQL_ADDSPAM}}
logwrite = MyBlock#21: Bad Symbol in FROM: [$h_FROM] blocked!! MY_INF2
message = "Spam Guard#21: Bad Symbol in email $h_FROM: blocked!!!"
delay = 30s
##########22 если у отправителя или получателя есть нехорошие знакомые слова
deny !condition = $acl_c10
condition = ${if match{$h_TO:}{BAD_XXX}{yes}{no}}
set acl_c11 = 22
set acl_c12 = ${if !eq{$sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
set acl_c16 = ${lookup mysql{MYSQL_ADDSPAM}}
logwrite = MyBlock#22: Bad sex in TO: > $h_TO < blocked!! MY_INF2
message = "Spam Guard#22: Bad sex in email $h_TO: blocked!!!"
delay = 30s
##########23 если у отправителя есть NUL-символы => кривые руки у скрипача
deny !condition = $acl_c10
message = Spam Guard#23: This message contains NUL characters
condition = ${if > {$body_zerocount}{0}{1}{0}}
set acl_c11 = 23
set acl_c12 = ${if !eq{$sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
set acl_c16 = ${lookup mysql{MYSQL_ADDSPAM}}
logwrite = MyBlock#23: NUL characters MY_INF2
delay = 30s
##########38 слишком много получателей для одного письма
deny message = Spam Guard#38: so many recipients .... not allow...
hosts = 127.0.0.1 : !+relay_from_hosts : *
condition = ${if >{$recipients_count}{MAX_USERS}{yes}{no}}
set acl_c11 = 38
set acl_c12 = ${if !eq{$sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
set acl_c16 = ${lookup mysql{MYSQL_ADDSPAM}}
logwrite = MyBlock#38: many recipients : MY_INF1
delay = 30s
##########24 за попытку прислать то, что не просили
deny message = Spam Guard#24: This message contains $found_extension file(s)
## !condition = $acl_c10 ### от наших можно если очень хоцца ####
demime = exe:com:bat:vbs:pif:scr:js:lnk:wav:cpl
set acl_c11 = 24
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
set acl_c16 = ${lookup mysql{MYSQL_ADDSPAM}}
logwrite = MyBlock#24: Bad includes: $found_extension files / MY_INF2
delay = 30s
###########25 Проверяем письмо на вирусы, если есть вложения из числа дозволенных - без вложений не проверяем вовсе
############ deny <- если очень хочется
warn set acl_m1 = 0
demime = *
### исходящую почту не проверяем, за исключением 127.0.0.1 т.к. тут идут письма от fetchmail
hosts = 127.0.0.1 : !+relay_from_hosts : *
malware = *
add_header = "Subject: [VIRUS FOUND] $h_subject"
logwrite = MyBlock#25-01: VIRUS!!!! MY_INF2 -==- VIRUS ==> $malware_name"
set acl_c11 = 25
### для разгреба в систем-фильтре
set acl_m1 = 1
######### если отправитель не из нашего списка, впервые зашел и зразу гадит - в черный список его
deny !condition = $acl_c10
condition = $malware_name
set acl_c11 = 25
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
set acl_c16 = ${lookup mysql{MYSQL_ADDSPAM}}
message = Spam Guard#25: This message contains $found_extension files
logwrite = MyBlock#25: Stop Virus $found_extension / MY_INF2
###########40 такой спам уже получали
########### теперь идет с другого адреса и/или хоста
###### deny
warn logwrite = Check repeate spam input
condition = ${lookup mysql{SELECT 1 FROM spamers WHERE mdbody='$acl_c15'}}
logwrite = Check repeate spam input ==> Spam Found !!!
set acl_c11 = 40
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
###########26 Проверяем письмо на спам, не от наших только, размером меньше 30К
### исходящую почту не проверяем, за исключением 127.0.0.1 т.к. тут идут письма от fetchmail
warn set acl_m0 = 0
hosts = 127.0.0.1 : !+relay_from_hosts : *
condition = ${if <{$message_size}{MAX_SPAM_SIZE}}
!condition = $acl_c10
logwrite = ControlPoin#26-01 Cheks spam here: sender= $sender_address acl_c10 = >$acl_c10<
spam = spammerrs
add_header = X-Spam_score_L: $spam_score\n\
X-Spam_score_int_L: $spam_score_int\n\
X-Spam_bar_L: $spam_bar\n\
X-Spam_report_L: $spam_report
## для разгреба в систем-фильтре
set acl_m0 = $spam_score_int
######### если отправитель не из нашего списка, впервые зашел и зразу гадит -> в черный список его
######### попавших по ошибке правим ручками или скриптом при отправке письма от наших
######### для тех, кто в белом списке эта проверка не опасна
###deny
warn
!condition = $acl_c10
condition = ${if >{$acl_m0}{50}{yes}{no}}
logwrite = ControlPoin#26-02 Cheks spam First Dilivery : sender= $sender_address acl_c10 = >$acl_c10<
set acl_c11 = 26
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
set acl_c16 = ${lookup mysql{MYSQL_ADDSPAM}}
message = Spam Guard#26: This spam message
logwrite = MyBlock#26: This spam message / MY_INF2
##########27 если отправитель не из нашего списка и письмо маленькое и есть (порно)картинки - в спам его
##################
##deny
warn
hosts = 127.0.0.1 : !+relay_from_hosts : *
!condition = $acl_c10
condition = ${if <{$message_size}{MAX_SPAM_SIZE}}
condition = ${if <{$acl_m0}{50}{yes}{no}}
demime = gif:jpg:jpeg:png
### для разгреба в систем-фильтре
set acl_m0 = 77
set acl_c11 = 27
set acl_c12 = ${if !eq{sender_host_address}{127.0.0.1}{${lookup mysql{MYSQL_ADDBLACK}}}{0}}
set acl_c13 = ${lookup mysql{MYSQL_ADDEMAIL}}
set acl_c16 = ${lookup mysql{MYSQL_ADDSPAM}}
message = Spam Guard#27: This spam message with bad pictures
logwrite = MyBlock#27: This picture spam / MY_INF2
##############################################################################
###########28 если письмо маленькое и содержит ссылку img в тексте
########### или содержит ссылку на внешний ресурс
#############################################################################
###### пишем историю для начальства и статистики
###### письмо из мира
warn hosts = 127.0.0.1 : !+relay_from_hosts : *
set acl_c11 = 1
### посылатель не из нашего списка или впервые пришел и как спам не опознан
# logwrite = INPUT_LAST: acl_c15 = $acl_c15 acl_c10 = >$acl_c10<
!condition = $acl_c10
set acl_c16 = ${lookup mysql{MYSQL_ADDSPAM}}
##### письмо в наружу
warn hosts = !127.0.0.1 : +relay_from_hosts
set acl_c11 = 2
##### письмо в локали
warn condition =${if eq{$acl_c19}{$acl_c18}{yes}{no}}
set acl_c11 = 3
warn set acl_c12 = ${lookup mysql{MYSQL_HISTORY}}
logwrite = INPUT_ACCEPT: MY_INF2
accept
######################################################################
# ROUTERS CONFIGURATION #
# Specifies how addresses are handled #
######################################################################