Exim: Spam и формальные признаки сообщения.
Добавлено: 2012-05-08 10:39:31
Всем здравствуйте.
Прошу помощи, потому что возникли вопросы о целесообразности включения определенных проверок и их правильности.
Может, если тут разобраться что к чему, вдруг кому пригодиться.
Технически спам можно фильтровать двумя основными способами: по формальным признакам сообщения (по обратному адресу, способу отправки и оформлению) и по его содержанию (то есть по его смыслу, семантически).
При настройке правил в Exim без дополнительных программ (dspam или spamassassin) в основном делается упор на проверку по формальным признакам.
Настраивал в основном по статье http://www.lissyara.su/articles/freebsd ... +exchange/.
Вот эти определенные проверки:
получим запись из обратной зоны для айпи клиента
1) сравнение ip, полученного из обратной записи с ip отправителя
2) сравнение ip отправителя с ip, полученного из резолва а записи мх записи домена отправителя (не знаю как по русски написать)
3) сравнение ip отправителя с ip, полученного из резолва хело отправителя отправителя
Вопросов о правильности проверки №1, нет, вроде работает, однако, буду очень рад, если кому интересно, прокомментирует эту проверку, может я чего упустил:
проверка (№3) уже была предложена ранее вот тут, но как и проверка (№2) в версии exim 4.77 она работать не будет, тк изменился синтаксис. Об этом написано тут: http://ftp.exim.org/pub/exim/ChangeLogs/ChangeLog-4.77, откуда как я понял match_* следует заменить на inlist, и действительно если проверить, то:
(№3):
(№2)
Но при прохождении письма (делал тест telnetом) проверки №2,3 не работают, я пытался балы навесить. Как вы думаете это связано с новым синтаксисом или неправильно написанными запросами?
Заранее благодарен за разумную посильную помощь.
Прошу помощи, потому что возникли вопросы о целесообразности включения определенных проверок и их правильности.
Может, если тут разобраться что к чему, вдруг кому пригодиться.
Технически спам можно фильтровать двумя основными способами: по формальным признакам сообщения (по обратному адресу, способу отправки и оформлению) и по его содержанию (то есть по его смыслу, семантически).
При настройке правил в Exim без дополнительных программ (dspam или spamassassin) в основном делается упор на проверку по формальным признакам.
Настраивал в основном по статье http://www.lissyara.su/articles/freebsd ... +exchange/.
Вот эти определенные проверки:
получим запись из обратной зоны для айпи клиента
Код: Выделить всё
set acl_c_reverse_zone = ${escape:${lookup dnsdb{ptr=$sender_host_address}}}Код: Выделить всё
condition = ${if match{${lc:$acl_c_reverse_zone}}{${lc:$sender_host_address}}{no}{yes}}Код: Выделить всё
condition = ${if match_ip{$sender_host_address}{${lookup dnsdb{>:a=${lookup dnsdb{>: mxh=$sender_address_domain}}}}}{yes}{no}}Код: Выделить всё
condition = ${if !match_ip{$sender_host_address}{${sq{${lookup dnsdb{a=$sender_helo_name}{$value}fail}}{\N\n\N}{:}}}{yes}{no}}Код: Выделить всё
exim -be
> ${if match {${lc:1.1.1.1}}{${lc:2.2.2.2}}{yes}{no}}
no
> ${if match {${lc:1.1.1.1}}{${lc:1.1.1.1}}{yes}{no}}
yes
(№3):
Код: Выделить всё
exim -be
> ${if !inlist{94.228.245.4}{${sg{${lookup dnsdb{a=mx1.sportmaster.ru}{$value}fail}}{\N\n\N}{:}}}{yes}{no}}
yesКод: Выделить всё
exim -be
> ${if inlist{94.228.245.4}{${lookup dnsdb{>:a=${lookup dnsdb{>: mxh=sportmaster.ru}}}}}{no}{yes}}
yes
Заранее благодарен за разумную посильную помощь.