Плагин dovecot-antispam для dovecot позволяет сделать обучение
спамофильтра более удобным: указав плагину имя директории со спамом, можно
автоматически обозначать почту как спам или не спам, перенося её в/из
этой директории соответственно. В данном статье рассматривается способ
организации связки MDA (maildrop), фильтра (crm114) и IMAP-сервера
(dovecot) для реализации этой возможности. В качестве базовой системы
рассматривается Debian 6.0 (squeeze).++ Установка
Установим необходимые пакеты штатным способом из репозитория (для
dovecot-antispam потребуется подключить репозиторий squeeze-backports
или взять версию из wheezy):
** dovecot
** dovecot-antispam
** crm114 (содержит почтовый фильтр)
** maildrop (или любой другой MDA, который Вы сумеете настроить должным
образом)
** mew-bin (для распаковки MIME-вложений)++ Настройка dovecot-antispam
Скопируйте шаблон настроек плагина из man dovecot-antispam в
/etc/dovecot/dovecot.conf или во включаемый файл настроек. Задайте путь
к исполняемому файлу mailreaver из состава crm114 и укажите имена папок
для спама, подозрительных на спам писем и папки удалённых сообщений.plugin {
# backend selection, MUST be configured first,
# there's no default so you need to set one of
# these options:
antispam_backend = crm114# semicolon-separated list of Trash folders (default unset i.e. none)
antispam_trash = Trash# semicolon-separated list of spam folders
antispam_spam = spam# semicolon-separated list of unsure folders (default unset i.e. none)
antispam_unsure = suspicious#===================
# crm114 plugin# mailreaver binary
antispam_crm_binary = /usr/share/crm114/mailreaver.crm# semicolon-separated list of extra arguments to dspam
# (default unset i.e. none)
antispam_crm_args = --fileprefix=%h/.crm114/# NOTE: you need to set the signature for this backend
antispam_signature = X-CRM114-CacheID
}Включите плагин антиспама в dovecot.conf
protocol imap {
mail_plugins = antispam
mail_plugin_dir = /usr/lib/dovecot/modules/imap
}++ Предварительная настройка CRM114
Согласно указанному в переменной []antispam_crm_args[], будем
хранить настройки crm114 в подкаталоге .crm114 родительского каталога
пользователя.Распакуйте пример настроечного файла mailfilter.cf из
/usr/share/doc/crm114/examples/mailfilter.cf.gz и отредактируйте его,
особое внимание обратив на поля spw, mime_decoder, log_to_allmail.txt и
trainer_invoke_command.Создайте файл rewrites.mfp аналогичного вида, указав подходящую
информацию:vassile@pupkine.example.com>->MyEmailAddress
[[:space:]]Vassile Pupkine>-> MyEmailName
mail.example.com>->MyLocalMailRouter
192.168.10.20>->MyLocalMailRouterIPИнициализируйте базы спама/не спама:
cssutil -b -r spam.css
cssutil -b -r nonspam.cssСоздайте (возможно, пустой) файл priolist.mfp, предназначенный для
хранения белых/чёрных списков хостов
++ Настройка MDAПри получении письма следует его сначала пропустить через mailreaver из
комплекта CRM114, чтобы добавить заголовки с информацией о результате
проверки и []идентификатором сообщения в кеше[]. Последнее будет
использоваться впоследствии переобучении фильтра. Затем, в зависимости
от результатов проверки, письмо сохраняется в папку спама или
подозрительных писем.Для maildrop и хранилища почты в виде Maildir вышеописанное будет
выглядеть следующим образом:DEFAULT="$HOME/Maildir"
xfilter "/usr/share/crm114/mailreaver.crm -u $HOME/.crm114/"
if (/X-CRM114-Status: SPAM.*/)
{
to $DEFAULT/.spam/
}
if (/X-CRM114-Status: Unsure.*/)
{
to $DEFAULT/.suspicious/
}++ Обучение спамофильтра
Теперь пора приступать к обучению фильтра:
** Спам перемещать в папку spam
** Нужные сообщения перемещать из папок spam и suspicious в подходящее место
** Для обучения спамофильтра на ранее пришедших письмах используйте:"/usr/share/crm114/mailreaver.crm -u $HOME/.crm114/ --good < /путь/к/письму
"/usr/share/crm114/mailreaver.crm -u $HOME/.crm114/ --spam < /путь/к/письму** Для исходящей почты предусмотрен отдельный режим обучения:
"/usr/share/crm114/mailreaver.crm -u $HOME/.crm114/ --outgoing < /путь/к/письму
URL:
Обсуждается: http://www.opennet.me/tips/info/2694.shtml
это по какому часовому поясу создана статья??!!
02.06.2012сейчас еще 01.06.2012 :)
Тюмень, UTC+6, Opennet там живет.
почему в whois питер написан?
> почему в whois питер написан?Где?!?!?
domain: OPENNET.RU
nserver: ns.opennet.ru. 77.234.201.246
nserver: ns2.tyumen.ru.
nserver: ns3.tyumen.ru.
state: REGISTERED, DELEGATED, UNVERIFIED
person: Private Person
registrar: RU-CENTER-REG-RIPN
admin-contact: https://www.nic.ru/whois
created: 1998.06.11
paid-till: 2012.07.01
free-date: 2012.08.01
source: TCIНе, сам сервак живёт в питере, а вот админ в Тюмени.
А зачем maildrop, когда у Dovecot'а есть свой MDA и поддержка sieve?
Перед тем, как проверять заголовки письма, его надо пропустить через анализатор спама (в данном случае crm114). Я делаю это с помощью maildrop, но можно обойтись и другими способами.В текущей моей конфигурации после проверки на спам письмо передаётся в /usr/lib/dovecot/deliver для последующей обработки через sieve.