Режем спам. Дополнительные методы::Журнал СА 2.2005
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

Книжная полка  

От создания сайтов до разработки и реализации API

В издательстве «БХВ» недавно вышли книги, которые будут интересны системным администраторам, создателям

 Читать далее...

Разбор полетов  

Ошибок опыт трудный

Как часто мы легко повторяем, что не надо бояться совершать ошибки, мол,

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6144
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 6857
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4140
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 2978
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3781
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3789
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6283
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3134
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3434
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7246
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10616
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12336
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 13969
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9100
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7053
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5362
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4594
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3402
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3129
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3379
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3000
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Режем спам. Дополнительные методы

Архив номеров / 2005 / Выпуск №2 (27) / Режем спам. Дополнительные методы

Рубрика: Администрирование /  Электронная почта

ДЕНИС НАЗАРОВ

Режем спам

Дополнительные методы

Идет бабулька по подворотням, видит два парня третьего пинают, она cпрашивает:

– За что это вы его так, сынки?

– Бабка, да это спамер!

– А ну тогда по почкам его! По почкам!

Знакомый анекдот? А в реальной жизни вы пробовали подсчитать количество «спама», проходящего через ваш почтовый сервер? Недавний аудит одной финансовой компании показал, что через почтовый сервер прошло больше 22 Гб почтового трафика в месяц. Я информировал об этом начальство и со спокойной душой решил, что аудит окончен, но я ошибся, руководство компании уверяло меня в том, что это просто невозможно, т.к. раньше у них был гораздо меньший объем почтового трафика, а новых сотрудников они не набирали. Пришлось разбираться дальше. Проанализировав протоколы за месяц, я пришел к выводу, что 20 из этих 22 Гб были просто «спамом». Решено было избавлять компанию от этой назойливой почты...

Итак, мы имеем в наличии

  • OpenBSD 3.6.
  • Postfix 2.1.5 (считаю этот МТА одним из лучших благодаря гибкости настройки и возможностям).
  • DrWeb 4.32 (отличный антивирус, никогда не подводил, идеально работает с OpenBSD).
  • Пользователи: примерно 500 человек.

Задача: Обеспечить максимальную защиту от спама и вирусов, которые вам стремятся подсунуть по электронной почте.

Система

Настройка системы начинается с файла /etc/rc.conf. С версии 3.3 OpenBSD имеет встроенный механизм защиты от спама, называемый spamd. Именно о настройке данного компонента системы мы и поговорим. Что есть spamd? Это демон, который пропускает через себя весь почтовый поток и принимает решения – отдать ли письмо на обработку «реальному» МТА или же отбросить, как «спам».

Как работает spamd? В его распоряжении имеются 2 или 3 списка (в зависимости от того, что вы выберете в конфигурационном файле) – «черный список», «белый список», «серый список». Последний («серый список») может быть отключен, если вам нужен более жесткий контроль над спамерами. Демон spamd при запуске начинает слушать порт 8025 на интерфейсе 127.0.0.1 (переопределить порт можно, отредактировав файл /etc/services). Затем при помощи PF (OpenBSD Packet Filter) мы перенаправляем весь трафик с 25-го порта на порт 8025. И видим следующую картину:

Trying 127.0.0.1...

Connected to localhost.

Escape character is "^]".

220 bastion ESMTP spamd IP-based SPAM blocker; Tue Feb 15 12:57:50 2005

С виду похоже на приветствие обычного МТА, если не считать строчку: IP-based SPAM blocker.

Вот теперь начинается самое интересное. Возвращяемся к спискам.

  • «Черный список» – думаю все понятно. IP-адреса, перечисленные тут, будут вежливо отвергнуты.
  • «Белый список» – IP-адреса из этого списка будут иметь доступ к «реальному» МТА напрямую, без прохождения спам-фильтра. Подразумевается, что в этот список вы вносите те IP-адреса, в которых уверены на 99,97%.
  • Grey List – динамический список. Приходящее письмо с IP-адресом, не входящее ни в «черный список», ни в «белый список», будет помечено как «grey», и отвергнуто с ошибкой: «450. Temporary failure. Try again later.» Получая данный ответ, удаленный хост, отправивший вам сообщение, должен будет снова попытаться переслать сообщение через некоторое время. Обычно интервал ожидания может быть от 10 до 30 минут. Spamd следит за этим и, получая письмо второй раз, передает его почтовой системе, занося отправителя в «белый список». Зачем все это нужно? Получив в ответ ошибку, спамер будет настойчиво пытаться впихнуть нам свое сообщение. Возможно, даже выполняя множество попыток в течение одной минуты. Spamd считает такие попытки. При превышении определенного количества хост тут же попадает в «черный список».

