Версия 14:34, 7 сентября 2009 (править) Renton (Обсуждение | вклад) ← К предыдущему изменению |
Текущая версия (14:24, 24 марта 2010) (править) (отменить) Rin (Обсуждение | вклад) |
Строка 1: |
Строка 1: |
- | == Общие сведения == | + | #REDIRECT [[Эффективная борьба со спамом на хостинге 1Gb.ua]] |
- | | + | |
- | Статья предназначена для системных администраторов или опытных технических специалистов, и дает представления о возможности реализации и совмещения встроенной системы фильтрации спама хостинга 1Gb.ru со своей собственной, используя при этом только ресурсы хостинга. | + | |
- | | + | |
- | Те, кто хоть раз озадачивался проблемой получения спама в свой почтовый ящик знают, что на хостинге 1Gb.ru существует [https://www.1gb.ru/services_spamfilter.php спам-фильтр], включаемый персонально для каждого из ящиков в личном кабинете в разделе <code>/Фильтрация нежелательной почты/</code>. | + | |
- | Из плюсов встроенного фильта можно отметить: | + | |
- | * управление через web-интерфейс; | + | |
- | * простота управления; | + | |
- | * белые/черные списки; | + | |
- | * настраиваемые простые контекстные фильтры. | + | |
- | | + | |
- | Минусы: | + | |
- | * Отсутсвие "весов" при оценке заголовков, содержимого письма; | + | |
- | * Отсутсвие байесовой фильтрации. | + | |
- | | + | |
- | Поэтому под эффективной фильтрацией мы будем понимать не хороший спам-фильтр на стороне сервера, а их '''совокупность''' или '''комплекс мер''' применяемых для отсеивания нежелательной почты. | + | |
- | | + | |
- | В качестве дополнительного фильтра мы будем применять популярный пакет [http://spamassassin.apache.org/ 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 | + | |
- | | + | |
- | == Настройка == | + | |
- | | + | |
- | * Настройка окружения, в конец файла <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" - настройка языка. | + | |
- | "RAZOR2" - настройка cетевой системы фильтрации, основанной на сравнении шаблонов писем. | + | |
- | "BLACK LISTS" - включамем проверку отправителя в различных блок-листах. | + | |
- | "AWL" - включение системы AutoWhitelist, ведущей трэкинг отправителей, IP адресов. | + | |
- | "BAYES" - параметры автообучения фильтрации Байеса. | + | |
- | "PYZOR" - еще одна система обнаружения спама, на основе сравнения идентификаторов письма. | + | |
- | "DCC" - аналогично предыдущей. | + | |
- | | + | |
- | Для работы с сетью 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/* | + | |