Webとメールに特化したクラウド型レンタルサーバー。php5.3 MySQL5.1 root権限 ssh対応、複数ドメイン。色々対応で月額5,250円!!

8月 21

バイクで出勤すると何故か雨が降ります。天気予報は晴れ@msmです。

CentOS 4 + BlueQuartz + Sendmail + ClamAVの構成でウィルスチェックをします。後編の今回はメールサーバ編です。前回の設定が正常に完了している事が前提条件となります。

  1. rpmforgeの設定とClamAVのインストール
  2. ClamAVの設定
  3. テストスキャン
  4. スケジュールスキャンの設定
  5. Milterのインストールと設定
  6. Sendmailの設定
  7. プロセスの再起動
  8. 送信テスト

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

設定は以上で完了です。

投稿者: @msm
Trackback URL:

Leave a Reply

Get Adobe Flash playerPlugin by wpburn.com wordpress themes