CentOS サーバー管理・運用 Clam AntiVirus

(最終更新日時:2012-11-19 20:12:31)
ウィルスメールの検出・隔離・削除を主目的として、アンチウィルスソフト Clam AntiVirus を導入します。

なお、clamav-0.93.1.tar.gz による構築情報は、 http://www.system-act.com/archives/server/clamav.html に移動しました。
参照の状況により予告なく削除いたします。ご了承ください。
なお、今後 Clam AntiVirus の tar による構築情報の更新予定はありません。

インストール

RPMforge(DAG)リポジトリから Clam AntiVirus をインストールします。
公式日本語サイト : http://www.clamav.net/lang/ja/about/
# yum -y install clamav clamd

※ 以下の内容は clamav-0.97.6-1.el6.rf.x86_64 を対象に記述しています。

設定ファイルの編集

設定ファイルを編集します。
# vi /etc/clamd.conf
----------(vi ここから)----------
       :
# Use system logger (can work together with LogFile).
# Default: no
LogSyslog no                                                  # Syslogへのログ出力を行いません
       :
# Optional path to the global temporary directory.
# Default: system specific (usually /tmp or /var/tmp).
TemporaryDirectory /tmp                                       # 作業用ディレクトリを /tmp にしています
       :
# TCP port address.
# Default: no
#TCPSocket 3310                                               # TCPソケットによる通信は行いません

# TCP address.
       :
# Default: no
#TCPAddr 127.0.0.1                                            # TCPソケットによる通信は行いません
       :
----------(vi ここまで)----------

パターンデータベースの設定と更新

パターンデータベースの更新設定ファイルを編集します。
# vi /etc/freshclam.conf
----------(vi ここから)----------
       :
#LogFileMaxSize 2M
LogFileMaxSize 0                                              # logrotateでログの容量管理を行います
       :
# Use system logger (can work together with UpdateLogFile).
# Default: no
LogSyslog no                                                  # Syslogへのログ出力を行いません
       :
#PidFile /var/run/freshclam.pid
PidFile /var/run/clamav/freshclam.pid                         # Pidファイルを作成します
       :
#AllowSupplementaryGroups yes
AllowSupplementaryGroups yes                                  # グループ権限も移譲させます
       :
----------(vi ここまで)----------

パターンデータベースの自動更新設定を行います。
また、パターンデータベースの更新を2時間間隔で行うように変更します。
# # その他のタイミングで動作させるコマンド用のディレクトリ cron.misc を作成します
# mkdir /etc/cron.misc

# # 毎日1回の cron.daily から移動させます
# mv /etc/cron.daily/freshclam /etc/cron.misc/
# chmod +x /etc/cron.misc/freshclam

# # 2時間間隔でパターンデータベースを最新にするようにします
# vi /etc/cron.d/freshclam
----------(vi ここから)----------
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

06 */2 * * * root /etc/cron.misc/freshclam
----------(vi ここまで)----------
# chmod 644 /etc/cron.d/freshclam

# # パターンデータベースを手動で最新にします
# freshclam

起動

clamd を起動します。
# service clamd start

定期スキャンの実施

cronでサーバー内の定期スキャンを毎日行うようにします。
cron.daily で実行しても良いのですが、決められた時間に実行させたいので cron.d に登録します。

当サーバーにおいては、現時点で全体スキャンを行っても10分程度です。
スキャンに時間がかかるようでしたら、毎日は特定のディレクトリのみのスキャンで、全体スキャンは週に1回という運用に変更します。
# # 全体スキャンを行うシェルを作成します
# vi /etc/cron.misc/clamscan
----------(vi ここから)----------
#!/bin/sh

PATH=/usr/bin:/bin
LOGFILE=/var/log/clamav/clamscan.log
echo -e -n "\n\n\n\n`date '+%Y/%m/%d %H:%M:%S'`" >> $LOGFILE

nice -n 19 clamscan -r / -i -l $LOGFILE --exclude-dir="^/proc|^/sys|^/dev|^/mnt"  
----------(vi ここまで)----------
# chmod +x /etc/cron.misc/clamscan

# # 毎日、朝3:30に全体スキャンを行うように cron.d に登録します
# vi /etc/cron.d/clamscan
----------(vi ここから)----------
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

30 3 * * * root /etc/cron.misc/clamscan
----------(vi ここまで)----------
# chmod 644 /etc/cron.d/clamscan

フィードバック

記事の内容についてのご質問、ご指摘、その他ご意見等は、Weblog/Twitter にて受け付けております。

System House ACT Weblog 内記事 : サーバー管理・運用 Clam AntiVirus

トラックバックまたはコメントにてお寄せください。

Twitter では .@systemact 宛につぶやいてください。
また、こちら から、この記事についてつぶやくことができます。
a System House to build an Accounting system by the Computer Technology