Как я боролся с cbl и другими блэк-листами

В один прекрасный момент я начал замечать, что некоторые письма возвращаются с комментарием, что внешний IP моего сервера заблокирован на одном из блэк-листов (RBL, CBL, и т.п.). «Странно все это» — подумалось мне. Зашел на указаный в отлупе сайт и проверил на присутствие моего IP в базе. Так и есть — присутствует.

Не долго думая я запросил удаление из базы и на том успокоился.

Через какое-то время пользователи начали жаловаться тоже, что мол почта возвращается. И тогда я решил таки попробовать понять почему мой IP заносится в базу блэк-листов.

Проведенный анализ на наличие вирусняка в сети (это районная локалка и все машины мне контролировать нет смысла) показал, что таки есть различные вирусы, которые рассылают сами себя, использую встроенный в них же SMTP-сервер.

В результате было приянто решение закрыть проброс 25-го порта на другие сервера. Пусть пользуют только мой SMTP. Таким образом прекратится рассылка вирусов с моего хоста.

Наблюдение за блэк-листами показало, что ничего не изменилось. И после удаления из базы cbl, мой хост там появлялся с завидной регулярностью в три-четыре часа. Логично предположить, что кто-то из юзеров рассылает СПАМ через мой сервер, но анализ логов Postfix привел к тому, что ничего подозрительного обнаружено не было, кроме того, что немало спама сыпется юзерам в ящик.

Посоветовашись с другом, было принято решение поставить на проверку (логирование пакетов) некоторые порты, которые используют вирусы для выхода в инет. Что я немедленно и сделал. Порты: 445,665, 6000, 1034 (tcp); 1025, 1026, 1027, 1433, 1434 (udp).

Утром просмотрев логи увидел сразу у кого сидят вирусняки и позакрывал форвард этих портов, дабы не было эксцессов.

Проверка в cbl показала, что таки опять в блэк-листе.

Вариантов оставалось не много :

1. Обрезать прием кучи спама, т.к. вполне вероятно, что каким-то образом обманывали Postfix и он отправлял Return-Receipt’s, на что юзера, их получившие, ругались и считали их спамом (фактически та оно и есть) и жаловались сразу в abuseat.org.

2. Reverse DNS зона, которая прописана не так, как представляется мой сервер.

Для обрезания спама сразу Postfix’ом я нашел на opennet.ruхороший совет от Дмитрия Кустова. Приведу его полностью:

Привожу выдержки из настроек в main.cf для фильтрации спама в версии Postfix 2.2 его собственными силами.
/etc/postfix/main.cf
====================

disable_vrfy_command = yes

strict_rfc821_envelopes = yes

smtpd_etrn_restriction = reject

smtpd_sasl_auth_enable = yes

smtpd_helo_required = yes

smtpd_helo_restrictions =


smtpd_recipient_restrictions =

permit_sasl_authenticated,

permit_mynetworks,

reject_non_fqdn_recipient,

check_recipient_access pcre:/etc/postfix/recipient_checks.pcre,

reject_unknown_recipient_domain,

reject_unverified_recipient,

reject_unauth_destination,

reject_unauth_pipelining,

permit_auth_destination


smtpd_data_restrictions =

reject_unauth_pipelining,

reject_multi_recipient_bounce,

permit


smtpd_delay_reject=no


# здесь у меня пусто, но можно ввести свой контроль

smtpd_client_restrictions =

# check_client_access hash:/etc/postfix/maps/access_client


# количество RBL серверов регулируйте сами, я дал наиболее распространённые, на мой взгляд

smtpd_sender_restrictions =

permit_sasl_authenticated,

permit_mynetworks,

reject_invalid_hostname,

reject_non_fqdn_hostname,

reject_non_fqdn_sender,

check_sender_access hash:/etc/postfix/maps/ not_our_domain_as_sender,

reject_unknown_client,

reject_unknown_sender_domain,

reject_unknown_hostname,

check_client_access pcre:/etc/postfix/client_checks.pcre,

check_helo_access pcre:/etc/postfix/helo_checks.pcre,

reject_rbl_client bl.spamcop.net,

reject_rbl_client sbl-xbl.spamhaus.org,

reject_rbl_client dul.dnsbl.sorbs.net,

reject_rbl_client list.dsbl.org,

reject_rbl_client dnsbl.njabl.org,

reject_rbl_client relays.ordb.org,

