Technical Notes
テクニカルノーツ
Linuxサーバにアンチウィルスソフトをいれてみた
Centos6 にアンチウィルスソフトをいれてみた。
セキュリティ強化の一環としての導入です。アンチウィルスソフトはフリーでマナーな、「Clam AntiVirus」を選択しました。
事前準備
「Clam AntiVirus」は、初期のyumのリポジトリには入っていないので、RPMforgeリポジトリを使用できるようにしておきます。
Clam AntiVirusのインストール
#yum install clamd #yum install clamav-devel
Clam AntiVirusの設定
root権限で動作するようにするため、以下の設定を変更
#vi /etc/clamd.conf User clamav ↓コメントアウトします。 #User clamav
Clam AntiVirusの起動
#service clamd start
Clam AntiVirusの自動起動設定
chkconfig clamd on chkconfig --list | grep clamd (確認)
ウィルス定義ファイル更新機能の有効化
#vi /etc/freshclam.conf Example ↓コメントアウトします。 #Example
ウィルス定義ファイル最新化
# freshclam コマンドを実行すると最新化されます。 ※以降はcronで日時更新されるようになります。
ウィルススキャンテスト
コマンド実行するとウイルススキャンが実行されます。 # clamscan --infected --remove --recursive ----------- SCAN SUMMARY ----------- Known viruses: 3505561 Engine version: 0.98.3 Scanned directories: 7231 Scanned files: 28336 Infected files: 0 ← 0なので問題なし Data scanned: 155.20 MB Data read: 549.99 MB (ratio 0.28:1) Time: 57.475 sec (0 m 57 s) ■結果 Infected filesが 0なので問題なし テスト用のウィルスをダウンロードしてやってみる # mkdir test # cd test/ # wget http://www.eicar.org/download/eicar.com # clamscan --infected --remove --recursive /root/test /root/test/eicar.com: Eicar-Test-Signature FOUND /root/test/eicar.com: Removed. ----------- SCAN SUMMARY ----------- Known viruses: 3505561 Engine version: 0.98.3 Scanned directories: 1 Scanned files: 1 Infected files: 1 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 6.675 sec (0 m 6 s) ■結果 Infected filesが 1 で検知 ダウンロードした「eicar.com」が正常に削除されてた。
ウイルスチェック定期実行用にスクリプトを作成
/etc/cron.daily/ に作る事でcronで定期実行させる #vi /etc/cron.daily/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 # 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
パーミッションを変更
実行権限を付加しておく #chmod 755 /etc/cron.daily/clamscan
除外指定について
先ほどのスクリプト内に指定した以下のファイルに記載することでウイルスチェックを除外したいフォルダやファイルを指定できます。 /root/clamscan.exclude 追記例 echo "/sys/" >> /root/clamscan.exclude
以上で設定完了です。