пятница, ноября 09, 2007

Postgrey, борьба со спамом продолжается

Использованы материалы рассылки freebsd@opennet.ru, а также статья
http://gate.udec.ntu-kpi.kiev.ua/~bat/exp/about-spam.html


Postgrey - Postfix Greylisting Policy Server (сервер на Perl для организации серых списков в postfix)

Принцип действия серых списков основан на тактике рассылки спама. Как правило, спам рассылается в очень короткое время.
Работа серого списка заключается в намеренной задержке писем на некоторое время. При этом адрес и время пересылки заносится в базу данных серого списка. Если удалённый компьютер является настоящим МТА, то он согласно RFC2821, должен сохранить письмо в очереди и повторять пересылку в течение пяти дней. Спам-боты, как правило, писем в очереди не сохраняют, поэтому спустя непродолжительное время, прекращают попытки переслать письмо. Экспериментальным путём установлено, что в среднем время рассылки спама составляет чуть больше часа.
При повторной пересылке письма с этого же адреса, если с момента первой попытки прошло необходимое количество времени, Ваш МТА примет его. При этом IP-адрес отправляющего МТА, электронные адреса отправителя и получателя будут внесены в белый список на достаточно длительное время, после чего письма будут приниматься без задержек.

Ставим из портов /usr/ports/mail/postgrey
В /etc/rc.conf добавим

postgrey_enable="YES"

Вызов справки perldoc postgrey
В файл /usr/local/etc/postfix/main.cf в параметр smtpd_recipient_restrictions
добавим check_policy_service inet:127.0.0.1:10023 сразу после reject_unauth_destination
Например так

smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination, check_policy_service inet:127.0.0.1:10023

Есть еще два файла
/usr/local/etc/postfix/postgrey_whitelist_clients Сюда заносим доверенные домены, почта с них не будет заноситься в серые списки
/usr/local/etc/postfix/postgrey_whitelist_recipients Сюда заносим свои адреса, почта на них не проваряется postgrey
Перегружаем postfix и смотрим tail -f /var/log/maillog

Да еще в cron отчет о проделанной работе за вчера на мыло админу

#!/bin/sh

/usr/bin/bzcat /var/log/maillog.0.bz2 | \
/usr/local/sbin/postgreyreport --dbdir=/var/db/postgrey --nosingle_line \
--check_sender=mx,a \
--separate_by_subnet=":=============================================\n" \
| /usr/bin/mail -s "postgreyreport" postmaster@mydomen.com -F postgrey



Настройки по умолчанию я не менял, задержка стоит 5 мин.
Эффективность меня поразила.



Обсудить сообщение можно в форуме admins.arg.su

6 комментариев:

Анонимный комментирует...

Ништячёк! Большое спасибо!!!

Анонимный комментирует...

Postgrey... хорошо конечно.... Работал он у меня недели 2-3. Но есть одно большое НО, по моему мнению: хорошо все работает, если ты знаешь, с кем у тебя компания переписывается, а если нет? И всегда ли почтовик отправителя перешлет повторно исходное сообщение? По опыту эксплуатации: не всегда. Пример: почтовик obninsk.com не пересылал ни разу,а объеянить бухгалтерам почему почту получить не могут - проблема. То есть через два дня, когда к тебе обращаются, типа, что за лажа, начинаешь шарить в логах дабы занести в postgrey_whitelist_clients MTA отправителя ну проч. неприятные вещи.
А потом, всегда ли отправка идет с MX. Нет...Пример:

dig mail.ru mx
.....
mail.ru. 421 IN MX 10 mxs.mail.ru.
....

Заносим в postgrey_whitelist_clients запись о mxs.mail.ru...И что же..
А ничего, т .к. отправляется с mx48.mail.ru, mx40.mail.ru ну и т.д...
Короче, пока отказался..А жаль...

Анонимный комментирует...

Перечисли подсети mail.ru и все будет в шоколаде.

Анонимный комментирует...

Отказался по той же причине, что и выше написал автор. Почтовики далеко не все повторы делают, и ситуация с mail.ru тоже печальная. Whitelist не понимает маску *.mail.ru а вносить все руками неохота.

Evgenii комментирует...

Я внёс просто mail.ru - работает.
Но сам тоже не уверен, что оставлю Postgrey.

Рамиль комментирует...

Для тех кто сомневается в использовании postgrey рекомендую посмотреть на Maia.
Вот статейка на эту тему: Установка связки Postfix, MySQL, SpamAssassin, Maia в FreeBSD.