Есть вопрос?
Зайди на форум

Поиск на сайте: Advanced

Denix - новый дистрибутив Linux. Русификация Ubuntu и установка кодеков

dkws.org.ua
Форум сайта dkws.org.ua
 
Главная    ТемыТемы    АльбомАльбом    РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

Установка и настройка SpamAssassin на сервере с sendmail и c

 
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> Сеть
 
Автор Сообщение
den

Старожил


Зарегистрирован: 31.01.2006
Сообщения: 13870
Откуда: Кировоград, Украина

СообщениеДобавлено: Пн Dec 11, 2006 7:04 pm    Заголовок сообщения: Установка и настройка SpamAssassin на сервере с sendmail и c
Ответить с цитатой

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%
спама. Ложные срабатывания бывают очень редко.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение dhsilabs@jabber.ru
Показать сообщения:   
Начать новую тему Ответить на тему    Список форумов dkws.org.ua -> Сеть Часовой пояс: GMT
Страница 1 из 1
 Главная страница сайта
 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
© Колисниченко Денис