Борьба со спамом: список “нежелательных” адресов на основе Regular Exspression (Perl-Compatible)

imagesИногда необходимо на почтовом сервере “зарезать” список адресов с которых разрешено принимать почту.

Процедура достаточно проста: формируется список шаблонов адресов с которых не разрешается принимать почту.

Данное действие скорее полезно чем вредно. Достаточно большой процент спама приходит с абсолютно одних и тех же доменов.

Если так случиться, что пользователи будут жаловаться что почта не доходит – можно включить адреса или домены в “белый список” адресов. Так как “белый” список имеет приоритет через “черным” – то почта начнет ходить.

Для “массового” блокирования в помощь нам приходит способ фильтрации с использованием Regular Exspression (Perl-Compatible).

Данная технология успешно применяется в Sendmail при проверке. Для Sendmail (postfix или подобных систем) файл блокировки доменов следующий:

/\.dsl.*\..*\..*/i 553 AUTO_DSL spam
/[ax]dsl.*\..*\..*/i 553 AUTO_XDSL spam
/client.*\..*\..*/i 553 AUTO_CLIENT spam
/cable.*\..*\..*/i 553 AUTO_CABLE spam
/pool.*\..*\..*/i 553 AUTO_POOL spam
/dial.*\..*\..*/i 553 AUTO_DIAL spam
/ppp.*\..*\..*/i 553 AUTO_PPP spam
/dslam.*\..*\..*/i 553 AUTO_DSLAM spam
/node.*\..*\..*/i 553 AUTO_NODE spam
/dhcp.*\..*\..*/i 553 AUTO_DHCP spam
/ip-*\..*\..*/i 553 AUTO_DHCP spam
/dynamic.*\..*\..*/i 553 AUTO_DYNAMIC spam

Объяснять куда вставлять данный список для sendmail я не буду, так как раз вы пользуютесь подобной системой, то скорее всего вы достаточно опытный специалист.

Какие именно домены вы можете еще заблокировать?

На форуме Sysadmins.ru недавно встречал следующее определение:
*.res.rr.com
*comcast.*
*.wanadoo.fr
*.client.mchsi.com
*.client.insightbb.com
*net.net.tr
*.nat.prov.ru
*.ca.charter.com
*red.bezeqint.net
*.ukrtel.net
*.server.by
*.verizon.net
*.vodafone.hu
*cable.com
*.ttnet.net.tr
*.ppp.tiscali.*
*.chello.*
*.club-internet.fr
*.fullrate.dk
*.comcastbusiness.net
*.telecomitalia.it
*.svserv.net
*.shawcable.net
*.numericable.fr
*.brasiltelecom.net.br
*.midco.net
*.telecable.es
*.home.maxnet.ro
*dinamic*
*dynamic*
*pppoe*
*.pool.*
*.adsl.*
*.dsl.*
*.staticIP.*
*dialup*
*dialin*
*.dhcp.*
*.cable.*
*broadband*
*ipconnect.*
*.t-online.*
ppp*
*.speedy.com.ar

Могу добавить что, как правило, имеет смысл блокировать домены первого уровня cc, cn, fr, li, lv, it, by итд итп (включая даже net). Как показывает практика, для корпоративной почты есть смысл предварительно “зарезать” некоторые домены первого уровня, а впоследствии разрешить некоторые домены второго уровня с которыми ведется переписка с вашего офиса. Конкретно порекомендовать я к сожалению не могу, и вряд ли кто то сможет составить данный список (он уникален для вашей компании).

К слову сказать, данные списки следует формировать на основе регулярных выражений и технология называется  Perl Compatible Regular Expressions (PCRE)

Списки формируются и добавляются в BlackList или в WiteList.

Рассмотрим пример:

Жалуются, что не доходит почта с адресов psbank.ru Тода формируем в Wite-List запись:       .*@([^.]+\.)*psbank.ru$

