null

Прикручивание Spamassassin'a к Exim'у

Допустим, что у Вас уже установлен exim на solaris'e.

Устанавливаем Spamassasin с blastwave.org(так бытрее).

pkgutil -i spamassasin

Правим конфиг:

vi /opt/csw/etc/spamassassin/local.cf

вставляем в конфиг вот такую штуку:

 

#config begin

 

#переписать заголовок

rewrite_header Subject *****SPAM*****

 

# Создать новый отчёт и присоединить его к сообщению, вместо того, чтобы править сообщение

report_safe 1

 

# Сообщения, пришедшие отсюда спамом не считаются

trusted_networks 192.168.2.0/24

 

# Порог, после которого сообщения считаются спамом

required_score 6.0

 

# Использование классификатора Байеса

use_bayes 1

# Автообучение

bayes_auto_learn 1

# hapax – это слово/токен, встречающееся только один раз. Лучше поставить 1.

bayes_use_hapaxes 1

#путь до базы

bayes_path /opt/csw/etc/spamassassin/bayes/bayes

# классификатор не активирутеся, пока не обработает как минимум по 50 писем каждого класса

bayes_min_ham_num 50

bayes_min_spam_num 50

 

ok_locales ru en

 

#config end

 

Создаём скрипт для запуска spamd:

 

case "$1" in

start)

/opt/csw/bin/spamd -D -d -u exim \ # Если нехотите большого количества информации по debug'у, уберите ключ -D

--siteconfigpath=/opt/csw/etc/spamassassin && echo -n ' spamd'

;;

stop)

spamdpid=`ps -e | grep spamd | grep -v grep | grep -v sh | \

awk '{ print $1 }'`

if [ "$spamdpid" != "" ]; then

kill $spamdpid > /dev/null 2>&1

echo -n " spamd"

fi

;;

*)

echo "Usage: `basename $0` {start|stop}" >&2

;;

esac

exit 0

 

 

Необходимо дать права на запись пользователю, от имени которого будет работать spamd (в нашем случае – это exim)

#chown exim /opt/csw/etc/spamassassin

#chmod 766 /opt/csw/etc/spamassassin

Далее нужно создать базы Байеса:

#sa-learn –sync

Учить отличать spamassassin спам от неспама нужно так:

Кладём спам в /home/vmail/spam/spam_new и неспам в /home/vmail/spam/ham_new

#sa-learn –spam /home/vmail/spam/spam_new/

#sa-learn –ham /home/vmail/spam/ham_new/

 

ВАЖНО: При сортировке спам/хам обязательно нужно занять непредвзятую позицию... Спам-хам делится по СПОСОБУ ДОСТАВКИ ИНФОРМАЦИИ и ЕЕ ПРЕПОДНЕСЕНИЯ, НО НИКАК НЕ ПО СОДЕРЖАНИЮ!

 

Правим конфиг exim'a

В раздел MAIN CONFIGURATION SETTINGS:

spamd_address = 127.0.0.1 783

 

В раздел ACL CONFIGURATION:

 

warn message = X-Spam-Score: $spam_score ($spam_bar)

   hosts = !+relay_from_hosts

   spam = exim:true

 

warn message = X-Spam-Status: Yes

   spam = exim:true

   condition = ${if >{$spam_score_int}{70}{true}{false}}

 

warn message = X-Spam-Flag: Yes
   condition = ${if >={$spam_score_int}{50}{1}{0}}  
   set acl_m9 = X-Spam-Flag: Yes

 

warn message = X-Spam-Report: $spam_report

   hosts = !+relay_from_hosts

   spam = exim:true

 

warn message = Subject: ***SPAM*** $h_Subject:

   hosts = !+relay_from_hosts

   spam = exim

 

deny message = This message scored $spam_score spam points.

   spam = exim:true

   hosts = !+relay_from_hosts

   condition = ${if >{$spam_score_int}{120}{1}{0}}

 

accept

 

В раздел ROUTERS CONFIGURATION:

central_filter:

#пользователь, использующийся при работе процесса доставки

user = vmail

#будет использоваться роутер redirect

driver = redirect

#файл системного фильтра

file = /home/vmail/filter

#фильтр не сипользуется, когда exim проверяет адреса

no_verify

#сохраняем копию исходящей почты

directory_transport = local_copy_outgoing

#содержимое файла будет интерпретироваться, как список фильтрующих инструкций

allow_filter

 

Содержимое файла /home/vmail/filter:

if

$h_X-Spam-Status: CONTAINS "Yes"

or

"${if def:h_X-Spam-Flag {def}{undef}}" is "def"

then

save /home/vmail/users/$local_part/.Spam/

finish

endif

Это язык системного фильтра exim'a. Этот фильтр перенапрвляет все сообщения с установленным флагом X-Spam-Flag и с полем X-Spam-Status, содержащим “Yes” в каталог /home/vmail/users/$local_part/.Spam/ .

Копирование спама из /home/vmail/users/$local_part/.Spam/ . В /home/vmail/spam/spam_new/ и обучение командой sa-learn целесообразно добавить в crontab.

 

 

О себе

В компании TUNE IT я занимаю должность инженера. В сферу моих профессиональных интересов входят следующие направления:

  • Администрирование UNIX систем (Solaris, Freebsd);
  • Обслуживание серверов и систем хранения данных фирмы Sun Microsystems;
  • Обеспечение безопасности вычислительных систем и сетей;
  • Виртуализация вычислительных инфраструктур.

Ничего не найдено. n is 0