The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Установка и настройка SpamAssassin на сервере с sendmail и cyrus-imap. (smap mail imap sendmail)


<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>
Ключевые слова: smap, mail, imap, sendmail,  (найти похожие документы)
From: Алексей Цыбань <leshats@od.anything3d.com. Newsgroups: email Date: Mon, 23 May 2005 18:21:07 +0000 (UTC) Subject: Установка и настройка SpamAssassin на сервере с sendmail и cyrus-imap. Введение Недавно одим пользователь пожаловался мне, что получает в день 150-200 спамерских писем и 10-20 писем по работе. В таком случае без работоспособной системы фильтрации спама обойтись невозможно. В данной статье описывается установка системы SpamAssassin на сервер, на котором уже работает связка sendmail + cyrus-imap. Для связи sendmail и spamassassin будет использован spamass-milter SpamAssassin проделывает над полученным почтовым сообщением ряд тестов. Каждый тест меет свою весовую оценку. Оценки всех положительных тестов складываются и результат сообщается пользователю. Перечень всех тестов и оценок можно посмотреть здесь http://spamassassin.apache.org/tests_3_0_x.html Список всех положительных тестов помещается в заголовок сообщения X-Spam-Report. Система настраивается так, чтобы пропускать всю почту, за исключением вирусов. Спам только помечается и каждый пользователь сам решает, что с ним делать дальше. Установка Рекомендуется sendmail 8.12.+. Sendmail должен быть собран с поддержкой milter. Описанные команды и файлы конфигурации верны для SpamAssaissin 3.0.3 Я устанавливал SpamAssassin в Gentoo и в Slackware. Для Gentoo все просто: emerge -pv mail-filter/spamassassin И поправим /etc/conf.d/spamd: SPAMD_OPTS="-m 30 -u nobody" PIDFILE="/etc/mail/spamassassin/spamd.pid" И еще добавим spamd в автозапуск: rc-update add spamd default Для Slackware воспользуемся CPAN: perl -MCPAN -e shell [as root] o conf prerequisites_policy ask install Digest::SHA1 install HTML::Parser install Storable install MIME::Base64 install DB_File install Net::DNS install Mail::SpamAssassin quit И добавим в стартовые скрипты где-то перед sendmail: /usr/bin/spamd -m 20 -u nobody -r /etc/mail/spamassassin/spamd.pid -d Установка spamass-milter. Для Gentoo все опять не сложно: emerge -pv spamass-milter rc-update add spamass-milter default Файл конфигурации оставляем как есть. Для Slackware скачаем spamass-milter отсюда http://savannah.nongnu.org/projects/spamass-milt/ ./configure --prefix=/usr make su make install И в стартовые скипты между spamd и sendmail добавляем. /usr/sbin/spamass-milter -p /var/run/spamass-milter.sock -f Теперь правим /etc/spamassassin/local.cf. Рекомендую прочитать документацию по нему. Мой вариант привожу ниже. trusted_networks 192.168/16 127/8 trusted_networks 127. whitelist_from localhost #Добавляет строку к теме если письмо признано спамом. rewrite_header Subject ****SPAM*(_SCORE_)**** #Добавляет развернутый рапорт в заголовок X-Spam-Report add_header all Report _REPORT_ #Порог срабатывания для принятия решения спам - не спам. Для почтового #сервера разработчики рекомендуют 8.0 - 10.0. Для отднльных пользователей #можно использовать 5.0 и даже 4.0 required_hits 8.0 report_safe 0 use_bayes 1 bayes_auto_learn 1 skip_rbl_checks 0 #DCC Razor и прочие я пока не использую, и без них хорошо работает use_razor2 0 use_dcc 0 use_pyzor 0 use_auto_whitelist 1 auto_whitelist_path /etc/mail/spamassassin/auto_whitelist bayes_path /etc/mail/spamassassin/bayes Поправим права: chown nobody /etc/mail/spamassassin В sendmail.mc добавляем: INPUT_MAIL_FILTER(`clmilter',`S=local:/var/clamav/clmilter.sock, F=T, T=C:1m;S:5m;R:5m;E:1h') INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass-milter.sock, F=T, T=C:15m;S:4m;R:4m;E:10m') define(`confMILTER_MACROS_CONNECT',`b, j, _, {daemon_name}, {if_name}, {if_addr}') Clmilter - это проверка на вирусы через Clamav. Пересобираем sendmail.mc. Запускаем spamd, spamass-milter. Проверяем, что они запустились. Рекомендую добавить к ключам spamd -D и внимательно прочитать его отладочные логи. Логи его по умолчанию попадают в maillog. Если все в порядке, перезапускаем sendmail. Внимательно смотрим в maillog, убеждаемся, что почта ходит. Убеждаемся, что SpamAssassin работает. Рекомендую проверить права на файлы bayes_* в /etc/mail/spamassassin. Пользователь nobody должен иметь права на запись. Cyrus Для того, чтобы все желающие могли поучаствовать в обучении байесовского фильтра создаем на IMAP сервере две общие папки. IS_Spam и NOT_Spam cyradm --user cyrus localhost cm IS_Spam sam IS_Spam anyone write cm NOT_Spam sam NOT_Spam anyone write В файл /root/.fetchmailrc добавляем: poll localhost proto IMAP user nobody pass nobodypass А в crontab пользователя root: 20 * * * * /usr/bin/fetchmail -a -s -n --folder ForSpam -m '/usr/bin/sa-learn --spam' -u nobody localhost 30 * * * * /usr/bin/fetchmail -a -s -n --folder NOT_Spam -m '/usr/bin/sa-learn --ham' -u nobody localhost Для автоматического перемещения спама в папку SPAM каждому желающему можно настроить sieve скрипт. Рекомендую воспользоваться SquirrelMail веб-интерфейсом к почте и плугином для управления sieve к нему. Очень удобный и понятный интерфейс. Сам sieve скрипт для выглядит примерно так: require ["fileinto"]; if header :contains "X-Spam-Level" "******" { fileinto "INBOX.SPAM"; stop; } Фильтровать удобнее всего по заголовку X-Spam-Level. В нем количество звездочек соответствует целой части спам-оценки. В моем ведении оказались два почтовых сервера разных организаций, которые являлись релеями друг для друга. SpamAssassin стоял на обоих и в логах часто стали появляться строки типа этой: Milter change: header X-Spam-Level: from ************* to * Естественно, спам с сильно пониженной оценкой проходил через фильтры и вызывал неудовольствие пользователей. Разбор логов показал, что приходящий с нормального релея спам проходит проверки на DNSBL, из-за чего общая спам-оценка может сильно понизится. Пришлось добавить в команду запуска spamass-milter ключ -i <ip-addr>. Теперь почтовый сервер не перепроверяет на спам почту, приходящую от своего релея. /usr/sbin/spamass-milter -p /var/run/spamass-milter.sock -f -i IP.OFF.2ND.REL Для взаимной синхронизации баз байесовского фильтра между серверами я использовал команды в crontab: 20 1 * * * /usr/bin/fetchmail -a -s -n --folder ForSpam -m '/usr/bin/sa-learn --spam' -u nobody remote.server 30 1 * * * /usr/bin/fetchmail -a -s -n --folder NOT_Spam -m '/usr/bin/sa-learn --ham' -u nobody remote.server И запись в файл /root/.fetchmailrc: poll remote.server proto IMAP user nobody pass nobodypass keep Хотя при большом количестве спама, а главное, при большой активности пользователей, такой подход может привести к заметному росту трафика между серверами. В описанной конфигурации спам-оценку больше 5.0 получает около 80% спама. Ложные срабатывания бывают очень редко.

