Всё о о Microsoft Exchange Server и электронной почте.

Скрипт для борьбы с спамом Алексея Лобанова(Jim)

Обнаружил на сайте certification.ru любопытный пост. Алексей Лобанов (Jim) — автор поста, предлагает свою версию спам фильтра для борьбы со спамом. По его мнению, способ предложенный им наиболее эффективный. Я воздержусь от комментариев, т.к. мне это не интересно. Но идея вполне имеет право на существование и наверняка будет полезна небольшим компаниям, когда нет бюджета на хорошую антиспамовую систему. Самое главное, что это Open Source и если Вас что-то не устраивает, то Вы вполне это можете изменить.

Что сподвигло меня на написание своего скрипта – спам одолел меня окончательно. Как показала статистика, можно от потери пульса придумывать контент-фильтры, но спам в основном сыплется с поддельных адресов. Встроенные средтва Exchange работают не так как хочется, сторонние продукты либо не имеют нужного мне функционала, либо просто дорогие, при этом глючные продукты.

Например, взять технологию Sender ID- в Exchange она есть, но нет защиты от дурака, например, в зоне mail.ru можно увидеть такую запись: v=spf1 ip4:194.67.57.0/24 ip4:194.67.23.0/24 ip4:194.67.45.0/24 ~all. Здесь нет пометки PTR, поэтому для mail.ru технология не работает, админы mail.ru – исправьте 

Мой антиспам имеет защиту от дурака, работает с Sender ID полями mx, ip4, include, пока игнорируте ~all. Сначала проверятеся запись MX, затем Sender ID, остальные Релеи игнорируются, в наши дни вымерли.

Плюсы:

  • это как видите Open Source 
  • ни при каких ошибках в DNS не зависнет
  • поддержваются множестенные записи spf
  • записывает действия в журнал Application
  • не имеет дыр в безопасности
  • не прошедшая проверку почта отправляется в Badmail
  • занимает при работе не более 20 килобайт на диске (до 7 файлов)
  • работает на Exchange 2003, 2000, либо просто IIS 6 SMTP сервере

Минусы:

  • — вынужден использовать файловые операции, из-за того, что не смог перенаправить результаты nslookup в скрипт, а самому квери писать лень, но если у кого-то свыше миллиона писем в день, советую перевести рабочий каталог LOBpath на маленькую флешку
  • Данный антиспам не гарантирует получение спама с “белых” почтарей, поэтому дополнительно использую Connection Filtering, советую bl.spamcop.net.


Установка:

скопировать в C:\Inetpub\AdminScripts файлы FILTER.VBS (внизу), smtpreg.vbs (взять в Exchange 2003 SDK),

install.bat (Cscript smtpreg.vbs /add 1 onarrival AntispamLOB CDO.SS_SMTPOnArrivalSink «mail from=*» >reg1.txt
Cscript smtpreg.vbs /setprop 1 onarrival AntispamLOB Sink ScriptName «C:\Inetpub\AdminScripts\FILTER.vbs» >reg2.txt).

Запуcтить install.bat, прерзапустить виртуальный SMTP сервер. Все! Смотрим EventLog 
В качестве вознаграждения просто скажите спасибо 

Скачать скрипт полностью.

