Ubuntu Server 10.4.3 LTSに
Postfixを入れてメールサーバをつくろうとしていて
到着したメールの添付ファイルに対して
アンチウィルスをかけられるように
フリーのアンチウィルスClamAVを使うことになった。
で
Server Worldとかには
http://www.server-world.info/query?os=Ubuntu_10.04&p=mail&f=6
Amavisによる連携で書かれているのだけど、
Amavisが落ちている間メールが受け取れなかったり
どうもおもいらしいということがわかった。
milterはどうも軽快らしいし、
ClamAV デーモンが落ちていても飛ばしてメールを受け取れる
仕組みがつくれる。
#aptitude -y install clamav-daemon clamav-milter clamav-docs clamav-data
で、まずClamAVパッケージを導入する。
それでclamav-daemonを使えるようにして
Postfix連携のためのclamav-milterを設定すればいいのだけど..
Ubuntu Server 10.4.3 LTSのパッケージは結構賢くて
Postfixも導入したのだけど
しっかりchroot環境で導入してくれる。
なので、clamav-milterもしっかりchroot環境にできるもんだから
設定に使うソケットファイルの所在に一瞬手間取った。
# postconf -d queue_directory
/var/spool/postfix
で実行ディレクトリを見つけておいて
/etc/clamav/clamav-milter.conf
を編集すればいい。
#以下の行を編集
MilterSocket /var/spool/postfix/var/run/clamav/clamav-milter.ctl
あと、AddHeader Replaceがコメントアウトされていることを確認しておく。
これがあれば、メールヘッダにX-Virus-Scanned/X-Virus-Statusタグが付く
テスト確認できる。
で、/etc/default/clamav-milterを
SOCKET_RWGROUP=postfix
してclamav-milterをservice実行してしまえばよい。
なお、/etc/postfix/main.cfは、milterがClamAVだけなら
最後の行に以下の設定を追加しておく。
milter_default_action = accept
# milterが動いていない場合は通過させる
milter_mail_macros = {auth_authen} {auth_author} {auth_type}
# SMTP-AUTHを使用しているのでログイン名、SASL送信者、SASLログインメソッド
# をmilterに渡す
smtpd_milters = unix:/var/run/clamav/clamav-milter.ctl
non_smtpd_milters = unix:/var/run//clamav/clamav-milter.ctl
# Postfixがchroot環境で動作しているため/var/spool/postfixディレクトリが見えな
milter_protocol = 2
#milterプロトコルのバージョン
クライアントPCから添付ファイル付きで送信すればテストできる。
受信先でヘッダを確認しX-Virus-StatusがはいっていればOK。
ただ添付ファイルがないとスキャンしない。
なおclamav-dataを導入するとfreshclamを消してしまうので
このあとでaptitude -y install clamav-freshclamしてしまえばよい。
なおプロクシ設定をOSインストール時にいれておくと
勝手にfreshclamもやってくれる。
Ubuntuディストリビューション
よくできてるなあ..