Чтобы окончательно понять, как это работает, приступим к конфигурированию.

/etc/rc.conf

spamd_flags=""   # for normal use: "" and see spamd-setup(8)

spamd_grey=YES   # use spamd greylisting if YES

Влючаем spamd и указываем на то, что мы хотим использовать Grey Listing.

Crontab

0    *    *    *    *    /usr/libexec/spamd-setup

В crontab для root прописываем запуск утилиты spamd-setup таким образом, чтобы она выполнялась в начале каждого часа. Данная утилита скачивает из Интернета списки с IP-адресами спамерских релеев и автоматически заносит их в ваш «черный список».

/etc/spamd.conf

all:\

        :spamhaus:spews1:spews2:china:korea:whitelist:blacklist:

# Mirrored from http://spfilter.openrbl.org/data/sbl/SBL.cidr.bz2

spamhaus:\

    :black:\

    :msg="SPAM. Your address %A is in the Spamhaus Block List\n\

    See http://www.spamhaus.org/sbl and\

    http://www.abuse.net/sbl.phtml?IP=%A for more details":\

    :method=http:\

    :file=www.openbsd.org/spamd/SBL.cidr.gz

# Mirrored from http://www.spews.org/spews_list_level1.txt

spews1:\

    :black:\

    :msg="SPAM. Your address %A is in the spews level 1 database\n\

    See http://www.spews.org/ask.cgi?x=%A for more details":\

    :method=http:\

    :file=www.openbsd.org/spamd/spews_list_level1.txt.gz

# Mirrored from http://www.spews.org/spews_list_level2.txt

spews2:\

    :black:\

    :msg="SPAM. Your address %A is in the spews level 2 database\n\

    See http://www.spews.org/ask.cgi?x=%A for more details":\

    :method=http:\

    :file=www.openbsd.org/spamd/spews_list_level2.txt.gz

# Mirrored from http://www.okean.com/chinacidr.txt

china:\

    :black:\

    :msg="SPAM. Your address %A appears to be from China\n\

    See http://www.okean.com/asianspamblocks.html for more details":\

    :method=http:\

    :file=www.openbsd.org/spamd/chinacidr.txt.gz

# Mirrored from http://www.okean.com/koreacidr.txt

korea:\

    :black:\

    :msg="SPAM. Your address %A appears to be from Korea\n\

    See http://www.okean.com/asianspamblocks.html for more details":\

    :method=http:\

    :file=www.openbsd.org/spamd/koreacidr.txt.gz

# Whitelists are done like this, and must be added to «all» after each blacklist from which you want

# the addresses in the whitelist removed

whitelist:\

    :white:\

    :file=/var/mail/whitelist.txt

blacklist:\

    :black:\

    :msg="SPAM! Go fsck anyone else!":\

    :file=/var/mail/blacklist.txt

relaydb-black:\

    :black:\

    :msg="SPAM. Your address %A is in my relaydb list.":\

    :method=exec:\

    :file=relaydb -4lb:

relaydb-white:\

    :white:\

    :method=exec:\

    :file=relaydb -4lw:

Данный файл отвечает за обработку этих самых «черных», «белых» и «серых» списков. Я перечислил основные самые крупные «черные списки» для спамеров, вы можете их смело использовать.

Переходим к настройке ваших «черных» и «белых» списков.

blacklist:

    :black:

    :msg="SPAM! Go fsck anyone else!":

    :file=/var/mail/blacklist.txt

Директива msg отвечает за то сообщение, которое мы будем отправлять во время сессии, в том случае если хост находится в «черном списке». Директива file определяет путь для файла со списком IP-адресов, которые автоматом при загрузке попадают в «черный список».

# cat /var/mail/blacklist.txt

81.213.107.93

212.112.102.194

81.195.250.132

212.19.145.86

Конфигурационный файл похож и для «белого списка», за исключением директивы msg – она отсутствует.

# cat /var/mail/whitelist.txt

192.168.0.0/24

Важно.

all:

    :spamhaus:spews1:spews2:china:korea:whitelist:blacklist:

Решение принимается на основе последнего совпадения IP-адреса и записи в списках.

Все. Основная конфигурация для spamd закончена. Так как мы перенаправляем письма в spamd при помощи PF (Packet Filter), то конфигурируем сам фильтр:

/etc/pf.conf

table persist

table persist

rdr pass inet proto tcp from to any port smtp -> 127.0.0.1 port 8025

rdr pass inet proto tcp from ! to any port smtp -> 127.0.0.1 port 8025