<< Предыдущая ИНДЕКС Правка src Установить закладку Перейти на закладку Следующая >>

Обсуждение [ RSS ]
  • 1.1, diekabar (??), 12:01, 24/05/2005 [ответить]  
  • +/
    Кто-нибудь делал связку Sendmail+Kaspersky+Spamassassin поделитесь опытом...как быть если Lmtp берет не из очереди, а на прямую с сендмайла
     
     
  • 2.2, diekabar (??), 12:03, 24/05/2005 [^] [^^] [^^^] [ответить]  
  • +/
    забыл добавить cirus-imap
     
  • 2.3, Аноним (3), 13:54, 24/05/2005 [^] [^^] [^^^] [ответить]  
  • +/
    прекрасно работает связка:
    sendmail + kav + kavmilter + spamassasin + spamass-milter
     

  • 1.4, korrado (?), 16:09, 07/12/2005 [ответить]  
  • +/
    У меня стоит Postfix + Amavisd-new + ClamAV + Spamassassin, работает лучше всех :-)

    http://www.opennet.dev/tips/info/813.shtml

     
  • 1.5, seagull (?), 17:55, 28/09/2006 [ответить]  
  • +/
    у меня стоит связка
    sendmail + cyrus-sasl2 + mysql + courier-imap-*/authdaemond + drweb + clamav + SpamAssasin и все работает без глюков в формате maildrop, что очень удобно.

    SMTP: GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
    POP3: PLAIN LOGIN CRAM-MD5 CRAM-SHA1 CRAM-SHA256 +SSL
    в базе юзеры, домены/адреса/маршрутизация,пермишены и квоты, логи.

    считаю лучшей связкой.

     
     
  • 2.6, PeNDaL (ok), 14:54, 17/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    Возникла проблемка с SpamAssassin. При фильтрации, не спам письма, бывет, но очень редко, попадают на спам ящик. Большая часть пользователей не замечают этого, а некоторые личности требуют, чтоб вся почта, спам это или нет валилась им на ящик. Вот и всего этого встает вопрос - Можно ли сделать избирательное фильтрование почты, для одних ящиков фильтруется для других нет? Возможно ли такое?

    За ранее благодарен!


     
     
  • 3.7, PeNDaL (ok), 20:41, 17/03/2007 [^] [^^] [^^^] [ответить]  
  • +/
    whitelist_to xxxx@domen.ru

     

  • 1.8, zerozzz (??), 12:28, 29/11/2010 [ответить]  
  • +/
    а мне вот понравилась статейка
    http://man.sprojects.ru/showpage.php?t=1008
     
  • 1.9, zersh (?), 17:40, 13/05/2014 [ответить]  
  • +/
    в статье небольшая путаница насчёт ящика для спама
    создаётся IS_Spam
    в кроне используется ForSpam
    --
    Ещё момент, данные данные ящики (IS_Spam,NOT_Spam) - можно подключить всем пользователям как общие папки. куда спам/не-спам письмо можно будет просто перетащить.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру