実現する機能
VMWare にインストールした Cent OS 7.1 のウィルス対策として、Clam AntiVirusを導入することにしました。以下はその備忘録です。
事前準備
CentOS 7.1 インストール直後の初期設定を参照してRPMforgeリポジトリが導入済であること
※「CentOSで自宅サーバー構築」サイトの記述を引用して作成
Clam AntiVirusインストール
Last login: Sun Sep 25 09:46:20 2016 from 192.168.24.242
[tu@ufuso ~]$ su ← ユーザーをrootに変更
パスワード: ← rootのパスワードを入力
[root@ufuso tu]# yum -y install clamd --enablerepo=rpmforge
← Clam AntiVirusインストール
インストール:
clamd.x86_64 0:0.98.4-1.el7.rf
依存性関連をインストールしました:
clamav.x86_64 0:0.98.4-1.el7.rf clamav-db.x86_64 0:0.98.4-1.el7.rf
完了しました!
|
|
Clam AntiVirus設定
[root@ufuso tu]# vi /etc/clamd.conf ← clamd設定ファイル編集
# Run as another user (clamd must be started by root for this option to work)
# Default: don't drop privileges
User clamav
↓
#User clamav ← root権限で動作するようにする
[root@ufuso tu]# vi /etc/freshclam.conf ← ウィルスデータベース更新設定ファイル編集
# Uncomment the following line and replace XY with your country
# code. See http://www.iana.org/cctld/cctld-whois.htm for the full list.
#DatabaseMirror db.XY.clamav.net
DatabaseMirror db.jp.clamav.net ← ウィルスデータベース入手元を日本に変更
|
|
Clam AntiVirus起動
[root@ufuso tu]# systemctl start clamd ← clamd起動
[root@ufuso tu]# systemctl enable clamd ← clamd自動起動設定
clamd.service is not a native service, redirecting to /sbin/chkconfig.
Executing /sbin/chkconfig clamd on
[root@ufuso tu]# chkconfig clamd on ← clamd自動起動設定やり直し
|
|
ウィルス定義ファイル最新化
[root@ufuso tu]# sed -i 's/Example/#Example/g' /etc/freshclam.conf
← ウィルス定義ファイル更新機能の有効化
[root@ufuso tu]# freshclam ← ウィルス定義ファイル最新化
Clamd successfully notified about the update.
|
|
※以後のウィルス定義ファイルのアップデートは、/etc/cron.daily/freshclamにより毎日自動で行われる
|
ウィルススキャン定期自動実行設定
[root@ufuso tu]# vi clamscan ← ウィルススキャン実行スクリプト作成
#!/bin/bash
PATH=/usr/bin:/bin
# clamd update
yum -y update clamd > /dev/null 2>&1
# excludeopt setup
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
for i in `cat $excludelist`
do
if [ $(echo "$i"|grep /$) ]; then
i=`echo $i|sed -e 's/^([^ ]*)/$/1/p' -e d`
excludeopt="${excludeopt} --exclude-dir=$i"
else
excludeopt="${excludeopt} --exclude=$i"
fi
done
fi
# signature update
freshclam > /dev/null
# virus scan
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] &&
# report mail send
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP
[root@ufuso tu]# chmod +x clamscan ← ウィルススキャン実行スクリプトへ実行権限付加
[root@ufuso tu]# echo "/proc/" >> clamscan.exclude
← 例として/procディレクトリをスキャン対象外にする
[root@ufuso tu]# echo "/sys/" >> clamscan.exclude
← 例として/sysディレクトリをスキャン対象外にする
※ディレクトリを除外する場合は末尾に「/」を付加すること
[root@ufuso tu]# clamscan ← ウィルスチェック
/home/tu/.bash_logout: OK
/home/tu/.bash_profile: OK
/home/tu/.bashrc: OK
/home/tu/.bash_history: OK
/home/tu/rainloop-latest.zip: OK
/home/tu/nagios-4.2.1.tar.gz: OK
/home/tu/nagios-plugins-2.1.2.tar.gz: OK
/home/tu/clamscan: OK
/home/tu/clamscan.exclude: OK
----------- SCAN SUMMARY -----------
Known viruses: 4844302
Engine version: 0.98.4
Scanned directories: 1
Scanned files: 9
Infected files: 0 ← ウィルス感染ゼロ
Data scanned: 143.08 MB
Data read: 18.42 MB (ratio 7.77:1)
Time: 34.257 sec (0 m 34 s)
[root@ufuso tu]# mv clamscan /etc/cron.daily/
← ウィルススキャン実行スクリプトを毎日自動実行されるディレクトリへ移動
|
|
これで、毎日定期的に全ファイルのウィルススキャンが行われ、ウィルスを検知した場合のみroot宛にメールが送られてくるようになる。
|