Тем, кто читал в журнале мои предыдущие статьи о пакетном фильтре операционной системы OpenBSD, все будет понятно. Для остальных поясню – фильтр перенаправляет весь трафик с 25-го порта на порт 8025. Но если трафик на 25 порт идет с IP-адреса, который находится в «белом списке», то PF пропускает трафик сразу «реальному» МТА.

Готово. Теперь осталось запустить spamd.

Можно запустить spamd вручную, но лучше будет – перезагрузить сервер, т.к. при запуске spamd создает нужные файлы в /var/db, а также «привязывает» себя к пакетному фильтру.

# ps ax | grep -i spa

 3123 ??  Is      3:52.08 spamd: (pf update) (spamd)

17434 ??  I      17:44.88 /usr/libexec/spamd -g

11229 ??  I       0:01.86 spamd: (/var/db/spamd update) (spamd)

26245 ??  Is      0:00.00 /usr/libexec/spamlogd

23886 p0  I+      0:00.00 grep -i spa

Отлично. Спам-фильтр, основанный на проверке IP-адресов, это, конечно, хорошо и будет работать в связке с любым МТА, но мы сделаем еще лучше.

Идем дальше.

Postfix

Я не буду рассказывать, почему Postfix такой замечательный и гибкий, и быстрый, и мощный – просто сразу начнем его настраивать.

/etc/postfix/main.cf

#

# Our stuff for coniguring Postfix goes here

#

Запрещаем использование команды VRFY для проверки наличия пользователя в системе.

disable_vrfy_command = yes

Обязываем удаленный хост здороваться с нами, а не сразу начинать нас забрасывать почтой. Софт, разработанный для рассылки спама, зачастую не умеет работать с smtp-командой helo.

smtpd_helo_required = yes

Проверяем наличие «верного» имени хоста для отправителей. Иначе отказываем отправителю.

smtpd_helo_restictions = permit_mynetworks,

    reject_invalid_hostname,

    reject_unknown_hostname,

    reject_non_fqdn_hostname

Проверяем наличе «верного» домена у отправителя, иначе отказываем.

smtpd_sender_restrictions = reject_unknown_sender_domain,

    check_sender_access hash:/etc/postfix/reject

Если же намеренно хотим отказать отправителю – заносим его домен в файл /etc/postfix/reject и выполняем команду:

# postmap /etc/postfix/reject

Утилита postmap создаст хеш из файла /etc/postfix/reject, который будет использоваться самим Postfix для отказа в приеме почты.

Проверяем наличие «верного» имени домена для получателей, отказываем всем, чьё имя домена не соответствует требованиям FQDN, или не существует вообще.

smtpd_recipient_restrictions = reject_invalid_hostname,

    reject_non_fqdn_sender,

    reject_non_fqdn_recipient,

    reject_unknown_sender_domain,

    reject_unknown_recipient_domain,

    reject_unauth_pipelining,

    permit_mynetworks,

    reject_unauth_destination,

    reject_rbl_client relays.visi.com,

    reject_rbl_client relays.ordb.org,

    reject_rbl_client list.dsbl.org,

    reject_rbl_client dnsbl.sorbs.net,

    reject_rbl_client dnsbl.void.ru,

    reject_rbl_client blackholes.mail-abuse.org,

    reject_rbl_client relays.mail-abuse.org,

    reject_rbl_client dul.mail-abuse.org,

    reject_rbl_client relays.ordb.org,

    reject_rbl_client blackholes.wirehub.net,

    reject_rbl_client dynablock.wirehub.net,

    reject_rbl_client dnsbl.njabl.org,

    reject_rbl_client list.dsbl.org,

    reject_rbl_client opm.blitzed.org,

    reject_rbl_client http.dnsbl.sorbs.net,

    reject_rbl_client socks.dnsbl.sorbs.net,

    reject_rbl_client misc.dnsbl.sorbs.net,

    reject_rbl_client smtp.dnsbl.sorbs.net,

    reject_rbl_client web.dnsbl.sorbs.net,

    reject_rbl_client bl.spamcop.net,

    reject_rbl_client dev.null.dk,

    reject_rbl_client blackholes.mail-abuse.com,

    reject_rbl_client relays.mail-abuse.com,

    reject_rbl_client dialups.mail-abuse.com,

    reject_rbl_client relays.ordb.org,

    reject_rbl_client list.dsbl.org,

    reject_rbl_client multihop.dsbl.org,

    reject_rbl_client argentina.blackholes.us,

    reject_rbl_client brazil.blackholes.us,

    reject_rbl_client china.blackholes.us,

    reject_rbl_client cn-kr.blackholes.us,

    reject_rbl_client hongkong.blackholes.us,

    reject_rbl_client japan.blackholes.us,

    reject_rbl_client korea.blackholes.us,

    reject_rbl_client malaysia.blackholes.us,

    reject_rbl_client mexico.blackholes.us,

    reject_rbl_client nigeria.blackholes.us,

    reject_rbl_client singapore.blackholes.us,

    reject_rbl_client taiwan.blackholes.us,

    reject_rbl_client thailand.blackholes.us,

    reject_rbl_client turkey.blackholes.us

