clamAntiVirus インストール
clamAntiVirus(clamAV) はLinuxで利用できる
オープンソースのアンティウィルスソフトです。
基本的な機能としては
ウィルス定義ファイルを定期的にダウンロードできる
sendmailでメールのウイルスチェックができる
などです。
clamAntiVirusの取得
公式サイトからのリンクで
Sorceforgeにのダウンロードページに行くことができるので
適当なミラーサイトから任意のディレクトリにダウンロードします。
今回は clamav-0.95.2.tar.gz を使用して実装していきます。
事前準備
clamavはインストールする前に
「clamav」という名前のユーザとグループを作成しておく必要があります。
#groupadd clamav #useradd -g clamav -s /bin/false clamav
展開&コンパイル&インストール
それではインストールです。
特に変わったことはしない素直なインストールで問題ありません。
tar zxvf clamav-0.95.2.tar.gz cd clamav-0.95.2 ./configure --prefix=/usr/local/clamav make make install
これでインストール完了です。
設定
【ウイルスDBのアップデート】
皆さんが利用しているアンチウイルスでも
定義ファイル、パターンファイルを日々アップデートしていることと思いますが
clamavも例に漏れずというか当然
パターン(clamavではVirusDBと呼ぶ)をアップデートしておく必要があります。
インストールが正常に完了したら
まず、二つの設定ファイル
vi /usr/local/clamav/etc/freshclam.conf vi /usr/local/clamav/etc/clamd.conf
をエディタで開き
Exampleと書かれた行をコメントアウトし、保存します。
#Example
「freshclam」を使用してVirusDBをアップデートしましょう。
/usr/local/clamav/bin/freshclam
アップデートが完了したら早速スキャンを行いたいところですが
検出されないファイルをスキャンしても「OK」と出るだけなので
eicarからテストファイルをダウンロードしておきましょう。
cd /usr/local/clamav/bin/ wget http://www.eicar.org/download/eicar.com
テストスキャン
それではいざスキャンです。
eicarからダウンロードしてきたファイルを単体でスキャンします。
/usr/local/clamav/bin/clamscan ./eicar.com ./eicar.com: Eicar-Test-Signature FOUND ----------- SCAN SUMMARY ----------- Known viruses: 630647 Engine version: 0.95.2 Scanned directories: 0 Scanned files: 1 Infected files: 1 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 2.354 sec (0 m 2 s)
うまく検出されました。
ファイル単体ではなくディレクトリ単位で指定することも可能です。
/usr/local/clamav/bin/clamscan スキャンしたいディレクトリ
ウィルススキャン
システム全体をスキャンする
# /usr/local/clamav/bin/clamscan -r /
スキャンするディレクトリを指定する場合は以下のコマンドを実行。
例では/home以下のみをスキャンする。
# /usr/local/clamav/bin/clamscan -r /home
設定例 特定のディレクトリやファイルを除外して検索する場合 –exclude (ファイル指定)
–exclude-dir (ディレクトリ指定)上記を踏まえて。。
/etc/ 以下と /var/ 以下を除外する場合。
# clamscan -r / –exclude-dir=”etc|var”
*.core という拡張子と *.snap という拡張子が付くファイルを除外する場合。
■特定のディレクトリをスキャンする
/usr/local/clamav/bin/clamscan -r /usr/local/apache/htdocs
clamscanコマンド
オプション 説明
–infected ウィルスに感染したファイルのみ出力する
–disable-summary サマリーを出力しない
–remove ウィルスに感染したファイルを削除する
–move=DIRECTORY ウィルスに感染したファイルを指定のディレクトリへ移動する
–force エラーを無視しして強制的にスキャンを行う
–recursive サブディレクトリごと再帰的に検査。圧縮ファイルは再帰的に解凍して検査
ウィルススキャン実行スクリプト
週1ぐらいで動くようCronに登録します
(検知した場合はメール)
#------------------- ### Virus Scan ### #------------------- 00 05 * * 0 /root/bin/virus-scan.sh
vi /root/bin/virus-scan.sh
#!/bin/sh
#################################################
# Virus scanning
#
# author 2008.10.31 s.tsukioka
#################################################
### configuration Section ###
DATE=`date +%Y%m%d`
LOG_FILE="/root/bin/virus-scan.log"
LOG_FILE2="/root/bin/virus-scan-result.log"
ADMIN=xxx@xxx.xx.xx
SCANDIR="/usr/local/apache/htdocs_ssl"
echo "/_/_/_/_/_/_/_/_/_/ Virus scanning /_/_/_/_/_/_/_/_/_/" > ${LOG_FILE}
echo "" >> ${LOG_FILE}
### VirusDB-Update Section ###
echo "### `date '+%Y/%m/%d %H:%M:%S'` VirusDB Update Start ###" >> ${LOG_FILE}
/usr/local/clamav/bin/freshclam >> ${LOG_FILE}
echo "### `date '+%Y/%m/%d %H:%M:%S'` VirusDB Update Ended ###" >> ${LOG_FILE}
### Virus Scanning Section ###
echo "-------------------------------------------------------------------------------" >> ${LOG_FILE}
echo "### `date '+%Y/%m/%d %H:%M:%S'` Virus Scan Start ###" >> ${LOG_FILE}
/usr/local/clamav/bin/clamscan -r ${SCANDIR} >> ${LOG_FILE} 2>&1
echo "### `date '+%Y/%m/%d %H:%M:%S'` Virus Scan Ended ###" >> ${LOG_FILE}
grep "FOUND" ${LOG_FILE} > ${LOG_FILE2}
### Report Mail Section ###
if [ -s ${LOG_FILE2} ]
then
mail -s "[ERR]`hostname -s` Virus-Scanning-Report" $ADMIN < ${LOG_FILE2}
else
mail -s "[NOR]`hostname -s` Virus-Scanning-Report" $ADMIN < ${LOG_FILE}
fi