Плагин 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, чтобы добавить заголовки с информацией о результате
проверки и [[i]]идентификатором сообщения в кеше[[/i]]. Последнее будет
использоваться впоследствии переобучении фильтра. Затем, в зависимости
от результатов проверки, письмо сохраняется в папку спама или
подозрительных писем.
Для 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