|
Спам не так уж сильно донимает когда используешь фильтрацию на стороне клиента, и продолжительное время я держался в стороне от бесконечной борьбы замка и отмычки. Вместе с тем, терпение - штука не резиновая, и когда количество мусорных писем перевалило за несколько сотен в день, оно порвалось :) Итак, боремся со спамом на CENTOS4 с Sendmail. Предполагаем что вы хозяин хоста (root), пускай даже и виртуального. Перепробовал несколько подходов - и DNSBL, и SPAMASSASIN, и Greylisting. Оказалось, что лучше всего они работают в комбинации, как и следовало ожидать :) Вместе с тем, наиболее эффективен именно последний. Идея серого списка в общем-то тривиальна - отправитель должен продемонстрировать способность отправить то же самое сообщение с того же самого адреса повторно. Оказывается, соответствовать этому требованию тем сложнее, чем более серьезного масштаба рассылку делаешь. Фактически, большинство сетей зомби, построенных из зараженных вирусами ПК ничего не подозревающих домохозяек, не предусматривают возможность повторной отправки письма, тем более в привязке конкретного адресата к конкретному зомби. В общем, хватит теории. Википедия в помощь :)
Greylist У меня центос 4 Покурил предварительно ман отсюда http://wiki.centos.org/HowTos/postgrey#head-190b82868d2d30fae11b3d1670d1a4716320bf36 и отсюда http://wiki.centos.org/AdditionalResources/Repositories/RPMForge?action=show&redirect=Repositories%2FRPMForge Решил использовать milter-greylist как практически законченное решение, не требующее особых плясок с бубном :) 1. Подключаем RPMForge yum install yum-plugin-priorities wget http://dag.wieers.com/packages/rpmforge-release/rpmforge-release-0.3.6-1.el4.rf.i386.rpm rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt rpm -i rpmforge-release-0.3.6-1.el4.rf.*.rpm yum check-update 2. Ставим мильтер yum install milter-greylist 3. Обновляем конфиг sendmail.mc INPUT_MAIL_FILTER(`greylist',`S=local:/var/milter-greylist/milter-greylist.sock')dnl define(`confMILTER_MACROS_CONNECT', `j, {if_addr}')dnl define(`confMILTER_MACROS_HELO', `{verify}, {cert_subject}')dnl define(`confMILTER_MACROS_ENVFROM', `i, {auth_authen}')dnl define(`confMILTER_MACROS_ENVRCPT', `{greylist}')dnl 4. Настраиваем систему: Важно не забыть записать greylist в define(`confINPUT_MAIL_FILTERS', `greylist,smtp-vilter') и пересобрать конфиг sendmail. Еще нужно не забыть вписать симлинки в /etc/rc.d и не забыть в /etc/mail/greylist.conf включить acl greylist default, можно покрутить параметры delay и autowhite Вот что получается по итогу: Новые отправители получают отказ 220 bortnik.virtual.vps-host.net ESMTP Sendmail 8.13.1/8.13.1; Sat, 9 May 2009 20:08:44 +0300 ehlo tim 250-bortnik.virtual.vps-host.net Hello 29-92-133-95.pool.ukrtel.net [95.133.92.29], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-STARTTLS 250-DELIVERBY 250 HELP mail from:
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
250 2.1.0
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
... Sender ok rcpt to:
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
451 4.7.1 Greylisting in action, please come back later Собирается база /var/milter-greylist/greylist.db # # greylisted tuples # # Sender IP Sender e-mail Recipient e-mail Time accepted 95.133.92.29
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
1241890754 # 2009-05-09 20:39:14
Курим бамбук delay минут, и пробуем еще раз. Если проходит, значит все ок. Спам кончился :) 220 bortnik.virtual.vps-host.net ESMTP Sendmail 8.13.1/8.13.1; Sat, 9 May 2009 20:47:35 +0300 ehlo tim 250-bortnik.virtual.vps-host.net Hello 29-92-133-95.pool.ukrtel.net [95.133.92.29], pleased to meet you 250-ENHANCEDSTATUSCODES 250-PIPELINING 250-8BITMIME 250-SIZE 250-DSN 250-ETRN 250-AUTH LOGIN PLAIN 250-STARTTLS 250-DELIVERBY 250 HELP mail from:
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
250 2.1.0
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
... Sender ok rcpt to:
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
250 2.1.5
Этот e-mail адрес защищен от спам-ботов, для его просмотра у Вас должен быть включен Javascript
... Recipient ok data 354 Enter mail, end with "." on a line by itself subject:test subj:) . 250 2.0.0 n49HlZBX026392 Message accepted for delivery
|