FreeBSD + Postfix + DrWeb + Spamassasin

Скрещивание Postfix, DrWeb и Spamassasin на FreeBSD

Постараюсь написать как я все это прикрутил).
В принципе ничего трудного нет. Я не буду описывать как ставится Postfix, DrWeb, Spamassasin потмоу что много об этом написано в инете, да и если вы ставите из портов, то все должно встать без проблем.
Spamassasin потянет кучу чего, поэтому терпите.
У меня почта и антивирус работали гдето год, потом я решил прикрутить антиспам программу (Spamassasin). Можно было попробовать каспера прикрутить, но он стоит как крыло боинга.
И так считаем, что вы все поставили.
Postfix и drweb я прикрутил согласно инструкции без проблем. Все что надо было это подправить master.cf заменив:
smtp inet n - n - - smtpd
на
smtp inet n - n - - smtpd -o content_filter=filter:dummy
и добавить в конец файла
filter unix - n n - - pipe
flags=R user=drweb argv=/usr/local/drweb/drweb-postfix --conf=/usr/local/etc/drweb/drweb_postfix.conf -f ${sender} -- ${recipient}

в вашем случае пути к файлам могут быть другие.
так же должен быть создан пользователь
drweb:*:1147:1149:User &:/var/drweb:/bin/sh
запускаем все это хозяйство и смотреим лог, если ошибок нет, то у нас все работает и переходим к настройки антиспама.
При установке spamassasin должен был создаться пользователь
spam:*:999:999:Spam Filter user:/usr/local/etc/mail/spamassassin/:/sbin/nologin
В наборе с drweb уже шел скрипт для прикрутке spamassasin, поэтому велосипед не изобретаем и используем этот скрипт, лежит он в папке /usr/local/drweb/doc/postfix/example.with_spamc/ и называется filters.sh
этот файл я просто переписал в директорию [code]/usr/local/drweb[/code] и подправил master.cf заменив
flags=R user=drweb argv=/usr/local/drweb/drweb-postfix --conf=/usr/local/etc/drweb/drweb_postfix.conf -f ${sender} -- ${recipient}
строкой
flags=R user=drweb argv=/usr/local/drweb/filters.sh --conf=/usr/local/etc/drweb/drweb_postfix.conf -f ${sender} -- ${recipient}
запустил spamd из /usr/local/etc/rc.d, перегрузил postfix и начал смотреть логи. У мня сразу стало нормально работать.
Настроил под себя файл конфигурации spamassasin /usr/local/etc/mail/spamassassin/local.cf.
Вот, что у меня в нем:

rewrite_subject 1
subject_tag ***SPAM***:

#
trusted_networks 127.0.0.1
trusted_networks 192.168.0.0
#
required_hits 5
use_bayes 1
skip_rbl_checks 1
report_safe 0
use_razor2 0
use_dcc 0
use_pyzor 0
#
ok_languages ru en
ok_locales ru en
#report_charset windows-1251
report_charset koi-8r
lang ru
#
score FROM_ILLEGAL_CHARS 1.1
score SUBJ_ILLEGAL_CHARS 1.3
score HEAD_ILLEGAL_CHARS 1.5
score HABEAS_SWE 0.0
#
bayes_path /var/drweb/.spamassassin/bayes
#
bayes_auto_learn 0
bayes_auto_learn_threshold_nonspam 0.5
bayes_auto_learn_threshold_spam 10.0
#
add_header spam Flag _YESNOCAPS_
add_header all Status _YESNO_, hits=_HITS_ required=_REQD_ tests=_TESTS_ autolearn=_AUTOLEARN_ version=_VERSION_
add_header all Level _STARS(*)_
add_header all Report _REPORT_

я в нем указал, что надо использовать базы bayes, еоторые у меня находятся в папке /var/drweb/.spamassassin. Базы должны принадлежать пользователю drweb иначе ничего хорошего не получится).
Отключил автообучение bayes, лучше я это сделаю вручную, а то вы так не получите ни одного письма).
Поставил при какой оценки считать письмо спамом, у меня это 5, для начала можно это значение увеличить.
Также настроено перезаписывать тему, теперь письмо которое определилось как спам добавляется в теме строчка ***SPAM***.
Также для работы bayes необходимо скормить spamassasin минимум 200 хороших писем и 200 спам-писем. Обучение производится с помощью команды sa-learn.
Например:
хорошие письма
sa-learn --ham /path/to/dir/with/good/letters
для спам писем
sa-learn --spam /path/to/dir/with/spam/letters
Я пользуюсь почтовым клиентом The Bat, поэтому я выделил все спам письма и сделал их экспорт в формате .eml, закачал на сервер и скормил spamassasin.
После скармливания я делаю sa-learn —rebuild, перезапускаю spamd (не уверен что надо это делать). Не забывайте после перезагрузки spamd, проверить кому принадлежал базы bayes.
Можно посмотреть сколько и чего у вас закачано:
%sa-learn --dump magic
0.000 0 2 0 non-token data: bayes db version
0.000 0 1274 0 non-token data: nspam
0.000 0 251 0 non-token data: nham
0.000 0 118323 0 non-token data: ntokens
0.000 0 1014137321 0 non-token data: oldest atime
0.000 0 1114176196 0 non-token data: newest atime
0.000 0 1114176213 0 non-token data: last journal sync atime
0.000 0 0 0 non-token data: last expiry atime
0.000 0 0 0 non-token data: last expire atime delta
0.000 0 0 0 non-token data: last expire reduction count

Гдето через месяца 2 я настроил procmail так, чтобы письма с пометкой в теме ***SPAM*** сбрасывались в другой почтовый ящик и просто периодически его просматриваю, или просто сразу очищаю)

P.S. Я надеюсь, что статья хоть както поможет вам. Честно сказать, я пишу наверное не очень хорошо, но если вдруг что не понятно, то задавайте вопросы, я постараюсь ответить и помочь. Если кто знает по этой теме больше, то добавляйте или пишите другие статья, я готов все выложитьи указать вас как автора.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Проверка знаний * Лимит времени истёк. Пожалуйста, перезагрузите CAPTCHA.