Petr Didenko (kippie) wrote,
Petr Didenko
kippie

Category:

Защищаем CommuniGate Pro от спама

Собрал в кучу весь опыт последнего времени по поводу того, как защитить CGP-сервер от спама... без денег. Сразу оговорюсь, что нужно использовать более-менее новые версии CGgatePro, где все упомянутые фичи присутствуют.


1. Очевидно, можно использовать RBL'и, но по ним можно отфильтровать много нужного. Концепт заключается в том, чтобы не отвергать письма, а складывать их в папочку spam. Можно юзеру, можно для всего сервера целиком в ящик какого-то админа. CGP умеет не делать реджект, а добавлять произвольный заголовок в письмо, а потом по этому заголовку делаем сортировку. С учетом того, что письма мы не удаляем, а просто откладываем, можно "зверствовать" использовать невменяемые на первый взгляд RBL-системы, и поглядывая сначала несколько дней в папку spam принять решение о том, какие же из них действительно невменяемы. У меня сейчас установлена проверка по следующим листам: list.dsbl.org, bl.spamcop.net, combined.njabl.org, cbl.abuseat.org, dul.dnsbl.sorbs.net, brazil.blackholes.us, cn-kr.blackholes.us, argentina.blackholes.us. Возможно, какие-то из них скорее мертвы, чем живы, но похоже что работают таки нормально - анализ содержимого папки spam на неделю говорит именно об этом.

2. Можно делать blacklisting по маске хостнейма. Понятное дело, что *-*-*-*.rr.com - хорошая маска. Кроме нее поставил еще например *vc.shawcable.net, *.dsl.*, *.pool.*, *.dip.*, *.asdl.*, *.adsl-dhcp.*, *.dynamic.* и даже *-*-*-* и *.*.*.*.*.*.*.! Последние две поставил исключительно смеха ради, но... они работают и никто по ним ошибочно не влетел. Интересно.

3. Выдаем initial SMTP prompt с задержкой в несколько секунд. Почтовый сервер livejournal ждет 8 секунд, правда, а потом бросает коннект - знайте. Я играюсь числами в 3 и 5 секунд. Говорят, если поставить 5 секунд, то lj тоже может не присылать некоторые комменты, но 3 секунды работает вроде хорошо. Впрочем, я сам не увидел проблем и с задержкой в 5 секунд. Идея проста - спамеры открывают коннект и ничего не дожидаясь с той стороны фигачат в соединение SMTP-команды. CGP посмотрит на все это безобразие и скажет, что если ты не дождался SMTP prompt - до свидания, своболен. Впрочем, ошибку выдаст некритичную - 477. Также многие спамеры часто бросают соединение, если не дождались prompt на какое-то время. В общем, работает отлично.

4. Проверяем в процессе SMTP-сессии количество ошибок, которые сделала та сторона в SMTP-протоколе и делаем blacklist на какое-то время, когда количество ошибок превысило установленное число. В общем, если тебе впаривают 10 раз rcpt to на несуществующие адреса, то коннект надо бросить и больше почту с такого IP какое-то время не принимать - тут все понятно.

5. Еще нужно использовать verify return path и verify helo - это очевидно. Что-то сервер просто сразу пошлет нафиг, а о ком-то стенет думать хуже.

6. Нужно использовать spamtraps. Я собрал по логам адреса, которые раньше у меня были, но их уже нет, и объявил их "ловушками" - spamtraps. Обычно спамеры готовят пачку мусора на целый домен и потом пытаются за раз влить его в одной сессии с многими rcpt to. Если хоть один из этих rcpt to будет роутиться как spamtrap, письмо не будет принято. Хорошая тема - написать на сайте невидимых бредовых адресов и объявить их потом в роутере как ловушки. Работает на "ура".

7. Почта на несуществующие в домене адреса. Подумалось, а так ли она мне нужна-то... И была убита - <*@kip.ru> = error


Вот как-то так.
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 6 comments