FreeBSD postfix透过milter实作clamav
以前postfix要外挂spamassass或是clamav都要透过procmail或是MailScanner.
这阵子建置新的mail server才知道postfix已经支援milter,可以直接让postfix连结有支援milter的软体.
Postifx & ClamAV via milter (postfix的安装就不多赘言了,请参考前文)
1. cd /usr/ports/security/clamav
2. make install clean
3. 如果之前没装过clamav,应该会出现options选单,请把 [X] MILTER 这[X] MILTER 这项勾选起来.
4. 装好后在/usr/local/etc下会有clamd.conf (或clamd.conf.default, 请用cp或是mv把default去掉)
5. 修改clamd.conf
1. + LogFile /var/log/clamav/clamd.log
2. + PidFile /var/run/clamav/clamd.pid
3. ! User postfix
6. 修改/usr/local/etc/rc.d/clamav-milter
1. ! : ${clamav_milter_socket_mode="777"}
2. ! : ${clamav_milter_socket_user="postfix"}
3. ! : ${clamav_milter_socket_group="postfix"}
4. clamav_milter_flags 看个人需求修改(或使用预设值),可用的flag请man clamav-milter
7. 修改/usr/local/etc/postfix/main.cf
1. + smtpd_milters = unix:/var/run/clamav/clmilter.sock
8. 修改/etc/rc.conf
1. + clamav_clamd_enable="YES"
2. + clamav_freshclam_enable="YES"
3. + clamav_milter_enable="YES"
9. 修改/etc/mail/sendmail.cf
1. cd /etc/mail ; make
2. 修改 {hostname}.mc
a. + INPUT_MAIL_FILTER(`clmilter',`S=local:/var/run/clamav/clmilter.sock, F=, T=S:4m;R:4m')
b. + define(`confINPUT_MAIL_FILTERS', `clmilter')
3. make
4. make install
5. make restart
10. 启动clamd, clamav-milter, reload postfix
1. /usr/local/etc/rc.d/clamav-clamd start
2. /usr/local/etc/rc.d/clamav-milter start
3. /usr/local/etc/rc.d/postfix restart
11. 大功告成(part I)