アンチウィルスソフト導入(Clam AntiVirus)(CentOS7)
提供:あわ自由帳
メインページ > CentOS 7 で自宅サーバー構築 > アンチウィルスソフト導入(Clam AntiVirus)(CentOS7)
Linux用のフリーのアンチウイルスソフトであるClam AntiVirusを導入する。
Clam AntiVirusインストール
[root@host4 ~]# yum --enablerepo=epel -y install clamav clamav-server clamav-server-systemd clamav-update clamav-scanner
ウイルス定義ファイル最新化
ウイルス定義ファイル更新設定
[root@host4 ~]# vi /etc/freshclam.conf ← ウイルス定義ファイル更新設定ファイル編集 # Comment or remove the line below. #Example ← 行頭に#を追加してコメントアウト(ウイルス定義ファイル更新機能の有効化) # Send the RELOAD command to clamd. # Default: no #NotifyClamd /path/to/clamd.conf NotifyClamd /etc/clamd.d/scan.conf ← 追加(ウイルス定義ファイル更新をclamdに通知する)
ウイルス定義ファイル自動更新設定
[root@host4 ~]# vi /etc/sysconfig/freshclam ← ウイルス定義ファイル自動更新設定ファイル編集 ### !!!!! REMOVE ME !!!!!! ### REMOVE ME: By default, the freshclam update is disabled to avoid ### REMOVE ME: network access without prior activation #FRESHCLAM_DELAY=disabled-warn # REMOVE ME ← 行頭に#を追加してコメントアウト
ウイルス定義ファイル最新化
[root@host4 ~]# freshclam ← ウイルス定義ファイル最新化 ClamAV update process started at Sat Sep 3 13:22:28 2016 main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer) nonblock_connect: connect timing out (30 secs) Can't connect to port 80 of host database.clamav.net (IP: 172.110.204.67) Trying host database.clamav.net (208.72.56.53)... connect_error: getsockopt(SO_ERROR): fd=4 error=111: Connection refused Can't connect to port 80 of host database.clamav.net (IP: 208.72.56.53) Trying host database.clamav.net (64.22.33.90)... WARNING: getfile: daily-21724.cdiff not found on database.clamav.net (IP: 64.22.33.90) WARNING: getpatch: Can't download daily-21724.cdiff from database.clamav.net WARNING: getfile: daily-21724.cdiff not found on database.clamav.net (IP: 150.214.142.197) WARNING: getpatch: Can't download daily-21724.cdiff from database.clamav.net WARNING: getfile: daily-21724.cdiff not found on database.clamav.net (IP: 194.186.47.19) WARNING: getpatch: Can't download daily-21724.cdiff from database.clamav.net WARNING: Incremental update failed, trying to download daily.cvd Downloading daily.cvd [100%] daily.cvd updated (version: 22176, sigs: 575124, f-level: 63, builder: neo) Downloading bytecode-279.cdiff [100%] Downloading bytecode-280.cdiff [100%] Downloading bytecode-281.cdiff [100%] Downloading bytecode-282.cdiff [100%] Downloading bytecode-283.cdiff [100%] bytecode.cld updated (version: 283, sigs: 53, f-level: 63, builder: neo) Database updated (4793967 signatures) from database.clamav.net (IP: 69.12.162.28) ERROR: Please edit the example config file /etc/clamd.d/scan.conf ERROR: NotifyClamd: Can't find or parse configuration file /etc/clamd.d/scan.conf
※以後のウイルス定義ファイルのアップデートは、/etc/cron.d/clamav-updateにより定期的に自動で行われる
Clam AntiVirus設定
[root@host4 ~]# vi /etc/clamd.d/scan.conf ← Clam AntiVirus設定ファイル編集 # Comment or remove the line below. #Example ← 行頭に#を追加してコメントアウト # Run as another user (clamd must be started by root for this option to work) # Default: don't drop privileges #User clamscan ← 行頭に#を追加してコメントアウト(root権限で動作するようにする) # Path to a local socket file the daemon will listen on. # Default: disabled (must be specified by a user) LocalSocket /var/run/clamd.scan/clamd.sock ← 行頭の#を削除
Clam AntiVirus起動
[root@host4 ~]# systemctl start clamd@scan ← clamd起動 [root@host4 ~]# systemctl enable clamd@scan ← clamd自動起動設定
ウイルススキャンテスト
[root@host4 ~]# clamdscan -c /etc/clamd.d/scan.conf --remove ← ウイルススキャンテスト(ウイルスなしの場合) /root: OK ----------- SCAN SUMMARY ----------- Infected files: 0 ← ウイルスは検知されなかった Time: 1.924 sec (0 m 1 s) [root@host4 ~]# wget http://www.eicar.org/download/eicar.com ← テスト用ウイルスをダウンロード [root@host4 ~]# wget http://www.eicar.org/download/eicar.com.txt ← テスト用ウイルスをダウンロード [root@host4 ~]# wget http://www.eicar.org/download/eicar_com.zip ← テスト用ウイルスをダウンロード [root@host4 ~]# wget http://www.eicar.org/download/eicarcom2.zip ← テスト用ウイルスをダウンロード [root@host4 ~]# clamdscan -c /etc/clamd.d/scan.conf --remove ← ウイルススキャンテスト(ウイルスありの場合) /root/eicar.com: Eicar-Test-Signature FOUND ← ウイルス検知 /root/eicar.com: Removed. ← ウイルス削除 /root/eicar.com.txt: Eicar-Test-Signature FOUND ← ウイルス検知 /root/eicar.com.txt: Removed. ← ウイルス削除 /root/eicar_com.zip: Eicar-Test-Signature FOUND ← ウイルス検知 /root/eicar_com.zip: Removed. ← ウイルス削除 /root/eicarcom2.zip: Eicar-Test-Signature FOUND ← ウイルス検知 /root/eicarcom2.zip: Removed. ← ウイルス削除 ----------- SCAN SUMMARY ----------- Infected files: 4 ← 4つのウイルスを検知した Time: 23.913 sec (0 m 23 s)
ウイルススキャン定期自動実行設定
ウイルススキャン定期自動実行設定
[root@host4 ~]# vi /etc/cron.daily/clamdscan ← ウイルススキャン日次実行スクリプト作成 #!/bin/sh # 設定ファイル CONFIG=/etc/clamd.d/scan.conf # スキャン実行 # ※ウイルス検知時は隔離ディレクトリへ隔離 CLAMSCANLOG=`mktemp` QUARANTINEDIR=/tmp/clamdscan-quarantinedir-$(date +%Y%m%d) mkdir -p ${QUARANTINEDIR} clamdscan -c ${CONFIG} --move=${QUARANTINEDIR} / > ${CLAMSCANLOG} 2>&1 # ウイルス検知時のみroot宛にメール通知 if [ -z "$(grep FOUND$ ${CLAMSCANLOG})" ]; then rm -rf ${QUARANTINEDIR} else grep -A 1 FOUND$ ${CLAMSCANLOG} | mail -s "Virus Found in `hostname` => ${QUARANTINEDIR}" root fi # スキャンログをシスログに出力 cat ${CLAMSCANLOG} | logger -t $(basename ${0}) rm -f ${CLAMSCANLOG} [root@host4 ~]# chmod +x /etc/cron.daily/clamdscan ← ウイルススキャン日次実行スクリプトへ実行権限付加 [root@host4 ~]# echo ExcludePath ^/proc/ >> /etc/clamd.d/scan.conf ← 例として/procディレクトリをスキャン対象外にする [root@host4 ~]# echo ExcludePath ^/sys/ >> /etc/clamd.d/scan.conf ← 例として/sysディレクトリをスキャン対象外にする [root@host4 ~]# systemctl restart clamd@scan ← clamd再起動(スキャン除外設定反映)
これで、毎日定期的に全ファイルのウイルススキャンが行われ、ウイルスを検知した場合のみroot宛にメールが送られてくるようになる。
ウイルス検知後の対応
ウイルス検知メールが送られてきた場合、内容を確認し、ウイルスであると確認できた場合、当該ファイルを隔離先(ウイルス検知メール件名に記載)から削除する。
ウイルスでない(ClamAVによる誤検知)と確認できた場合、当該ファイルを隔離先から復元し、次回以降、誤検知しないように当該ファイルをスキャン対象外にする。