Запись означает что будут приниматься все адреса *****@psbank.ru  , причем оканчиваться адрес отправителя должен на psbank.ru (символ $ в конце строки). Для адресов  *****@pop3.amadeus.net  аналогичная запись будет выглядеть как   .*@([^.]+\.)*pop3.amadeus.net$

Жалуются, что почта не ходит с yahoo.cn. Вы добавляете в список домен yahoo.cn…. стоп! Это с вашей стороны будет ошибка! 🙂 С домена yahoo.cn валится спам огромными потоками. Правильно здесь будет спросить адрес отправителя и в ручную добавить его в WiteList.

Наверное вы заметили, что способ записи указанный мною несколько отличается от того что представили на Sysadmins.ru. То что выложено будет работать на основе “шаблонов”, а не “регулярных выражений” (при условии что разбирая “шаблон” ваша система корректно определит назначение символов “*” и “.” )

Что еще можно разрешить? Можно разрешить IP адреса крупных организаций предоставляющих почту. Как правило данные организации используют определенный диапазон IP адресов. Эти организации мы все очень хорошо знаем: Mail.ru Google.com Yandex.ru…. итд итп.

Выяснить какие адреса с данных компаний нам можно разрешить, поможет сервисы Whois и утилита nslookup . Сервис Whois даст нам диапазоны адресов. А с помощью nslookup мы можем определить их MX записи.

Ликбез:
Если кто не в курсе: если жалуются что не ходит почта с mail.ru вы можете по ошибке сделать
ping mail.ru
удивив IP адрес вы используете его при добавлении в WiteList.
ЭТО ОШИБОЧНО!!!
Вы должны сделать:
nslookup
set type=mx
mail.ru
вы увидите адреса их mx серверов. Именно эти адреса и нужно добавлять в списки.
Данное правило справедливо для любого почтового сервера!!!!

Ну и напоследок: что я блокирую:

.*@([^.]+\.)*dk$
.*@([^.]+\.)*la$
.*@([^.]+\.)*be$
.*@([^.]+\.)*nl$
.*@([^.]+\.)*pl$
.*@([^.]+\.)*si$
.*@([^.]+\.)*gp$
.*@([^.]+\.)*at$
.*@([^.]+\.)*mx$
.*@([^.]+\.)*by$
.*@([^.]+\.)*ebu$
.*@([^.]+\.)*il$
.*@([^.]+\.)*lt$
.*@([^.]+\.)*net$
.*@([^.]+\.)*ca$
.*@([^.]+\.)*hu$
.*@([^.]+\.)*cc$
.*@([^.]+\.)*jp$
.*@([^.]+\.)*sk$
.*@([^.]+\.)*no$
.*@([^.]+\.)*cn$

Что я разрешаю на основе IP адресов:

64.233.160.0    255.255.128.0    Google Inc.           64.233.160.0 – 64.233.191.255
72.14.192.0    255.255.192.0    Google Inc.   72.14.192.0 – 72.14.255.255
77.88.19.0    255.255.255.0    YANDEX-MNT
77.88.21.0    255.255.255.0    YANDEX-MNT
77.108.82.48    255.255.255.248    COMCOR-Sistemy21        77.108.82.48 – 77.108.82.55
93.158.128.0    255.255.192.0    YANDEX-MNT
194.67.23.0    255.255.255.0    corp.mail.ru
194.67.57.0    255.255.255.0    corp.mail.ru
209.85.128.0    255.255.128.0    Google Inc.
213.180.192.0    255.255.224.0    YANDEX-MNT
213.180.193.0    255.255.255.0    YANDEX-MNT
213.180.199.0    255.255.255.0    YANDEX-MNT
213.180.204.0    255.255.255.0    YANDEX-MNT
213.180.208.0    255.255.240.0    YANDEX-MNT
213.180.223.0    255.255.255.0    YANDEX-MNT

Удачи!