FreeSource : Dokumentacija/PostfixDspamDovecot

Эта страница была перенесена на altlinux.org. Текст на freesource.info заморожен.

Postfix + DSPAM + Dovecot


Используются системные пользователи, т.к. пользователям нужен доступ по ftp в домашние директории для редактирования sieve-фильтров, а поднимать LDAP/RDBMS мне было лень, точнее, хотелось оставить инсталляцию минимальной. MTA и оба MDA общаются через pipe-интерфейс, т.к. Dovecot совсем не умеет LMTP, а использовать 2 разных механизма (LMTP для Postfix -> DSPAM и pipe для DSPAM -> Dovecot) опять-таки не хотелось. Итак, конфиги:

# cat /etc/postfix/main.cf

mailbox_command = /usr/bin/dspam --deliver=innocent --user $LOGNAME — -d $LOGNAME
unknown_local_recipient_reject_code = 450
mynetworks = $config_directory/mynetworks


# cat /etc/dspam.conf

Home /var/lib/dspam

Storage Driver /usr/lib64/libhash_drv.so
Hash Auto Extend on

Untrusted Delivery Agent «/usr/lib64/dovecot/deliver -d %u»

Training Mode teft
Test Conditional Training on

Feature whitelist

Algorithm graham burton
PValue bcr

Preference «spamAction=tag»
Preference «signatureLocation=headers»
Preference «showFactors=off»
Preference «spamSubject= "

Notifications off

Local MX 127.0.0.1

System Log on
User Log on


# cat /etc/dovecot/dovecot.conf

protocols = imap

shutdown_clients = yes

ssl_disable = yes
disable_plaintext_auth = no

mail_location = mbox:/mail/data:INDEX=~/mail/index

lock_method = fcntl

protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
}
protocol lda {
auth_socket_path = /var/run/dovecot/auth-master
postmaster_address = root@localhost
mail_plugins = cmusieve
}

protocol imap {
mail_plugins = antispam
}
auth default {
mechanisms = plain login
passdb pam {
}
userdb passwd {
}
user = root
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0666
}
}
}

plugin {
sieve = mail/filter/filter.sieve
antispam_signature = X-DSPAM-Signature
antispam_spam = SPAM
antispam_trash = Trash
antispam_dspam_binary = /usr/bin/dspam
antispam_dspam_args = --user %u
}


Без дополнительных телодвижений такая конфигурация не обеспечивает ничего интересного, кроме дополнительных тормозов при анализе корреспонденции, результат анализа помещается в заголовок X-DSPAM-Result (Spam или Innocent). Но наличие плагина antispam (http://johannes.sipsolutions.net/Projects/dovecot-antispam) позволяет путем перемещения писем в папку SPAM и из нее обучать dspam, благодаря чему последний рано или поздно научится выставлять заголовки X-DSPAM-Result правильно. Можно ускорить этот процесс, если провести предварительное обучение с помощью утилиты dspam_corpus. Наконец, если каждый пользователь напишет у себя в mail/filter/filter.sieve (можно, впрочем, и глобальный фильтр для всех пользователей описать) нечто вроде:

require “fileinto”;
if header :contains “X-DSPAM-Result” “Spam” {
fileinto “SPAM”;
}


то все, что DSPAM пометил как спам, пойдет прямиком в папку SPAM.

Страницы, ссылающиеся на данную: Документация/Postfix