フリーのウィルス対策ソフトClam AntiVirusを導入してLinux上でもウィルスチェックを行います。ウィルスはどこから来るかわかりませんのでLinux上でも出来得る対策はしておいて間違いはないでしょう。
目次
1.EPELリポジトリの導入
既に導入済みの場合は不要です。rpmforgeリポジトリにもclamavはありますがEPELの方が更新頻度も高くバージョンも新しいようなのでEPELリポジトリを導入することにします。
1 |
# yum -y install epel-release.noarch |
2.インストール前にバージョンとリポジトリを確認
インストール前に、インストール予定のclamav関連バージョンとアップデート先リポジトリを確認しておきます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# yum list | grep clam clamav.x86_64 0.99.2-1.el7 @epel clamav-data.noarch 0.99.2-1.el7 @epel clamav-filesystem.noarch 0.99.2-1.el7 @epel clamav-lib.x86_64 0.99.2-1.el7 @epel clamav-scanner.noarch 0.99.2-1.el7 @epel clamav-scanner-sysvinit.noarch 0.99.2-1.el7 @epel clamav-server.x86_64 0.99.2-1.el7 @epel clamav-server-systemd.noarch 0.99.2-1.el7 @epel clamav-server-sysvinit.noarch 0.99.2-1.el7 @epel clamav-update.x86_64 0.99.2-1.el7 @epel clamav-data-empty.noarch 0.99.2-1.el7 epel clamav-devel.x86_64 0.99.2-1.el7 epel clamav-milter.x86_64 0.99.2-1.el7 epel clamav-milter-systemd.noarch 0.99.2-1.el7 epel clamav-milter-sysvinit.noarch 0.99.2-1.el7 epel clamav-scanner-systemd.noarch 0.99.2-1.el7 epel clamav-unofficial-sigs.noarch 3.7.2-1.el7 epel clamsmtp.x86_64 1.10-12.el7 epel |
すべてEPELならOK。rpmfogeの行が存在した場合は、yum updateで失敗しないように以下の設定をしてclamavのアップデート先リポジトリを限定します。
# vi /etc/yum.repos.d/rpmforge.repo
1 2 |
[rpmforge] exclude=clam* ←epelのclamを使うのでrpmforgeのclamは除外 |
3.clamavの導入
(1)インストール
1 |
# yum -y install clamav clamav-update clamav-server-systemd clamav-scanner |
(2)ウィルス定義ファイル最新化の有効化
Clam AntiVirus 設定ファイル/etc/freshclam.confを以下のように編集します。
# vi /etc/freshclam.conf
1 2 3 4 5 6 7 8 9 |
#Example ← #を追加してコメントアウト(最新化の有効化) #DatabaseDirectory /var/lib/clamav DatabaseDirectory /var/lib/clamav ← コメントを解除 #UpdateLogFile /var/log/freshclam.log UpdateLogFile /var/log/freshclam.log ← コメントを解除 #DatabaseOwner clamupdate DatabaseOwner clamupdate ← コメントを解除 #DatabaseMirror db.XY.clamav.net DatabaseMirror db.jp.clamav.net ← ウィルス定義ファイル入手元を日本に変更 |
(3)Clam AntiVirus 設定ファイルの編集
# vi /etc/sysconfig/freshclam
1 2 |
FRESHCLAM_DELAY=disabled-warn; # REMOVE ME #FRESHCLAM_DELAY=disabled-warn; # REMOVE ME ← #を追加してコメントアウト(自動アップデート有効化) |
(4)ウィルス定義ファイル最新化
1 |
freshclam ← ウィルス定義ファイル最新化</span> |
(5)自動実行スクリプトの作成
# vi /etc/cron.daily/clamscan.sh
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
#!/bin/bash PATH=/usr/bin:/bin # clamavをアップデート yum -y update clamav > /dev/null 2>&1 # ウィルス定義ファイルを最新化 freshclam > /dev/null # ウイルスに関するメッセージを入れる変数作成 CLAMSCANTMP=`mktemp` # スキャン実行、ウイルスが有ったら削除、mktempで作成したファイルにメッセージを入れる clamdscan --remove / > $CLAMSCANTMP 2>&1 # ウイルスが有った場合メッセージをメール送信 [ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \ grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root # ウイルスが無く正しく動作している場合もメール送信 [ -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \ echo "clamdscan normal end" | mail -s "Virus Not Found in `hostname`" root # メールを送ったらmktempで作成したファイルは破棄 rm -f $CLAMSCANTMP |
(6)Clam AntiVirus定期自動実行スクリプトに実行権限付加
# chmod 700 /etc/cron.daily/clamscan.sh
デフォルトでインストールされるウィルス定義ファイルの自動最新化スクリプトを削除
# rm -f /etc/cron.d/clamav-update
4.clamdscanの除外設定
clamscanからclamdscanにすると–excludeオプションが使えません。除外パスは、以下の設定ファイルに設定します。
# /etc/clamd.d/scan.conf
1 2 3 4 |
ExcludePath ^/boot/ ExcludePath ^/proc/ ExcludePath ^/sys/ ExcludePath ^/backup/ |
5.Centos7でのディレクトリ自動作成
CentOS7になってから、/var/run/clamavはtmpファイルということでシャットダウン時に削除されるようです。再起動後のClamav起動に失敗しないようにディレクトリ作成スクリプトを仕込んでおきます。
# vi /etc/tmpfiles.d/clamd.conf
以下の1行を記載しておきます。
1 |
d /var/run/clamav 0755 root root |
6.参考にさせて頂いたサイト
ありがとうございます。