バイクで出勤すると何故か雨が降ります。天気予報は晴れ@msmです。
CentOS 4 + BlueQuartz + Sendmail + ClamAVの構成でウィルスチェックをします。後編の今回はメールサーバ編です。前回の設定が正常に完了している事が前提条件となります。
- rpmforgeの設定とClamAVのインストール
- ClamAVの設定
- テストスキャン
- スケジュールスキャンの設定
- Milterのインストールと設定
- Sendmailの設定
- プロセスの再起動
- 送信テスト
5以前は前編に記載してあります。なお、以下の設定に関しては自己責任でお願いします。
5、Milterのインストールと設定
Sendmailと外部プログラムを連係させるためのソケット機構 Milterをインストールします。
# yum install -y clamav-milter --enablerepo=rpmforge
96行目付近のNotifyClamdをコメントアウトをはずし、/etc/clamd.confを利用できるようにします。
# vi /etc/freshclam.conf
#NotifyClamd /etc/clamd.conf
↓
NotifyClamd /etc/clamd.conf
TCPソケットモードは使いませんので、/etc/clamd.confを以下のように変更します
# vi /etc/clamd.conf
80行目
TCPSocket 3310
↓
#TCPSocket 3310
chkconfigやntsysvでclamav-milterがオンになっているか確認します。
# chkconfig --list clamav-milter
デフォルトの設定ではウィルス検地時には、メールごと削除し連絡がありません(ログには残ります)ので、ウィルスが来たというメールを受信者と管理者に送信するように「/etc/sysconfig/clamav-milter」ファイルを設定します。
# vi /etc/sysconfig/clamav-milter
CLAMAV_FLAGS="
--config-file=/etc/clamd.conf
--force-scan
--local
--max-children=10
--noreject
--outgoing
--postmaster=webmaster@hostname.domainname.com
"
※ 「--quiet」の行を削除する。(コメントアウトではなく削除)
※ 「--postmaster=管理者のメールアドレス」の行を追加する。
6、Sendmailの設定
# cd /etc/mail/ # cp -a sendmail.mc sendmail.mc.clamav
「/etc/mail/sendmail.mc.clamav」の最終以降に以下の2行を追加します。
# vi /etc/mail/sendmail.mc.clamav INPUT_MAIL_FILTER(`clamav', `S=local:/var/clamav/clmilter.socket, F=, T=S:8m;R:8m;E:8m')dnl define(`confINPUT_MAIL_FILTERS', `clamav')
sendmail.mcと、sendmail.mc.clamavからそれぞれsendmail.cf.tmpとsendmail.cf.clamav
# m4 sendmail.mc > /tmp/sendmail.cf.tmp # m4 sendmail.mc.clamav > /tmp/sendmail.cf.clamav
/tmp/sendmail.cf.clamavと、/tmp/sendmail.cf.tmpの差分をとり、オリジナルのsendmail.cfに取得した差分を追加します。
# diff /tmp/sendmail.cf.clamav /tmp/sendmail.cf.tmp <略> # cp -a sendmail.cf sendmail.cf.org # vi sendmail.cf
私の環境では以下を追加する必要がありました。
### 563行目「#O InputMailFilters」の以降に以下を追加
O InputMailFilters=clamav
# Milter options
#O Milter.LogLevel
O Milter.macros.connect=j, _, {daemon_name}, {if_name}, {if_addr}
O Milter.macros.helo={tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}
O Milter.macros.envfrom=i, {auth_type}, {auth_authen}, {auth_ssf}, {auth_author}, {mail_mailer}, {mail_host}, {mail_addr}
O Milter.macros.envrcpt={rcpt_mailer}, {rcpt_host}, {rcpt_addr}
O Milter.macros.eom={msg_id}
### 1705行目に以下を追加
### ##### MAIL FILTER DEFINITIONSの下
Xclamav, S=local:/var/clamav/clmilter.socket, F=, T=S:8m;R:8m;E:8m
7、プロセスの再起動
必ずclamav-milter、sendmailの順に起動(再起動)します。この順番は設定変更時も同じです。
# /etc/init.d/clamav-milter restart Stopping Clamav Milter Daemon: [失敗] Starting Clamav Milter Daemon: [ OK ] # /etc/init.d/sendmail restart sendmail を停止中: [ OK ] sm-client を停止中: [ OK ] sendmail を起動中: [ OK ] sm-client を起動中: [ OK ]
8、送信テスト
メールを送信してみてヘッダに以下のメッセージがあることを確認します。
X-Virus-Scanned: ClamAV version 0.91.2, clamav-milter version 0.91.2 on hostname.domainname.com X-Virus-Status: Clean
ウィルスが本当に検知されるかの確認は、テストウィルス(eicar_com)をダウンロードしクライアントから実際に送信してみるのが良いでしょう。(クライアントのウィルス対策ソフトを切る必要があります)
なお、ウィルス検知メールはキューに入り直ぐに届きませんので、sendmailのリスタートをして直ぐに送信させます。
# /etc/init.d/sendmail restart
設定は以上で完了です。


