FreeBSD + Postfix + DrWeb + Spamassasin

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


Постараюсь написать как я все это прикрутил).
В принципе ничего трудного нет. Я не буду описывать как ставится Postfix, DrWeb, Spamassasin потмоу что много об этом написано в инете, да и если вы ставите из портов, то все должно встать без проблем.
Spamassasin потянет кучу чего, поэтому терпите.
У меня почта и антивирус работали гдето год, потом я решил прикрутить антиспам программу (Spamassasin). Можно было попробовать каспера прикрутить, но он стоит как крыло боинга.
И так считаем, что вы все поставили.
Postfix и drweb я прикрутил согласно инструкции без проблем. Все что надо было это подправить master.cf заменив:

Код
1 smtp      inet  n       —       n       —       —      smtpd

на

Код
1 smtp      inet  n       —       n       —       —      smtpd -o content_filter=filter:dummy

и добавить в конец файла

Код
1
2
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
этот файл я просто переписал в директорию

Код
1 /usr/local/drweb

и подправил master.cf заменив

Код
1 flags=R user=drweb argv=/usr/local/drweb/drweb-postfix —conf=/usr/local/etc/drweb/drweb_postfix.conf -f ${sender} — ${recipient}

строкой

Код
1 flags=R user=drweb argv=/usr/local/drweb/filters.sh —conf=/usr/local/etc/drweb/drweb_postfix.conf -f ${sender} — ${recipient}

запустил spamd из

Код
1 /usr/local/etc/rc.d

, перегрузил postfix и начал смотреть логи. У мня сразу стало нормально работать.
Настроил под себя файл конфигурации spamassasin

Цитата
/usr/local/etc/mail/spamassassin/local.cf

.
Вот, что у меня в нем:

Код
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
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, еоторые у меня находятся в папке

Код
1 /var/drweb/.spamassassin

. Базы должны принадлежать пользователю drweb иначе ничего хорошего не получится).
Отключил автообучение bayes, лучше я это сделаю вручную, а то вы так не получите ни одного письма).
Поставил при какой оценки считать письмо спамом, у меня это 5, для начала можно это значение увеличить.
Также настроено перезаписывать тему, теперь письмо которое определилось как спам добавляется в теме строчка ***SPAM***.
Также для работы bayes необходимо скормить spamassasin минимум 200 хороших писем и 200 спам-писем. Обучение производится с помощью команды sa-learn.
Например:
хорошие письма

Код
1 sa-learn —ham /path/to/dir/with/good/letters

для спам писем

Код
1 sa-learn —spam /path/to/dir/with/spam/letters

Я пользуюсь почтовым клиентом The Bat, поэтому я выделил все спам письма и сделал их экспорт в формате .eml, закачал на сервер и скормил spamassasin.
После скармливания я делаю sa-learn —rebuild, перезапускаю spamd (не уверен что надо это делать). Не забывайте после перезагрузки spamd, проверить кому принадлежал базы bayes.
Можно посмотреть сколько и чего у вас закачано:

Код
1
2
3
4
5
6
7
8
9
10
11
%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. Я надеюсь, что статья хоть както поможет вам. Честно сказать, я пишу наверное не очень хорошо, но если вдруг что не понятно, то задавайте вопросы, я постараюсь ответить и помочь. Если кто знает по этой теме больше, то добавляйте или пишите другие статья, я готов все выложитьи указать вас как автора.

По материалам: yakimchuk.ru

Запись опубликована в рубрике *Unix,*Linux, FreeBSD, Postfix. Добавьте в закладки постоянную ссылку.

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

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

Я не спамер This plugin created by Alexei91