This is a mirror of official site: http://jasper-net.blogspot.com/

Postfix + amavisd-new + spamassasin + clamav

| Thursday, April 28, 2005
Короче сегодня был важный день !!! После долгих интимных отношений с potfix + procmail которые мне все таки удалось запустить на моем Fedora Core 3 но с большими трудами. Дело в том что procmail не соместим ни сколькими другими программами для локальных получателей. Я как всегда поставил local_transport=cyrus в postfix main.cf и cyrus как ни странно перехватывал все сообщения для местных для и для внешних получателей. Хотя в cyrus есть свой собственный скрипт для проверки там на спам но я хотел все таки добится этого результата через procmail. Для этого пришлось просто отменить cyrus вообще и оставить только procmail. Вообщем то это можно сделать 2 путями
  1. Поставить procmail в mailbox_command + тут же передовать аргументы для /etc/procmail скрипта. Например mailbox_command = procmail -t -a "$EXTENSION"
  2. Поставить procmail в local_delivery но тогда нам надо будет дописать строку в master.cf самого postfix. Делается так:
main.cf
--------
local_transport = my_procmail

master.cf
---------
my_procmail unix - n n - - pipe
user=cyrus argv=/usr/local/sbin/procmail -t -a USER={user} EXTENSION={extension}

Самый напряг наступает когда передается само сообщение. Дело в том что сообщение передается с правами получателя акромя roota (rooty передается с правами пользователя nobody). Теперь прикол - procmail с опцией -а (как мне кажется) создает директории cur/ new/ tmp/ в домашней директории пользователя\получателя (название директории можно изменить но не всегда - зависит от опций procmail'а в файле postfix'a main.cf - Maildir/ ). В директории roota такого быть не может так как только root там властвует :( С этим я бился наверное дня 4 - procmail error: cannot chdir /home/local_user/Maildir стало чуть ли не родным предложением. Как видно проблема была в том что для начала я создал только 2 пользователей - root и я родимый jasper. В файле /etc/alias указано что почта для roota должна приходить к jasper пользователю. Postfix как машина принимал почту отправленную с консоли к rooty, во время передачи скидывал права до nobody и с этими правами пытался что то записать в директории jasperа и конечно получал отказ ! Короче долго мы бились с procmail - основательно я в нем поднаторел но в конце концов отказался в пользу amavisd-new.
amavisd-new тоже конечно не подарок но заработал сразу прямо по туториалу - что странно (видно версии совпали - того кто писал туториал и моя). А не подарок это потому что конфигурационный файл это просто код какой то - похлеще с++ будет. С беглово взгляда ничего вообще не понял но все таки удалось прикрутить spamassasin и clamav по тому же туториалу. И вот сегодня это все прошло генеральную проверку ! Было скаченно около 270 email'ов с моего основного ящика (не то чтобы я их хранил - просто не было времени читать) и они все прошли проверку. Короче результаты - clamav ни пропустил ни одного вируса !!! - проверил через Norton Antivirus 2005 который до этого фильтровал почту - и старикашка Нортон ничего не нашел !! Ура ! Вирусы отсекаются ! Spamassasin немножко подкачал конечно - только 90% попаданий но !! Создал еще 2 ящика - 1 из которых будет принимать только спам который все таки умудрился пройти проверку и 2 который заспамил то что не должно быть спамом. Надо еще покапатся там в установках - но вообщем то все работает !!!! Ура !!! Прыгал чуть ли не до потолка ! Да кстати cyrus все таки и есть мой выбор в local_delivery для postfix'a.