Postfix + clamav-milter でウィルスチェック

2009-11-30 20:00
このエントリーをはてなブックマークに追加
postfix-clamav

これまでメールサーバのウィルスチェックについては、sendmail と clamav-milter の組み合わせを紹介してきましたが、Postfix と clamav-milter の組み合わせも確認できましたので、以下やり方を書いておきます。

試した環境は CentOS 5.4 (64bit)、Postfix は 2.3.3 を RPM で入れています。また、Clam AntiVirus (ClamAV) 関連は RPMforge のパッケージを利用します。Postfix の設定については割愛します。

Postfix のインストール

CentOS 5 には Postfix の RPM が用意されています。これを yum でインストールします。

$ sudo yum install -y postfix

Clam AntiVirus のインストール

こちらは CentOS 5 には含まれていませんが、RPMforge にあるパッケージを使います。事前に yum で RPMforge を使うように設定する必要があります。EPEL のリポジトリを使う設定になっている場合は、EPEL で配布されている clamav と競合してしまいますので、次のように EPEL の clamav パッケージを無視するようにします。

# vi /etc/yum.repos.d/epel.repo
exclude=clamav*

次に RPMforge のリポジトリから clamav のパッケージ群をインストールします。

# yum --enablerepo rpmforge install clamav clamav-db clamav-milter clamd

freshclam の設定

定義ファイル更新の設定をします。/etc/freshclam.conf を編集して Google SafeBrowing のデータを利用するようにします。

SafeBrowsing yes

初回は freshclam コマンドを手動実行して最新の定義ファイルをあらかじめダウンロードしておきます。

clamd の設定と実行

基本的には設定変更の必要はなくそのままでも動作します。ここでは /etc/clamd.conf を編集して、ウィルス検出時にメールが飛ぶようにします。

VirusEvent echo "VIRUS ALERT: %v" | mail -s "Virus Alert" postmaster@example.org

clamd を実行します。

# service clamd restart

clamav-milter の設定

Postfix と ClamAV の連携については、AMaViS を使う方法もありますが、ここでは clamav-milter を利用します。/etc/clamav-milter.conf を編集して MilterSocket のパスを変更します。

  MilterSocket unix:/var/run/clamav/milter.sock
  AddHeader Yes

このままで clamav-milter を起動した場合、Postfix を実行するユーザ postfix がソケットにアクセスできずに失敗します。そこで /etc/init.d/clamav-milter を編集して、clamav-milter デーモン起動時にソケットのグループを postfix に変更してやります。ネットワーキングすきま情報: Postfix – milter – ClamAVねた。を参考にさせて頂きました。

  start)
        echo -n "Starting Clamav Milter Daemon: "
        daemon clamav-milter $CLAMAV_FLAGS $SOCKET_ADDRESS
        chgrp postfix /var/run/clamav/milter.sock  #追加
        chmod g+w /var/run/clamav/milter.sock      #追加

clamav-milter デーモンを実行します。

# service clamav-milter restart

Postfix の設定

postfix 側に clamav-milter と連携する設定が必要です。/etc/postfix/main.cf に以下の記述を追加します。

smtpd_milters = unix:/var/run/clamav/clmilter.sock
non_smtpd_milters = unix:/var/run/clamav/clmilter.sock
milter_default_action = accept

postfix を再起動して、メールの送受信を確認をします。

# service postfix restart

自動起動の設定

clamd と clamav-milter デーモンが自動起動するようにします。

# chkconfig clamd  on
# chkconfig clamav-milter  on  
# chkconfig --list | grep clam
clamav-milter   0:off   1:off   2:on    3:on    4:on    5:on    6:off
clamd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

freshclam は cron で実行されます。

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

33 queries. HTML convert time: 0.075 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン