Эффективная борьба со спамом на хостинге 1Gb.ru

Материал из 1GbWiki.

(Различия между версиями)
Перейти к: навигация, поиск
Версия 07:50, 16 мая 2011 (править)
182.23.159.22 (Обсуждение)
(Ссылки)
← К предыдущему изменению
Версия 15:50, 16 мая 2011 (править) (отменить)
140.109.72.21 (Обсуждение)
(Настройка)
К следующему изменению →
Строка 52: Строка 52:
$ make && make install && make clean && cd ~/opt/spamassassin && ln -s 3.2.5 current && cd $ make && make install && make clean && cd ~/opt/spamassassin && ln -s 3.2.5 current && cd
-== Настройка ==+That's a mold-breaker. Great tkhining!
- +
-* Настройка окружения.+
-В конец файла <code>~/.bashrc</code> добавляем строки:+
- export PERL5LIB=${PERL5LIB}:${HOME}/opt/spamassassin/current/lib64/perl5/site_perl/5.8.8+
- +
- alias sa-learn="$HOME/opt/spamassassin/current/bin/sa-learn"+
- alias razor-client="$HOME/perl/bin/razor-client"+
- alias razor-admin="$HOME/perl/bin/razor-admin"+
- +
-* Активируем SA через файл <code>~/.procmailrc</code> (ваш файл может быть другим):+
- HOME=/home/virtmail/ВАШ_ЛОГИН_ОТ_ЯЩИКА+
- ORGMAIL=$HOME/Mail/+
- MAILDIR=$ORGMAIL+
- DEFAULT=$MAILDIR+
- +
- LOGFILE=procmail.log+
- VERBOSE=yes+
- +
- :0+
- * ^X-Spam-Flag: YES+
- ${MAILDIR}.Junk/+
- +
- :0fw: spamassassin.lock+
- | $HOME/opt/spamassassin/current/bin/spamassassin+
- +
- :0+
- * ^Subject: \*\*\*\*\*SPAM\*\*\*\*\*+
- ${MAILDIR}.Junk_sa/+
- +
-* Теперь можно отправить тестовое письмо на ящик, и убедиться что SA работает:+
- $ less ~/Mail/procmail.log+
- ...+
- procmail: Locking "spamassassin.lock"+
- procmail: Executing ".../opt/spamassassin/current/bin/spamassassin"+
- ...+
- +
-=== Дополнительные настройки SA ===+
-SpamAssassin очень гибок в настройках и чтобы повысить качество фильтрации мы включим некоторые дополнительные модули.+
- $ cd ~/.spamassassin/ && ls -l+
- +
-* Редактируем файл <code>user_prefs</code>+
- # LANGUAGE OPTIONS+
- ok_locales ru en+
- +
- # RAZOR2+
- use_razor2 1+
- razor_config /home/virtmail/ВАШ_ЛОГИН_ОТ_ЯЩИКА/.razor/razor-agent.conf+
- +
- # BLACK LISTS+
- skip_rbl_checks 0+
- +
- # AWL+
- use_auto_whitelist 1+
- +
- # BAYES+
- use_bayes 1+
- bayes_auto_learn 1+
- bayes_auto_learn_threshold_spam 12.0+
- bayes_auto_learn_threshold_nonspam 0.1+
- +
- # PYZOR+
- use_pyzor 1+
- +
- # DCC+
- use_dcc 1+
- dcc_path /home/virtmail/ВАШ_ЛОГИН_ОТ_ЯЩИКА/opt/dcc/current/bin/dccproc+
- +
-"LANGUAGE OPTIONS" - настройка языка.<br />+
-"RAZOR2" - настройка cетевой системы фильтрации, основанной на сравнении шаблонов писем.<br />+
-"BLACK LISTS" - включамем проверку отправителя в различных блок-листах.<br />+
-"AWL" - включение системы AutoWhitelist, ведущей трэкинг отправителей, IP адресов.<br />+
-"BAYES" - параметры автообучения фильтрации Байеса.<br />+
-"PYZOR" - еще одна система обнаружения спама, на основе сравнения идентификаторов письма.<br />+
-"DCC" - аналогично предыдущей.<br />+
- +
-* Для работы с сетью Razor2, необходима регистрация:+
- $ razor-admin -register -user=ВАШ_E-MAIL_АДРЕС+
-В случае успешной регистрации, ответ будет примерно такой:+
- Register successful. Identity stored in /home ...+
- +
-Простой пример файла ~/.razor/razor-agent.conf+
- debuglevel = 3+
- identity = identity+
- ignorelist = 0+
- listfile_catalogue = servers.catalogue.lst+
- listfile_discovery = servers.discovery.lst+
- listfile_nomination = servers.nomination.lst+
- logfile = $HOME/razor-agent.log+
- logic_method = 4+
- min_cf = ac+
- razordiscovery = discovery.razor.cloudmark.com+
- rediscovery_wait = 172800+
- report_headers = 1+
- turn_off_discovery = 0+
- use_engines = 4,8+
- whitelist = razor-whitelist+
- +
-* Для работы DCC необходимо установить клиент:+
- $ cd ~/src && wget http://www.dcc-servers.net/dcc/source/dcc-dccproc.tar.Z+
- $ tar xfvz dcc-dccproc.tar.Z+
- $ cd dcc-dccproc-*+
- $ ./configure --disable-sys-inst --disable-server --disable-dccm --disable-dccifd --homedir=$HOME/opt/dcc/1.3.115 --bindir=$HOME/opt/dcc/1.3.115/bin+
- $ make && make install && make clean && cd ~/opt/dcc && ln -s 1.3.115 current && cd+
- +
-* Фильтр байеса начинает работать в том случае, если в его базе уже имеется какое-то количество проанализированных писем, по-умолчанию это 500.+
-Обучить его можно так. В папку .sa-learn-spam складываем письма, в .sa-learn-ham не спам. Тогда получается так:+
-* Для спама:+
- $ sa-learn --spam ~/Mail/.sa-learn-spam/cur/* && sa-learn --spam ~/Mail/.sa-learn-spam/new/*+
-* Для хороших писем:+
- $ sa-learn --ham ~/Mail/.sa-learn-ham/cur/* && sa-learn --ham ~/Mail/.sa-learn-ham/new/*+
== Статистика == == Статистика ==

Версия 15:50, 16 мая 2011

Общие сведения

Статья предназначена для системных администраторов или опытных технических специалистов, и дает представления о возможности реализации и совмещения встроенной системы фильтрации спама хостинга 1Gb.ru со своей собственной, используя при этом только ресурсы хостинга.

Те, кто хоть раз озадачивался проблемой получения спама в свой почтовый ящик знают, что на хостинге 1Gb.ru существует спам-фильтр, включаемый персонально для каждого из ящиков в личном кабинете в разделе /Фильтрация нежелательной почты/. Из плюсов встроенного фильта можно отметить:

  • управление через web-интерфейс;
  • простота управления;
  • белые/черные списки;
  • настраиваемые простые контекстные фильтры.

Минусы:

  • Отсутсвие "весов" при оценке заголовков, содержимого письма;
  • Отсутсвие байесовой фильтрации.

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

В качестве дополнительного фильтра мы будем применять популярный пакет SpamAssassin.


Установка SA

  • Через раздел кабинета /Расширенные IMAP ящики/ нужно переключить ящик в расширенный режим.
  • Зайти в ящик по SSH.
  • Создаем удобную структуру каталогов:
$ mkdir ~/opt ~/src/ && cd Mail && maildirmake .Junk_sa && maildirmake .sa-learn-ham && maildirmake .sa-learn-spam

В Junk_sa будут помещаться письма отфильтрованные SpamAssassin'ом, sa-learn-ham и sa-learn-spam будем складывать письма вручную для последующего обучения байесовского фильтра.

  • Установка программ (ссылки для загрузки и версии программ могут отличаться):
$ cd ~/src/ && $ wget http://www.sai.msu.su/apache/spamassassin/source/Mail-SpamAssassin-3.2.5.tar.bz2
$ tar xvfj Mail-SpamAssassin-3.2.5.tar.bz2
$ cd Mail-SpamAssassin-3.2.5
$ perl Makefile.PL PREFIX=$HOME/opt/spamassassin/3.2.5
What email address or URL should be used in the suspected-spam report
text for users who want more information on your filter installation?
(In particular, ISPs should change this to a local Postmaster contact)
default text: [the administrator of that system]
(можно указать свой e-mail адрес)
  • SA может написать, что не хватает некоторых модулей:
optional module missing: Mail::SPF
optional module missing: Encode::Detect

установим их в свой домашний каталог:

$ perl -MCPAN -e shell
cpan> install Mail::SPF
cpan> install Encode::Detect

Можно еще раз запустить:

$ perl Makefile.PL PREFIX=$HOME/opt/spamassassin/3.2.5

и убедиться, что SA ничего "не скажет" про вышеуказанные модули.

  • Компиляция и установка:
$ make && make install && make clean && cd ~/opt/spamassassin && ln -s 3.2.5 current && cd

That's a mold-breaker. Great tkhining!

Статистика

Грубые подсчеты, на обычном, не ролевом (support, info, sale и т.п.) ящике дают примерно такие результаты на 300 писем:

  • фильтр 1Gb.ru - 269
  • собственный SA - 30
  • пропущенный спам - 1

That saves me. Tnhaks for being so sensible!

Личные инструменты