アンチウィルスソフト導入(Clam AntiVirus)

最終更新日: 2014.02.19

<<トップページ <<新着情報 <<サイト内検索 <<CentOSで自宅サーバー構築 <<Scientific Linuxで自宅サーバー構築

■概要

Linux用のフリーのアンチウィルスソフトであるClam AntiVirusを導入する。


■Clam AntiVirusインストール

Fedora標準のClam AntiVirusはバージョンが古いので、本家版をソースからインストールする。
[root@fedora ~]# yum -y install zlib-devel ← Clam AntiVirusインストールに必要なzlib-develインストール

[root@fedora ~]# yum -y install gmp-devel ← ウィルスデータベース検証に必要なgmp-develインストール
※ウィルスデータベース更新時に下記の警告メッセージが出力されないようにする
SECURITY WARNING: NO SUPPORT FOR DIGITAL SIGNATURES
See the FAQ at http://www.clamav.net/support/faq for an explanation.

[root@fedora ~]# useradd -s /sbin/nologin clamav -m -d /usr/local/share/clamav -k /dev/null ← clamavユーザ登録

[root@fedora ~]# wget http://jaist.dl.sourceforge.net/sourceforge/clamav/clamav-0.95.3.tar.gz ← Clam AntiVirusダウンロード

※最新版のURLはダウンロードページで確認すること

[root@fedora ~]# tar zxvf clamav-0.95.3.tar.gz ← Clam AntiVirus展開

[root@fedora ~]# cd clamav-0.95.3 ← Clam AntiVirus展開先ディレクトリへ移動

[root@fedora clamav-0.95.3]# ./configure && make && make install ← Clam AntiVirusインストール

[root@fedora clamav-0.95.3]# cd ← Clam AntiVirus展開先ディレクトリを抜ける

[root@fedora ~]# rm -rf clamav-0.95.3 ← Clam AntiVirus展開先ディレクトリを削除

[root@fedora ~]# rm -f clamav-0.95.3.tar.gz ← ダウンロードしたファイルを削除

■Clam AntiVirus設定

[root@fedora ~]# vi /usr/local/etc/clamd.conf ← clamd設定ファイル編集
# Comment or remove the line below.
#Example ← 行頭に#を追加(コメントアウト)

# Uncomment this option to enable logging.
# LogFile must be writable for the user running daemon.
# A full path is required.
# Default: disabled
#LogFile /tmp/clamd.log
LogFile /var/log/clamd.log ← ログを記録する

# Log time with each message.
# Default: no
#LogTime yes
LogTime yes ← ログに日時も記録する

# Path to a local socket file the daemon will listen on.
# Default: disabled (must be specified by a user)
#LocalSocket /tmp/clamd.socket
LocalSocket /tmp/clamd.socket ← ソケット通信設定

# Remove stale socket after unclean shutdown.
# Default: no
#FixStaleSocket yes
FixStaleSocket yes ← clamd強制終了後の再起動不可対処

[root@fedora ~]# vi /usr/local/etc/freshclam.conf ← freshclam設定ファイル編集
# Comment or remove the line below.
#Example ← 行頭に#を追加(コメントアウト)

# Path to the log file (make sure it has proper permissions)
# Default: disabled
#UpdateLogFile /var/log/freshclam.log
UpdateLogFile /var/log/freshclam.log ← ログを記録する

# 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 ← ウィルス定義ファイル入手元を日本に変更

# Send the RELOAD command to clamd.
# Default: no
#NotifyClamd /path/to/clamd.conf
NotifyClamd /usr/local/etc/clamd.conf ← ウィルス定義ファイル更新をclamdに通知する

[root@fedora ~]# touch /var/log/freshclam.log ← 空のログファイルを作成

[root@fedora ~]# chown clamav:clamav /var/log/freshclam.log ← ログファイルの所有者を変更

[root@fedora ~]# freshclam ← ウィルス定義ファイル更新
ClamAV update process started at Thu Aug 23 10:26:00 2007
main.cvd is up to date (version: 44, sigs: 133163, f-level: 20, builder: sven)
・
・
・
daily.cvd updated (version: 4032, sigs: 15068, f-level: 21, builder: ccordes)
Database updated (148231 signatures) from db.jp.clamav.net (IP: 203.212.42.128)
WARNING: Clamd was NOT notified: Can't connect to clamd through /tmp/clamd.socket
connect(): No such file or directory

[root@fedora ~]# vi freshclam ← ウィルス定義ファイル更新スクリプト作成
#!/bin/sh
/usr/local/bin/freshclam --quiet

[root@fedora ~]# chmod 700 freshclam ← ウィルス定義ファイル更新スクリプトに実行権限付加

[root@fedora ~]# mv freshclam /etc/cron.hourly/ ← ウィルス定義ファイル更新スクリプトを1時間毎に自動実行されるディレクトリへ移動

[root@fedora ~]# vi /etc/logrotate.d/clamd ← clamdログローテーション設定ファイル新規作成
/var/log/clamd.log {
    sharedscripts
    postrotate
        /etc/rc.d/init.d/clamd restart > /dev/null || true
    endscript
}

[root@fedora ~]# vi /etc/logrotate.d/freshclam ← freshclamログローテーション設定ファイル作成
/var/log/freshclam.log {
        missingok
        notifempty
        create 644 clamav clamav
}

■Clam AntiVirus起動

[root@fedora ~]# wget http://nchc.dl.sourceforge.net/sourceforge/clamav/clamav-0.94.2.tar.gz ← clamav-0.94.2ダウンロード

[root@fedora ~]# tar zxvf clamav-0.94.2.tar.gz ← clamav-0.94.2展開

[root@fedora ~]# cp clamav-0.94.2/contrib/init/RedHat/clamd /etc/rc.d/init.d/ ← clamd起動スクリプトを所定のディレクトリへコピー

[root@fedora ~]# rm -rf clamav-0.94.2 ← clamav-0.94.2展開先ディレクトリを削除

[root@fedora ~]# rm -f clamav-0.94.2.tar.gz ← clamav-0.94.2を削除

[root@fedora ~]# vi /etc/rc.d/init.d/clamd ← clamd起動スクリプト編集
        #ulimit -f 20000 ← 行頭に#を追加してコメントウアト
※上記は下記メッセージを出力してclamdが起動できない事象の対処
clamd を起動中: /bin/bash: line 1: 25802 File size limit exceeded/usr/local/sbin/clamd

[root@fedora ~]# /etc/rc.d/init.d/clamd start ← clamd起動
Starting clamd (via systemctl):                            [  OK  ]

[root@fedora ~]# chkconfig --add clamd ← clamd自動起動設定(1/2)

[root@fedora ~]# chkconfig clamd on ← clamd自動起動設定(2/2)

■Clam AntiVirus確認

(1)ウィルススキャン確認(ウィルスが存在しない場合)
[root@fedora ~]# clamscan --infected --remove --recursive /etc/passwd ← /etc/passwdをスキャンしてみる

----------- SCAN SUMMARY -----------
Known viruses: 74828
Engine version: 0.88.5
Scanned directories: 0
Scanned files: 1
Infected files: 0
Data scanned: 0.00 MB
Time: 3.692 sec (0 m 3 s)
ウィルスは検出されなかった

(2)ウィルススキャン確認(ウィルスが存在する場合)
[root@fedora ~]# wget http://www.eicar.org/download/eicar.com ;\
wget http://www.eicar.org/download/eicar.com.txt ;\
wget http://www.eicar.org/download/eicar_com.zip ;\
wget http://www.eicar.org/download/eicarcom2.zip ← テスト用のウィルスをダウンロード

[root@fedora ~]# clamscan --infected --remove --recursive . ← 4つのウィルスがあるディレクトリをスキャンしてみる
./eicarcom2.zip: Eicar-Test-Signature FOUND
./eicarcom2.zip: Removed
./eicar_com.zip: Eicar-Test-Signature FOUND
./eicar_com.zip: Removed
./eicar.com: Eicar-Test-Signature FOUND
./eicar.com: Removed
./eicar.com.txt: Eicar-Test-Signature FOUND
./eicar.com.txt: Removed

----------- SCAN SUMMARY -----------
Known viruses: 74828
Engine version: 0.88.5
Scanned directories: 2
Scanned files: 18
Infected files: 4
Data scanned: 0.02 MB
Time: 3.766 sec (0 m 3 s)
ウィルスを検出して削除した

■Clam AntiVirus定期自動実行設定

毎日自動的にウィルス定義ファイル最新化&全ファイルのウィルススキャンを行うようにする

(1)Clam AntiVirus実行スクリプト作成
[root@fedora ~]# vi virusscan ← Clam AntiVirus実行スクリプト作成
#!/bin/bash

PATH=/bin:/usr/local/bin

# excludelist
excludelist=/root/clamscan.exclude

# make excludelist
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

# scan virus
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1

# virus detect message send
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP

[root@fedora ~]# chmod 700 virusscan ← Clam AntiVirus実行スクリプトに実行権限付加

(2)スキャン除外設定
[root@fedora ~]# echo "/backup/backup.tar.bz2" >> clamscan.exclude ← 例として/backup/backup.tar.bz2をスキャン対象外にする

[root@fedora ~]# echo "/proc/" >> clamscan.exclude ← 例として/procディレクトリをスキャン対象外にする

[root@fedora ~]# echo "/sys/" >> clamscan.exclude ← 例として/sysディレクトリをスキャン対象外にする
※ディレクトリを除外する場合は末尾に「/」を付加すること

(3)Clam AntiVirus定期自動実行設定
[root@fedora ~]# mv virusscan /etc/cron.daily/
 ← Clam AntiVirus実行スクリプトを毎日自動実行されるディレクトリへ移動
これで、毎日自動的にウィルス定義ファイルの最新化後、全ファイルのウィルススキャンが行われ、ウィルスを検知した場合のみroot宛にメールが送られてくるようになる。
※Clam AntiVirusインストールディレクトリにテスト用ウィルスがあるので、インストール後最初の全体スキャンでは必ずウィルス検知メールがくる

■clamav-updateインストール

ソースからインストールしたClam AntiVirusを自動アップデートしてくれるclamav-updateをインストールする。
[root@fedora ~]# yum -y install curl ← clamav-updateに必要なcurlインストール

[root@fedora ~]# wget "http://sourceforge.jp/frs/redir.php?m=iij&f=%2Fclamav-update%2F44451%2Fclamav-update-2.2.6.tar.gz"
 ← clamav-updateダウンロード

※最新版のURLはダウンロードページで確認すること

[root@fedora ~]# tar zxvf clamav-update-2.2.6.tar.gz ← clamav-update展開

[root@fedora ~]# cd clamav-update-2.2.6 ← clamav-update展開先ディレクトリへ移動

[root@fedora clamav-update-2.2.6]# ./install.sh ← clamav-updateインストール

[root@fedora clamav-update-2.2.6]# cd ← clamav-update展開先ディレクトリを抜ける

[root@fedora ~]# rm -rf clamav-update-2.2.6 ← clamav-update展開先ディレクトリを削除

[root@fedora ~]# rm -f clamav-update-2.2.6.tar.gz ← ダウンロードしたファイルを削除

■clamav-update設定

ウィルスデータベース更新時のClam AntiVirusアップデート検知時に、自動でClam AntiVirusをアップデートする。

[root@fedora ~]# vi /usr/local/etc/freshclam.conf ← ウィルスデータベース更新設定ファイル編集

# By default when started freshclam drops privileges and switches to the
# "clamav" user. This directive allows you to change the database owner.
# Default: clamav (may depend on installation options)
#DatabaseOwner clamav
DatabaseOwner root ← データベース所有者をrootに変更


# Run command when freshclam reports outdated version.
# In the command string %v will be replaced by the new version number.
# Default: disabled
#OnOutdatedExecute command
OnOutdatedExecute /usr/local/bin/clamav-update.pl --config /usr/local/etc/clamav-update.conf
 ← Clam AntiVirusアップデート検知時にclamav-updateを実行する



■関連コンテンツ




▲このページのトップへ戻る

プライバシーポリシー