Строчка reject_rbl_client relays.visi.com … добавляет так называемую RBL-проверку. Принцип тот же, что и у spamd. Хост проверяется в «черном списке» у всех добавленных нами «reject_rbl_client», и, если будет обнаружен там, письмо отбрасывается, как спам.

После данной настройки системы и Postfix в качестве MTA в протоколах мы можем наблюдать следующее:

# tail /var/log/daemon

Feb 15 12:10:22 bastion spamd[17434]: 66.94.237.32: connected (1/0)

Feb 15 12:10:23 bastion spamd[17434]: 66.94.237.32: disconnected after 1 seconds.

Feb 15 12:13:29 bastion spamd[17434]: 222.67.37.40: connected (103/100), lists: china

Feb 15 12:13:32 bastion spamd[17434]: 222.67.37.40: disconnected after 3 seconds. lists: china

Feb 15 12:13:53 bastion spamd[17434]: 63.209.157.52: connected (1/1), lists: spamhaus

Feb 15 12:21:11 bastion spamd[17434]: 63.209.157.52: disconnected after 438 seconds. lists: spamhaus

Из протоколов видно, какой IP-адрес и сколько раз пытался соединиться и отправить нам спам.

# grep –i spam /var/log/maillog

Feb 15 01:19:34 bastion postfix/smtpd[8447]: NOQUEUE: reject: RCPT from domain.name[195.2.80.59]: 554 Service unavailable;

Client host [195.2.80.59] blocked using dnsbl.sorbs.net; Spam Received See: http://www.dnsbl.sorbs.net/lookup.shtml?195.2.80.59;

from= to= proto=SMTP helo=

Система работает, как часы, все четко и точно. Если вам не нравится, как spamd распределяет IP-адреса отправителей по «черному» и «белому» списку, используем утилиту spamdb.

# spamdb | more

WHITE|12.111.30.74|||1105460517|1105466496|1108576943|2|0

WHITE|129.215.166.64|||1106681432|1106683445|1109793856|2|0

WHITE|13.16.138.21|||1105587869|1105591107|1108701528|3|0

WHITE|130.126.232.30|||1106168619|1106170545|1109281002|6|0

WHITE|134.130.3.130|||1107270887|1107274487|1110384920|2|0

WHITE|138.220.29.7|||1105954380|1105956190|1109066641|6|0

Данный листинг показывает ваши «белый список» и Grey Lists. Если вы намеренно хотите добавить в таблицу хост, помеченный как White, используем параметр -a, чтобы удалить -d:

spamdb –a xxx.xxx.xxx.xxx

spamdb –d xxx.xxx.xxx.xxx

Примечание. Добавить или удалить можно только IP-адреса, помеченные как White. Для добавления IP-адреса в ваш «черный список» отредактируйте файл, указанный в директиве file файла /etc/spamd.conf.

Основная настройка закончена. Остаются «рюшечки». Спам это, конечно, вредная вещь, но вирусы, трояны и прочее может принести вам еще больше проблем. Приступим.

Берем последнюю версию DrWeb на сайте http://download.drweb.com/unix/OpenBSD+3.6 и оттуда же фильтр для Postfix.

Установка DrWeb очень проста. Нужно распаковать архив и расположить файлы в системе так, как это сказано в readme. Также вам потребуется наличие демонстрационного ключа для запуска антивируса в демо-режиме. Если понравится работа DrWeb (а я надеюсь, так и будет), то вы можете без проблем приобрести нормальный ключ.

Переходим к Postfix. Тут тоже все довольно просто.

/etc/postfix/master.cf

Заменяем строчку:

smtp      inet  n       -       n       -       -       smtpd

на

smtp      inet  n       -       n       -       -      smtpd -o content_filter=filter:dummy

и добавляем в конец файла:

filter    unix  -   n   n   -   -   pipe

    flags=R user=drweb argv=/usr/local/drweb/drweb-postfix -f ${sender} -- ${recipient}

Вот, в общем-то, и все. Отличная антивирусная защита к вашему Postfix готова.

На сим заканчиваю, надеюсь, описанные мной способы помогут отбить все почки вашим спамерам.


Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru