Версия для печати

whitelistНаравне с технологией DNS blacklisting (DNSBL) существует технология DNS whitelisting (DNSWL). Это списки ip-адресов, хранимые с использованием системы архитектуры DNS. Но в отличии от «чёрных списков»(blacklist), которые хранят ip-адреса распространителей спама, «белые списки»(whitelist) хранят ip-адреса тех, кто в рассылках спама не замечен.

Основная идея «белых списков» — уменьшить количество ложных срабатываний остальных антиспам фильтров.

Мне показалось, что наиболее полную базу «белых адресов» имеет ресурс dnswl.org. Этот ресурс, помимо самого факта «чистоты» ip-адреса, хранит так же уровень этой чистоты(Trust Level).

Всего уровней четыре:

  1. High – никогда не рассылал спам;
  2. Medium – крайне редки случаи спама, быстро реагируют на проблемы;
  3. Low – иногда рассылают спам, активно реагируют на проблемы, но менее оперативно;
  4. None – легитимный почтовый сервер, но может рассылать спам.

Применение этого белого списка может быть таким:

  • не применять технологию «серых списков» для всех ip-адресов с уровнями None-High;
  • не применять технологию «черных списков» для всех ip-адресов с уровнями None-High;
  • не проверять письма на спам (или проверять в меньшей степени) для ip-адресов с уровнями Medium-High.

Вся остальная почта с адресов, которых нет в DNSWL, пройдёт полную проверку.

Для CGP я написал dnswl-cgp.c фильтр (cgp helper), который делает запрос в DNSWL и добавляет в сообщение заголовок: «X-DNSWL-Status: <Trust Level>».

Параметры запуска:

dnswl-cgp -q -w list.dnswl.org
Usage: dnswl-cgp [options] -w zone_name1[:zone_name2]
  -w : specify dns whitelist zone name(s) (in DNSBL format)
  -q : don't add any header on Skip messages
  -m : mail header name, default=X-DNSWL-Status
  -h : print this help message

(параметр «-q» запрещает добавлять «X-DNSWL-Status» заголовок, если ip-адреса нет в DNSWL, что ускоряет обработку сообщений)

Возможный сценарий для CGP:

  • В CGP переключить настройку «Messages from Blacklisted IP Addresses» в режим «Add Header» и прописать ваш заголовок:
    X-DNSBL-Status: ^1 blacklisted(^0)
  • Сделать серверное правило с самым высоким приоритетом, что бы все сообщения проходили через dnswl-cgp фильтр.
    Source  not in  trusted,authenticated
    Any Route  in  LOCAL(*,LIST(*
    ExternalFilte  DNSWL
  • Следующее правило должно анализировать наличие вашего «Blacklisted» заголовка и отвергать все blacklisted сообщения, если в них нет DNSWL заголовка нужного уровня, например:
    Header Field  is  X-DNSBL-Status:*blacklisted*
    Header Field  not in  X-DNSWL-Status:*High,X-DNSWL-Status:*Medium,X-DNSWL-Status:*Low,X-DNSWL-Status:*None
    Reject  Your IP address is blacklisted by DNSBL
  • В правило для «серых списков» так же можно добавить условие на присутствие DNSWL заголовка нужного уровня, например:
    Header Field  not in  X-DNSWL-Status:*High,X-DNSWL-Status:*Medium,X-DNSWL-Status:*Low,X-DNSWL-Status:*None
  • Добавить в остальные антиспам правила условие:
    Header Field  not in  X-DNSWL-Status:*High,X-DNSWL-Status:*Medium

Для исключения подделок этого заголовка, можно в самoм правиле DNSWL проверять нет ли там уже этого хэдера и как-то на это реагировать. Или изменить имя этому хэдеру (параметр -m) на любое другое.

И никогда не отменяйте проверку сообщений на вирусы.

Статистика за сутки:

  • не найдено в DNSWL: 116206
  • найдено в DNSWL:
    • High: 9
    • Medium: 221
    • Low: 448
    • None: 3879

UPD: обновил версию до 1.0.1, добавлен параметр (-m) для указания произвольного имени заголовка.

Google Bookmarks Digg Reddit del.icio.us Ma.gnolia Technorati Slashdot Yahoo My Web News2.ru БобрДобр.ru RUmarkz Ваау! Memori.ru rucity.com МоёМесто.ru Mister Wong

По теме:

Оставить комментарий



Anti-spam image