Скрещивание 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