reject_rbl_client cbl.abuseat.org,

reject_rbl_client opm.blitzed.org,

reject_rbl_client dul.ru,

reject_rhsbl_sender dsn.rfc-ignorant.org

====================


/etc/postfix/client_checks.pcre


====================

/(modem|dia(l|lup)|cp[ce]|dsl|p[cp]p|cable|catv|poo(l|les)|pppoe|dhcp|client|

customer|user|host|[0-9]{4,})(-|_|.|[0-9])/ REJECT Invalid hostname (client)


/[0-9]+-[0-9]+/ REJECT Invalid hostname (D-D)

====================


/etc/postfix/helo_checks.pcre


====================

/[^[] *[0-9]+((.|-|_)[0-9]+){3}/ REJECT Invalid hostname (ipable)


/(modem|dia(l|lup)|cp[ce]|dsl|p[cp]p|cable|catv|poo(l|les)|pppoe|dhcp|client|

customer|user|host|[0-9]{4,})(-|_|.|[0-9])/ REJECT Invalid hostname (client)


/[0-9]+-[0-9]+/ REJECT Invalid hostname (D-D)

====================


/etc/postfix/recipient_checks.pcre


====================

/[@!%].*[@!%]/ 550 Please use user@domain address forms only.

====================


/etc/postfix/maps/not_our_domain_as_sender


====================

yourdomain.tld 554 Go away, bloody spammer!

====================

После проделывания всех манипуляций и рестарте Postfix’a я глянул в логи и обрадовался — куча спама стала отсеиваться еще до принятия письма. На момент соединения и проверке ReverseDNS.

Оставалось подождать и посмотреть как отреагирует на мои манипуляции cbl. Спустя сутки я уже думал что все. Все нормально и можно расслабиться, ан нет. К вечеру следующего дня опять мой IP в блэк-листе. Оставался один вариант: ReverseDNS, за который я благополучно забыл и не отправил заявку провайдеру на переписывание зоны. Было самое время это сделать.

Утром я проверил обратную зону и вот уже полтора суток (тьфу-тьфу-тьфу) не попадал в поле зрения cbl. Надеюсь, что уже и не попаду.

Вот собственно и вся история на данный момент времени, но чуствую будет еще продолжение как минимум по борьбе со спамом, ибо хочется мне ввести в работу технологию грей-листнга. Если у кого-то есть замечание, вопросы или предложения — милости прошу в комментарии.

Вы можете оставить комментарий, или поставить трэкбек со своего сайта.

8 комментариев(я)

  • 16.03.2007 12:21, Новости 2.0 сказал:

    Обсудите эту новость на news2.ru

    • 27.05.2008 09:18, qwe сказал:

      Весьма познавательно. Спасибо.

      • 26.06.2008 11:01, www2 сказал:

        Почтовый сервер просто обязан иметь обратную DNS-запись.

        Чёрные списки DNS в чистом виде — какашка и для фильтрации спама непригодны. Присутствие в чёрном списке лучше использовать как повод для грейлистинга или дополнительный балл при оценке в SpamAssassin (оно так и есть). Десть раз подумайте, прежде чем добавить какой-то чёрный список себе в почтовик. Почитайте что пишут об определённом чёрном списке админы, которые его использовали. Не стоит бездумно копировать всё чёрные списки, которые вы нашли, сразу в конфиг почтовика.

        Могу посоветовать хороший чёрный список zen.spamhaus.org. Если у Вас есть своя автономная система, можно вписать клиентские IP, на которых нет почтового сервера, в список pbl.spamhaus.org на сайте www.spamhaus.org. Этим Вы отблагодарите систему, которой сами пользуетесь.

        • 19.08.2008 15:50, Вячеслав сказал:

          «ordb.org was shut down on December 18, 2006. Please remove from your mailserver.» — рекомендую убрать запись «reject_rbl_client relays.ordb.org,»

          из моего потока спама реально отсекается zen.spamhaus.org 1-е место, bl.spamcop.net 2-е место, в значительном отрыве ipwhois.rfc-ignorant.org и dnsbl.sorbs.net.

          интересно, что толку от dul.ru вобще никакого, видимо весь спам идет не через dial-up и не через российских провов :-)

          (Обязательно)
          (Обязательно, не публикуется)

          Hастоящий админ знает только об одном типе архивов - tgz.
          Яндекс.Метрика beget