サーバー上でのウィルス対策ツールは、サーバーの負荷などを考えると絶対に入れた方がいいとも言い切れないが、無いよりはマシかもという保険的な対策として導入してみた。
EPEL リポジトリ導入
# rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Clam AntiVirus 導入
# yum -y --enablerepo=epel install clamd
以下のコマンドで root 権限でのみ動作するように変更する。
# vim /etc/clamd.conf
エディタで開かれた先で、以下のように変更する。
User clamav ↓ #User clamav
Clam AntiVirusを起動する
# /etc/rc.d/init.d/clamd start
clamdを自動起動に設定する
# chkconfig clamd on
ウィルス定義ファイル更新機能の有効化する
# vim /etc/freshclam.conf
エディタで開かれた先に、Exampleの文字を探す。コメントアウトされていなかったら#を先頭に追記する。
#Example
最新のウィルス定義ファイルに更新する
# freshclam
ウィルススキャンテストをする
# clamscan --infected --remove --recursive
以下のような結果がでる。
----------- SCAN SUMMARY ----------- Known viruses: 3979535 Engine version: 0.98.7 Scanned directories: 2 Scanned files: 7 Infected files: 0 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 12.344 sec (0 m 12 s)
ウィルススキャンの定期自動実行設定をする
このままだと、手動コマンドで実行しないかぎりウィルススキャンしてくれないので、cronで定期的に実施させ、その結果をrootにメールで送信するように設定する。
# vim /etc/cron.daily/virusscan
開かれた画面で、以下のコマンドをコピペする。
※エディタのバグなのか、長文をコピペすると先頭や語尾が切れたりする場合があるので保存する前によく注意しよう。
#!/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
最後に、cron.dailyに設置したvirusscanの実行権限を付与する。
# chmod +x /etc/cron.daily/virusscan