トップ  > サーバ設定:運用  > 各アプリケーションのインストール  > メールサーバでウィルスチェック(sendmail+Clam AntiVirus)

メールサーバでウィルスチェック(sendmail+Clam AntiVirus)  (最終更新日:2011/08/04)

Clam AntiVirusを使用して、メールサーバ側でメールに対するウィルスチェックを実施します。

なお、sendmailとClam AntiVirusとの連携にはclamav-milterを利用します。

サーバ上で外部から受信したメールと、内部から送信したメールのウィルスチェックをし、検出されたらそのメールは破棄します。

メールサーバ構築(sendmail+Dovecot)アンチウィルスソフト導入(Clam AntiVirus)が導入されていること。

clamd設定

Clam AntiVirusとsendmailが連携できるように、clamdをソケット通信型で起動するようにします。

[root@sv ~]# vi /etc/clamd.conf ← clamd設定ファイル編集
# Path to a local socket file the daemon will listen on.
# Default: disabled (must be specified by a user)
LocalSocket /var/run/clamav/clamd.sock ← clamdをソケット通信にする(なっていることを確認)

# TCP port address.
# Default: no
TCPSocket 3310
↓
#TCPSocket 3310 ← #を追加してコメントアウト(clamdのTCP通信を無効化)

[root@sv ~]# /etc/rc.d/init.d/clamd restart ← clamd再起動
Stopping Clam AntiVirus Daemon:                            [  OK  ]
Starting Clam AntiVirus Daemon:                            [  OK  ]

clamav-milterインストール

RPMforge+EPELリポジトリが導入されいない場合こちらを参照してインストールします。

[root@sv ~]# yum install clamav-milter ← clamav-milterインストール

clamav-milter設定

[root@sv ~]# vi /etc/clamav-milter.conf ← clamav-milter設定ファイル編集
# If this option is set to "Replace" (or "Yes"), an "X-Virus-Scanned" and an
# "X-Virus-Status" headers will be attached to each processed message, possibly
# replacing existing headers.
# If it is set to Add, the X-Virus headers are added possibly on top of the
# existing ones.
# Note that while "Replace" can potentially break DKIM signatures, "Add" may
# confuse procmail and similar filters.
# Default: no
#AddHeader Replace
AddHeader Add ← 受信したメールのヘッダに情報を追加

clamav-milter起動

[root@sv ~]# /etc/rc.d/init.d/clamav-milter start ← clamav-milter起動
Starting Clamav Milter Daemon:                             [  OK  ]

[root@sv ~]# chkconfig clamav-milter on ← clamav-milter自動起動設定

[root@sv ~]# chkconfig --list clamav-milter ← clamav-milter自動起動設定確認
clamav-milter   0:off   1:off   2:on    3:on    4:on    5:on    6:off

sendmail設定

[root@sv ~]# vi /etc/mail/sendmail.mc ← sendmail.mc編集
最終行へ追加
INPUT_MAIL_FILTER(`clamav', `S=local:/var/clamav/clmilter.socket, F=, T=S:4m;R:4m')dnl
define(`confINPUT_MAIL_FILTERS', `clamav')

[root@sv ~]# m4 /usr/share/sendmail-cf/m4/cf.m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf ← sendmail.mcよりsendmail.cf作成

sendmail再起動

[root@sv ~]# /etc/rc.d/init.d/sendmail restart ← sendmail再起動
sm-client を停止中:                                        [  OK  ]
sendmail を停止中:                                         [  OK  ]
sendmail を起動中:                                         [  OK  ]
sm-client を起動中:                                        [  OK  ]

ウィルスチェック確認

1.正常メール確認

自分自身にメールを送ってみて、メールのヘッダに以下のメッセージが付加されていることを確認

X-Virus-Status: Clean

X-Virus-Scanned: clamav-milter 0.97.2 at sv.rx-93dff.net

2.ウィルスメール確認

こちらよりテスト用ウィルスファイルをダウンロードし、メールで添付ファイルとして送りメールが届かない(破棄されている)ことを確認。

ログに、「Jul 23 00:53:48 sv sendmail[1825]: p6MFrkMd001825: milter=clamav, quarantine=quarantined by clamav-milter」のようなのが記録されます。