Статья размещена автором Бетке Сергей Сергеевич

Exchange в борьбе со спамом: фильтрация соединений, DNSBL

Как уже отмечалось ранее, перед контентным фильтром крайне необходимо выставить заграждение. И причина тому – не только производительность контентных фильтров.

Рассмотрим нашу почтовую систему с точки зрения транзакций.

Если в рамках сессии наш MTA подтвердил получение письма (успешное завершение транзакции по передаче), отправитель вправе считать, что сообщение достигнет адресата. Соответственно, наш SMTP предпринимает все возможные шаги по предотвращению утери сообщения. Цель — либо действительно доставить сообщение, либо уведомить отправителя о неудаче. Все остальные варианты исключить. Поэтому SMTP при получении письма сбрасывает дисковый кеш диска, на котором расположены его очереди. Если мы будем принимать весь спам для последующей обработки контентным фильтром (а для этого сообщение должно быть принято с точки зрения SMTP), мы получим практически полное отсутствие кеша на диске, на котором расположены очереди SMTP.

Я не буду повторять рекомендации по оптимизации Exchange Server (перенос очередей на другие диски и прочие), не буду предлагать неправильные решения (типа создания RAM диска и размещения очередей на нём). На самом деле проблема может быть решена без каких-либо “хаков”: необходимо обеспечить фильтрацию соединений до приёма сообщения, то есть – до необходимости сброса кеша с точки зрения SMTP.

Exchange IMF v2 предоставляет нам такую возможность. В частности – он поддерживает DNSBL (black lists, или чёрные списки):Exchange в борьбе со спамом: фильтрация соединений, DNSBL

Мы для себя выбрали следующие DNSBL:

  1. b.barracudacentral.org (по производительности один из лучших)
  2. zen.spamhaus.org
  3. cbl.abuseat.org
  4. bl.spamcop.net
  5. dnsbl.njabl.org
  6. dnsbl.sorbs.net
  7. bl.score.senderscore.com
  8. dul.ru
  9. all.ascc.dnsbl.bit.nl

Первые 7 – в чистом виде DNSBL. На первое место мы ставим не самый эффективный с точки зрения процента распознавания спама, а самый производительный (по времени ответа) с наименьшим числом ложных срабатываний.

Exchange в борьбе со спамом: фильтрация соединений, DNSBL8 – dul.ru. Данный DNSBL мы используем для фильтрации соединений с динамических ip адресов РФ (модемных пулов и так далее). Позволяет отсечь часть спама российского происхождения.

Самый полезный и опасный — all.ascc.dnsbl.bit.nl. Он не является чёрным списком. Он позволяет нам определить страну отправителя. Далее, уже по коду ответа мы фильтруем страны, из которых почты мы в принципе не ждём (Бразилия, Уругвай и так далее). Именно применение фильтрации по географическому принципу позволило повысить эффективность фильтрации до контентных фильтров чёрных список до 99%.

Пример ответа от такого географического dnsbl:

nslookup -type=any 253.224.116.217.all.ascc.dnsbl.bit.nl
253.224.116.217.all.ascc.dnsbl.bit.nl   internet address = 127.0.0.46
253.224.116.217.all.ascc.dnsbl.bit.nl   text = "AS=16245 CC=DK URL=http://noc.bit.nl/dnsbl/"

Таких географических сервисов достаточно много. Достаточно обширных перечень действующих DNSBL можно увидеть здесь, заодно – и свой ip проверить не помешает. В нашем случае мы фильтруем следующие страны:

  • Арабские эмираты AE: 165.143.98.86.all.ascc.dnsbl.bit.nl internet address = 127.0.0.4
  • Албания AL: 202.224.107.95.all.ascc.dnsbl.bit.nl internet address = 127.0.0.6
  • Армения AM: 51.224.217.83.all.ascc.dnsbl.bit.nl internet address = 127.0.0.7
  • Ангола: 67.252.222.41.all.ascc.dnsbl.bit.nl internet address = 127.0.0.9
  • Asia/Pacific Region AP: 23.90.163.203.all.ascc.dnsbl.bit.nl internet address = 127.0.0.10
  • Аргентина: 190.80.177.190.all.ascc.dnsbl.bit.nl internet address = 127.0.0.11
  • Австрия: 252.181.112.178.all.ascc.dnsbl.bit.nl internet address = 127.0.0.13
  • Австралия: 152.108.136.202.all.ascc.dnsbl.bit.nl internet address = 127.0.0.14
  • Bosnia and Herzegovina BA: 135.85.93.81.all.ascc.dnsbl.bit.nl internet address = 127.0.0.17
  • Бангладеш BD: 150.153.76.203.all.ascc.dnsbl.bit.nl internet address = 127.0.0.19
  • Болгария: 152.8.246.87.all.ascc.dnsbl.bit.nl internet address = 127.0.0.22
  • Бразилия: — <IP>.all.ascc.dnsbl.bit.nl internet address = 127.0.0.28
  • Бенин BJ: 39.57.216.41.all.ascc.dnsbl.bit.nl internet address = 127.0.0.24
  • Багамские острова BS: 56.127.236.204.all.ascc.dnsbl.bit.nl internet address = 127.0.0.29
  • Белоруссия BY: 129.244.209.82.all.ascc.dnsbl.bit.nl internet address = 127.0.0.32 — не отключаем.
  • Канада: 48.16.110.65.all.ascc.dnsbl.bit.nl internet address = 127.0.0.34
  • Швейцария CH: 74.116.219.83.all.ascc.dnsbl.bit.nl internet address = 127.0.0.35
  • Чили CL: 27.204.162.190.all.ascc.dnsbl.bit.nl internet address = 127.0.0.37
  • Республики Камерун — 21.72.205.41.all.ascc.dnsbl.bit.nl internet address = 127.0.0.38
  • Китай: — 19.4.120.118.all.ascc.dnsbl.bit.nl internet address = 127.0.0.39.
  • Колумбия CO: 153.94.232.201.all.ascc.dnsbl.bit.nl internet address = 127.0.0.40
  • Сербия CR: 146.239.241.190.all.ascc.dnsbl.bit.nl internet address = 127.0.0.41
  • Чехия: 26.248.83.88.all.ascc.dnsbl.bit.nl internet address = 127.0.0.44
  • Германия DE: 133.152.231.194.all.ascc.dnsbl.bit.nl internet address = 127.0.0.45
  • Дания DK: 43.159.61.217.all.ascc.dnsbl.bit.nl internet address = 127.0.0.46
  • Доминиканская республика DO: 168.136.120.186.all.ascc.dnsbl.bit.nl internet address = 127.0.0.48
  • Алжир: 159.102.107.41.all.ascc.dnsbl.bit.nl internet address = 127.0.0.49
  • Эквадор: 154.230.105.200.all.ascc.dnsbl.bit.nl internet address = 127.0.0.50
  • Египет: 203.182.178.41.all.ascc.dnsbl.bit.nl internet address = 127.0.0.52
  • Эстония: 125.214.32.62.all.ascc.dnsbl.bit.nl internet address = 127.0.0.53
  • EU: 123.242.136.193.all.ascc.dnsbl.bit.nl internet address = 127.0.0.55 — пока не включаем…
  • Франция: 38.30.235.78.all.ascc.dnsbl.bit.nl internet address = 127.0.0.60
  • Гамбия GM: 41.93.60.212.all.ascc.dnsbl.bit.nl internet address = 127.0.0.67
  • Греция GR: 194.11.249.213.all.ascc.dnsbl.bit.nl internet address = 127.0.0.69
  • Гонконг HK: 246.194.213.218.all.ascc.dnsbl.bit.nl internet address = 127.0.0.73
  • Гондурас HN: 7.204.6.190.all.ascc.dnsbl.bit.nl internet address = 127.0.0.74
  • Хорватия: 21.3.17.89.all.ascc.dnsbl.bit.nl internet address = 127.0.0.75
  • Венгрия HU: 137.128.132.88.all.ascc.dnsbl.bit.nl internet address = 127.0.0.77
  • Индонезия: 228.234.137.118.all.ascc.dnsbl.bit.nl internet address = 127.0.0.78
  • Израиль IL: 225.72.235.212.all.ascc.dnsbl.bit.nl internet address = 127.0.0.80
  • Индия: 171.218.118.115.all.ascc.dnsbl.bit.nl internet address = 127.0.0.81
  • Иран IR: 217.167.136.188.all.ascc.dnsbl.bit.nl internet address = 127.0.0.83
  • Исландия IS: 10.88.149.88.all.ascc.dnsbl.bit.nl internet address = 127.0.0.84
  • Италия IT: 51.119.246.95.all.ascc.dnsbl.bit.nl internet address = 127.0.0.85
  • Иордания JO: 251.162.140.95.all.ascc.dnsbl.bit.nl internet address = 127.0.0.87
  • Япония: 214.208.140.203.all.ascc.dnsbl.bit.nl internet address = 127.0.0.88
  • Кения KE: 2.123.24.62.all.ascc.dnsbl.bit.nl internet address = 127.0.0.89
  • Кыргызстан KG: 167.168.201.109.all.ascc.dnsbl.bit.nl internet address = 127.0.0.90
  • Южная Корея: 231.129.187.121.all.ascc.dnsbl.bit.nl internet address = 127.0.0.93
  • Казахстан KZ: 8.128.19.212.all.ascc.dnsbl.bit.nl internet address = 127.0.0.96
  • Литва LT: 189.199.57.78.all.ascc.dnsbl.bit.nl internet address = 127.0.0.102
  • Люксембург LU: 31.9.252.94.all.ascc.dnsbl.bit.nl internet address = 127.0.0.103
  • Латвия LV: 35.49.188.91.all.ascc.dnsbl.bit.nl internet address = 127.0.0.104
  • Марокко MA: 56.255.249.41.all.ascc.dnsbl.bit.nl internet address = 127.0.0.106
  • Маврикия MU: 140.51.136.41.all.ascc.dnsbl.bit.nl internet address = 127.0.0.115
  • Мексика MX: 36.133.149.201.all.ascc.dnsbl.bit.nl internet address = 127.0.0.117
  • Малайзия: 130.63.26.58.all.ascc.dnsbl.bit.nl internet address = 127.0.0.118
  • Нигерия: NG: 85.98.184.41.all.ascc.dnsbl.bit.nl internet address = 127.0.0.121
  • Нидерланды NL: 65.230.201.188.all.ascc.dnsbl.bit.nl internet address = 127.0.0.123
  • Новая Зеландия: 76.77.90.116.all.ascc.dnsbl.bit.nl internet address = 127.0.0.127
  • Панама: 135.192.141.190.all.ascc.dnsbl.bit.nl internet address = 127.0.0.128
  • Пакистан: 95.9.167.115.all.ascc.dnsbl.bit.nl internet address = 127.0.0.132
  • Польша: 8.171.135.88.all.ascc.dnsbl.bit.nl internet address = 127.0.0.133
  • Пуэрто-Рико: 88.137.45.70.all.ascc.dnsbl.bit.nl internet address = 127.0.0.134
  • Португалия PT: 17.167.172.80.all.ascc.dnsbl.bit.nl internet address = 127.0.0.136
  • Румыния: 215.169.173.188.all.ascc.dnsbl.bit.nl internet address = 127.0.0.140
  • ЮАР: 177.98.138.212.all.ascc.dnsbl.bit.nl internet address = 127.0.0.142
  • Швеция SE: 8.107.11.193.all.ascc.dnsbl.bit.nl internet address = 127.0.0.144
  • Сингапур: 15.93.15.116.all.ascc.dnsbl.bit.nl internet address = 127.0.0.145
  • Словения SI: 212.25.161.213.all.ascc.dnsbl.bit.nl internet address = 127.0.0.146
  • Словакия: 203.163.40.178.all.ascc.dnsbl.bit.nl internet address = 127.0.0.147
  • Тайланд TH: 9.149.77.110.all.ascc.dnsbl.bit.nl internet address = 127.0.0.152
  • Турция: 212.102.188.78.all.ascc.dnsbl.bit.nl internet address = 127.0.0.154
  • Тайвань: 203.189.85.219.all.ascc.dnsbl.bit.nl internet address = 127.0.0.156
  • Танзания TZ: 18.2.78.41.all.ascc.dnsbl.bit.nl internet address = 127.0.0.157
  • США US: 57.101.89.75.all.ascc.dnsbl.bit.nl internet address = 127.0.0.160 — не включаем.
  • Вьетнам: 33.255.20.123.all.ascc.dnsbl.bit.nl internet address = 127.0.0.165
  • ЮАР: 162.166.22.196.all.ascc.dnsbl.bit.nl internet address = 127.0.0.169
  • Оман OM: 150.2.135.188.all.ascc.dnsbl.bit.nl internet address = 127.0.0.255
  • Коды стран http://www.maxmind.com/app/iso3166 для справки.

    Применение подобного подхода (бесплатного, что немаловажно), плюс использование Exchange в борьбе со спамом: фильтрация соединений, DNSBL sender id / spf политик позволило исключить приём спама для последующей контентной фильтрации, и обеспечить допустимые условия для бюджетных сервисов (типа Яндекс.Спамооборона1024).

Отзывы » (5)

  1. Доброго здравия!
    А какие правила необходимо создать на ISA (или другом Firewall) для правильной работы DNSBL?
    заранее спасибо

    • На самом деле ответ следует из технологии DNSBL. Сервисы DNSBL функционируют на базе инфраструктуры DNS серверов, отвечая на RDNS запросы. Поэтому, как и для DNS запросов, Вы должны разрешить использование протокола DNS (UDP 53 send-receive + TCP 53 outbound). Далее всё определяется конфигурацией клиента, опрашивающего dnsbl, и его расположением по отношению к ISA серверу.
      Я рекомендаю направлять запросы к DNSBL сервисам через Ваши собственные кеширующие dns серверы. Подобный подход позволит снизить нагрузку на внешние сервисы, повысить надёжность. Ну и повысить производительность за счёт локального кеша на Ваших серверах.
      При таком подходе никаких дополнительных правил на ISA не потребуется.

  2. Axl:

    Я бы удалил из этого списка b.barracudacentral.org — слишком много ложных срабатываний. Так можно и нормальную почту блокировать. А если и включать его, то только не блокируя, а помечая как спам. Вот пытался я написать на ящик postmaster@novgaro.ru и не могу. =(

    • Итак, Axl, писали Вы явно не с того почтового адреса, под которым оставили комментарий. Укажите либо ip, с которого было соединение, либо хотя бы домен адреса.
      Нашёл следующую сессию, предполагаю — Вашу:
      13:48:17 213.108.36.55 post.expertcom.ru EHLO +post.expertcom.ru 250
      13:48:17 213.108.36.55 post.expertcom.ru MAIL +From: 250
      13:48:22 213.108.36.55 post.expertcom.ru RCPT +To: 550
      13:48:22 213.108.36.55 post.expertcom.ru QUIT post.expertcom.ru 240
      lname сознательно маской закрыл, он пришёл в сессию нормальным. Ищем причину.
      + DNSBL: http://multirbl.valli.org/lookup/213.108.36.55.html. Чисто, так что дело точно не в dnsbl, хотя за эти часы могла ситуация измениться…
      + По географическому принципу. — не блокируем, Россия..
      nslookup -type=any 55.36.108.213.all.ascc.dnsbl.bit.nl
      127.0.0.141
      AS=47333 CC=RU URL=http://noc.bit.nl/dnsbl/
      + Spf, есть, и всё в порядке:
      nslookup -type=any expertcom.ru
      expertcom.ru MX preference = 20, mail exchanger = mail.expertcom.ru
      expertcom.ru MX preference = 10, mail exchanger = post.expertcom.ru
      expertcom.ru text = «v=spf1 mx ~all»
      mail.expertcom.ru internet address = 81.222.221.55
      post.expertcom.ru internet address = 213.108.36.55
      + HELO. Тут также всё в порядке.
      nslookup -type=any 55.36.108.213.in-addr.arpa
      55.36.108.213.in-addr.arpa name = post.expertcom.ru

      На текущий момент могу лишь грешить на то, что до моей вечерней проверки ip всё-таки был в чёрном списке. Прошу Вас привести ответ нашего сервера из журнала SMTP, легче будет понять причину, а также сообщите пожалуйста Ваш домен, дату и время попытки отправки, отправьте письмо ещё раз. Проверим ещё раз. Дело в том, что позднее я вижу успешную попытку (если только я угадал Ваш адрес):

      16:42:06 213.108.36.55 post.expertcom.ru EHLO +post.expertcom.ru 250
      16:42:06 213.108.36.55 post.expertcom.ru MAIL +From: 250
      16:42:07 213.108.36.55 post.expertcom.ru RCPT +To: 250
      16:42:08 213.108.36.55 post.expertcom.ru QUIT post.expertcom.ru 240

      Время — по GMT+0.
      В любом случае прошу Вас привести ответ нашего сервера на неудачную попытку. Жду Вашего ответа.

      P.S. Указанный Вами dnsbl является самым быстрым, и не блокирует при большом потоке запросов. И, к тому же, ложных срабатываний без причин от него я до сих пор не видел. Возможно, это «расследование» позволит пролить свет на его репутацию.

    • Уважаемые Александр, я получил Ваше письмо (вторая сессия). Ответ на первую по-прежнему ожидаю, чтобы понять причины отказа.

Опубликовать комментарий

XHTML: Вы можете использовать следующие HTML теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Tags Связь с комментариями статьи:
RSS комментарии
Обратная ссылка