ヘルプ:アンチウィルスソフト導入(Clam AntiVirus)(CentOS7)
提供:あわ自由帳
メインページ > ヘルプ:目次 > ヘルプ:自宅サーバー構築(CentOS7) > アンチウィルスソフト導入(Clam AntiVirus)(CentOS7)
- Linux用のフリーのアンチウイルスソフトであるClam AntiVirusを導入する。
- yum用リポジトリ追加(CentOS7)を、導入済みとする。
Clam AntiVirusインストール
[root@host2 ~]# yum --enablerepo=epel -y install clamav clamav-server clamav-server-systemd clamav-update clamav-scanner
ウイルス定義ファイル最新化
ウイルス定義ファイル更新設定
[root@host2 ~]# 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@host2 ~]# 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@host2 ~]# freshclam ← ウイルス定義ファイル最新化 ClamAV update process started at Sun May 5 21:58:48 2019 Downloading main.cvd [100%] main.cvd updated (version: 58, sigs: 4566249, f-level: 60, builder: sigmgr) Downloading daily.cvd [100%] daily.cvd updated (version: 25440, sigs: 1562805, f-level: 63, builder: raynman) Downloading bytecode.cvd [100%] bytecode.cvd updated (version: 328, sigs: 94, f-level: 63, builder: neo) Database updated (6129148 signatures) from database.clamav.net (IP: 104.16.218.84) 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
Clam AntiVirus設定
[root@host2 ~]# 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@host2 ~]# systemctl start clamd@scan ← clamd起動 [root@host2 ~]# systemctl enable clamd@scan ← clamd自動起動設定 [root@host2 ~]# systemctl status clamd@scan ← clamdステータス ● clamd@scan.service - Generic clamav scanner daemon Loaded: loaded (/usr/lib/systemd/system/clamd@scan.service; enabled; vendor preset: disabled) Active: active (running) since 日 2019-05-05 22:05:37 JST; 19s ago Docs: man:clamd(8) man:clamd.conf(5) https://www.clamav.net/documents/ Main PID: 28112 (clamd) CGroup: /system.slice/system-clamd.slice/clamd@scan.service mq28112 /usr/sbin/clamd -c /etc/clamd.d/scan.conf 5月 05 22:05:36 host2.sudachi.jp clamd[28112]: ELF support enabled. 5月 05 22:05:36 host2.sudachi.jp clamd[28112]: Mail files support enabled. 5月 05 22:05:36 host2.sudachi.jp clamd[28112]: OLE2 support enabled. 5月 05 22:05:36 host2.sudachi.jp clamd[28112]: PDF support enabled. 5月 05 22:05:36 host2.sudachi.jp clamd[28112]: SWF support enabled. 5月 05 22:05:36 host2.sudachi.jp clamd[28112]: HTML support enabled. 5月 05 22:05:36 host2.sudachi.jp clamd[28112]: XMLDOCS support enabled. 5月 05 22:05:36 host2.sudachi.jp clamd[28112]: HWP3 support enabled. 5月 05 22:05:36 host2.sudachi.jp clamd[28112]: Self checking every 600 sec.... 5月 05 22:05:37 host2.sudachi.jp systemd[1]: Started Generic clamav scanne.... Hint: Some lines were ellipsized, use -l to show in full.
ウイルススキャンテスト
[root@host2 ~]# clamdscan -c /etc/clamd.d/scan.conf --remove ← ウイルススキャンテスト(ウイルスなしの場合) /root: OK ----------- SCAN SUMMARY ----------- Infected files: 0 ← ウイルスは検知されなかった Time: 1.924 sec (0 m 1 s) [root@host2 ~]# wget http://www.eicar.org/download/eicar.com ← テスト用ウイルスをダウンロード [root@host2 ~]# wget http://www.eicar.org/download/eicar.com.txt ← テスト用ウイルスをダウンロード [root@host2 ~]# wget http://www.eicar.org/download/eicar_com.zip ← テスト用ウイルスをダウンロード [root@host2 ~]# wget http://www.eicar.org/download/eicarcom2.zip ← テスト用ウイルスをダウンロード [root@host2 ~]# 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@host2 ~]# 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@host2 ~]# chmod +x /etc/cron.daily/clamdscan ← ウイルススキャン日次実行スクリプトへ実行権限付加 [root@host2 ~]# echo ExcludePath ^/tmp/clamdscan-quarantinedir-.*/ >> /etc/clamd.d/scan.conf ← ウイルス隔離ディレクトリをスキャン対象外にする [root@host2 ~]# echo ExcludePath ^/proc/ >> /etc/clamd.d/scan.conf ← 例として/procディレクトリをスキャン対象外にする [root@host2 ~]# echo ExcludePath ^/sys/ >> /etc/clamd.d/scan.conf ← 例として/sysディレクトリをスキャン対象外にする [root@host2 ~]# systemctl restart clamd@scan ← clamd再起動(スキャン除外設定反映)
これで、毎日定期的に全ファイルのウイルススキャンが行われ、ウイルスを検知した場合のみroot宛にメールが送られてくるようになる。
ウイルス検知後の対応
ウイルス検知メールが送られてきた場合、内容を確認し、ウイルスであると確認できた場合、当該ファイルを隔離先(ウイルス検知メール件名に記載)から削除する。
ウイルスでない(ClamAVによる誤検知)と確認できた場合、当該ファイルを隔離先から復元し、次回以降、誤検知しないように当該ファイルをスキャン対象外にする。