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