Похожие посты:

  • zorion

    Павел, а не могли бы вы рассказать как вы боритесь со спамом?

  • http://www.exchangerus.ru Pavel Nagaev

    Все просто.

    Kaspersky Antivirus и Antispam на выделенном сервере Linux.

    Проверки RBL, SenderID резко уменьшили приток спама.

  • П

    А Vamsoft ORF? Если не используете, то почему к нему такой интерес?

  • http://www.exchangerus.ru Pavel Nagaev

    Vamsoft ORF я пользовался до того, как нашел Касперского. Vamsoft ORF — отличный фильтр, то что Микрософт забыл сделать в Exchange 2003.

    Но его, к сожалению, мало. Нужна еще проверка контента, возможно этот функционал уже появился, но сейчас мне это не нужно. Kaspersky antispam и antivirus прекрасно справляются со своей задачей, хотя и не лишены недостатков.

  • mdanshin

    Павел, Kaspersky Antispam и Antivirus это продукты платные, а чем они лучше тех же CalmAV и встроенных средств борьбы со спамом таких MTA как Exim или Qmail?

  • http://www.exchangerus.ru Pavel Nagaev

    Платные конечно. Хороши тем, что есть с кого спросить и на мой взгляд работают хорошо, ориентированы на русский спам и вирусы, т.е. то что реально гуляет по России.

  • sallas

    Господа!

    Сразу скажу под Exchange я никогда ничего не писал.
    Но тут внезапно навесили на меня задачу:
    нужно сохранять атачменты писем, которые приходят с определенного списка адресов (заранее известны все адреса), в определенные для каждого адреса папки.

    Я понимаю, что это тривиальная задача, но самостоятельно решить ее не могу.

    Прошу помочь скриптом и советом.

    Желательно чтобы скрипт работал на любой версии Exchange.

    Заранее спасибо за помощь.

  • BlackPH

    Сорри за мою абракадабру, штука для проверки на человечность при добавлении комментария виновата.

    Смысл в том что мне не понятна фраза
    «Например, взять технологию Sender ID- в Exchange она есть, но нет защиты от дурака, например, в зоне mail.ru можно увидеть такую запись: v=spf1 ip4:194.67.57.0/24 ip4:194.67.23.0/24 ip4:194.67.45.0/24 ~all. Здесь нет пометки PTR, поэтому для mail.ru технология не работает, админы mail.ru – исправьте»
    Если речь идет о технологии SPF, то все прекрасно работает.
    Из сообщения еще логически выходит что «админы мэйл ру дураки».
    Это не есть так и имхо эти люди понимают в SPF гораздо больше автора скрипта, и я их искренне уважаю, ибо сам года 3 назад отписал им глупое письмо по поводу, как потом выяснилось,известного ограничения технологии SPF а именно невозможности корректной обработки авторматической почтовой пересылки. После чего получил спокойное и ясное обьяснение почему же мой мэйлфильтр заворачивает эти письма.

  • http://www.exchangerus.ru Pavel Nagaev

    Это слова Алексея Лобанова, поэтому это вопрос к нему.

  • Klim

    Здравствуйте! Осмелюсь задать Вам несколько вопросов по скрипту:
    1. Актуален ли он?
    2. Как убедиться что он работает?
    После установки появился еще один журнал событий ANTISPAM, но в него никакие события не заносятся, спам при этом проходит.
    После установки я отредактировал файл FILTER.VBS под свою сеть, правильно ли это?

    <SCRIPT LANGUAGE=»VBScript»>
    ‘+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    ‘+         ANTISPAM «LOB»  for Microsoft (c) Exchange 2003 Server                  +
    ‘+                     Build 2.0, August 2007, Russia                              +
    ‘+              Author: Alexey Lobanov +
    ‘+          If you have questions, ask me in Russian or in English                 +
    ‘+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    Sub ISMTPOnArrival_OnArrival(ByVal Msg, EventStatus)
    Const LOBpath = «C:\Inetpub\AdminScripts\»   ‘######### path
    LOBmysubnet = «10.10.0.0/16»                  ‘######### my LAN
    LOBrelay = «88.204.xxx.xxx ‘######### my relay
    LOBmydomainname = «firma.kz»              ‘######### my domain
    LOBdnsserverIP = «10.10.10.2»                ‘######### my DNS server(optional)
    Dim LOBresultmx, LOBfrom
    Dim LOBresip, LOBsubj
    LOBresultmx = 0
    ‘_______________Getting Fields__________________________________________________________

    3. Нужно ли убрать галочки в настройках SMTP коннектора? «Apply Connection Filter» и «Apply Sender ID Filter»

    4. Какой доступ и по каким протоколам у сервера Exchange должен быть для корректной работы скрипта?

    В данный момент на маршрутизаторе CISCO прописан такой доступ:

    50 permit udp host 10.10.10.14 any eq domain
    60 permit tcp host 10.10.10.14 any eq domain
    70 permit tcp host 10.10.10.14 any eq smtp

    т.е. на любой хост в интернете по портам 53 и 25

    Заранее спасибо за ответ.

  • http://www.exchangerus.ru Pavel Nagaev

    Поскольку мопед не мой, то я ответить на Ваши вопросы не могу.  Обращайтесь к  Алексею Лобанову(Jim)