Заметки по настройке почтового сервера на базе Postfix



Оригинал: http://rootshell.ru/~mator/postfix-cyrus-clamav-SA-razor-dcc-remarks.txt


Схема работы:

< inet > --- < postfix > ---- < mailscanner > ---- < clamav >
+ +--------------< spamassasin > ---- < razor >
| +-------------< dcc >
|
+---------- < cyrus-imapd >


Файлы настроек:

postfix - /etc/postfix/*

основные параметры:

header_checks используется для связки с mailscanner (MS)

header_checks = regexp:/etc/postfix/header_checks


получить письмо и поставить его в HOLD

$ cat /etc/postfix/header_checks
/^Received:/ HOLD


как только письмо оказывается в HOLD в очереди, его подхватывает MS и проверяет
на наличие вирусов и spam'a, после чего возвращает писмо postfix'у для
доставки (в cyrus-imapd)


local_recipient_maps для указания postfix какие пользователи/recipients есть
на сервере при приеме почты. хотя данную фичу можно и отключить совсем (local_recipient_maps = )

local_recipient_maps = hash:/etc/postfix/local_recipient_map


(так как это hash, то после изменения данного файла
необходимо делать postmap /etc/postfix/local_recipient_map)

формат записи в этом файле:

email@domain.com value


или

@domain.com value

причем value никак не используется и поэтому я рекомендую ставить его
как OK. используется только левая часть данного выражения, вне
зависимости от value.

запись "email@domain.com OK" говорит postfix'у что такой email на локальном
сервере есть.
запись "@domain.com OK" говорит что почта принимается для любого
пользователя в этом домене.


cyrus-imapd - /etc/cyrus.conf /etc/imapd.conf

unixhierarchysep: yes (для имен содержащих в себе точку)
так как unixhierarchysep установлен в "yes", то пользователя надо
создавать так ----- > "cm user/a.pugachev" ,
а не как обычно --- > "cm user.pugachev"

пользователи в /etc/sasldb2 ( saslpasswd2 // sasldblistusers2 )
пароль пользователя "su -l cyrus ; cyrus localhost" is "j2mex"


mailscanner (MS) - /opt/MailScanner/etc/*

MS не использует скрипты spamc/spamd или spamassassin, а работает
напрямую с установленными perl модулями SA.
Доставка вирусованных писем контролируется в MailScanner.conf параметры:

Still Deliver Silent Viruses = yes


сейчас неосуществляется доставка зараженных писем, так как это ненужный трафик

Log Silent Viruses (логирование)


spamassassin (SA) - /opt/MailScanner/etc/spam.assassin.prefs.conf

в связке с MS используется конфиг /etc/MailScanner/etc/spam.assassin.prefs.conf

основная конфирурация :

bayes отключен -

> use_bayes 0
> bayes_auto_learn 0


whitelisting тоже отключен -

> use_auto_whitelist 0


файл whitelist -

> /etc/MailScanner/rules/spam.whitelist.rules


blacklist -

> /etc/MailScanner/rules/spam.blacklist.rules


использовать razor

> use_razor2 1


использовать dcc

> use_dcc 1


RBL не используется

> skip_rbl_checks 1


razor - /var/spool/postfix/.razor/*

поставлена версия razor-agents 2.75 из tar.gz

(perl Makefile.PL && make && make test && make install)

root# su -l postfix
postfix$ razor-admin -create
postfix$ razor-admin -register -user=noc@admin.net -pass=mailscan


dcc - установлен в /var/dcc

(tar -xzvf dcc.tar.Z && cd dcc && ./configure && make && make install)


MS может работать как через dccifd (socket) так и через dccproc.
http://wiki.mailscanner.info/doku.php?id=documentation:anti_spam:spamassassin:plugins:dcc:dccifd_install
сейчас настроено для большего быстродействия через dccifd.

задачи для cron:

/var/dcc/libexec/cron-dccd


ссылка в /etc/cron.daily/dcc

/var/dcc/libexec/updatedcc


ссылка в /etc/cron.monthly/updatedcc


squirrelmail - /etc/squirrelmail/config_local.php

переименовать/удалить http://192.168.1.2/webmail/src/configtest.php
настройка конфигурации: perl /usr/share/squirrelmail/config/conf.pl
+ 2 плагина, Small Calendar и Compatibility

Обновлено: 13.03.2015