ClamAVを使ってウイルス対策をしよう!
ここでは、アンチウィルスソフト(Clam AntiVirus)のインストール手順を掲載しています。
※CentOS 7のサポートは2024年6月をもって終了していますが、旧コンテンツとしてこちらのページは残しておきます。
Clam AntiVirusとは…
Clam AntiVirusはオープンソースで開発が進められているアンチウィルスソフトです。オープンソースなので、Linuxだけでなく、Windows版、Mac版のように様々なOSに移植され、使われています。
Clam AntiVirusのインストール
Clam AntiVirusは公式のリポジトリにないので、EPELリポジトリを使ってインストールします。
EPELリポジトリの設定をしていない方は初期設定ページをご覧ください。
EPELリポジトリのClam AntiVirusは、役割ごとパッケージが分かれているので、とりあえずガーッと入れます。
[root@co ~]# yum -y --enablerepo=epel install clamav clamd clamav-update
インストール:
clamav.x86_64 0:0.103.8-3.el7 clamav-update.x86_64 0:0.103.8-3.el7
clamd.x86_64 0:0.103.8-3.el7
依存性関連をインストールしました:
clamav-filesystem.noarch 0:0.103.8-3.el7 clamav-lib.x86_64 0:0.103.8-3.el7
gnutls.x86_64 0:3.3.29-9.el7_6 libprelude.x86_64 0:5.2.0-2.el7
libtool-ltdl.x86_64 0:2.4.2-22.el7_3 nettle.x86_64 0:2.7.1-9.el7_9
pcre2.x86_64 0:10.23-2.el7 trousers.x86_64 0:0.3.14-2.el7
完了しました!
Clam AntiVirusの設定
[root@co ~]# cp -p /etc/freshclam.conf /etc/freshclam.conf.old
[root@co ~]# echo "NotifyClamd /etc/clamd.d/scan.conf" >> /etc/freshclam.conf
[root@co ~]# cp -p /etc/clamd.d/scan.conf /etc/clamd.d/scan.conf.old
[root@co ~]# vi /etc/clamd.d/scan.conf
#LocalSocket /run/clamd.scan/clamd.sock
↓
LocalSocket /var/run/clamd.scan/clamd.sock
User clamscan
↓
User root
Clam AntiVirusの動作確認(1)
まずはウィルス定義ファイルの更新をしてみましょう。
定義ファイルはかなり容量があるので、終わるまで時間かかるかも知れません。
[root@co ~]# freshclam
ClamAV update process started at Fri Mar 10 17:52:51 2023 daily database available for download (remote version: 26837) Time: 5.2s, ETA: 0.0s [========================>] 58.05MiB/58.05MiB Testing database: '/var/lib/clamav/tmp.f427025efe/clamav-d0eff4743194e6a1290eceb0864f28c7.tmp-daily.cvd' ... Database test passed. daily.cvd updated (version: 26837, sigs: 2025297, f-level: 90, builder: raynman) main database available for download (remote version: 62) Time: 13.2s, ETA: 0.0s [========================>] 162.58MiB/162.58MiB Testing database: '/var/lib/clamav/tmp.f427025efe/clamav-da3a29a68c9f18a1c47ffa5a71324781.tmp-main.cvd' ... Database test passed. main.cvd updated (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr) bytecode database available for download (remote version: 334) Time: 0.4s, ETA: 0.0s [========================>] 285.12KiB/285.12KiB Testing database: '/var/lib/clamav/tmp.f427025efe/clamav-85f91a1169e9de461318293b419c4d50.tmp-bytecode.cvd' ... Database test passed. bytecode.cvd updated (version: 334, sigs: 91, f-level: 90, builder: anvilleg) WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamd.scan/clamd.sock: No such file or directory
最後に「WARNING」ということで警告が出ていますが、まだClanAVが起動していないために出ている警告なので、無視してOKです。
それ以外のエラーが出て更新が進まない場合は、「freshclam -u root」を実行してみてください。
更新が終わったら、Clam AntiVirusを起動します。
[root@co ~]# systemctl enable --now clamd@scan
Created symlink from /etc/systemd/system/multi-user.target.wants/clamd@scan.service to /usr/lib/systemd/system/clamd@.service.
[root@co ~]# systemctl status clamd@scan
● clamd@scan.service - clamd scanner (scan) daemon Loaded: loaded (/usr/lib/systemd/system/clamd@.service; enabled; vendor preset: disabled) Active: active (running) since 金 2023-03-10 17:57:44 JST; 2s ago Docs: man:clamd(8) man:clamd.conf(5) https://www.clamav.net/documents/ Process: 7785 ExecStart=/usr/sbin/clamd -c /etc/clamd.d/%i.conf (code=exited, status=0/SUCCESS) Main PID: 7786 (clamd) CGroup: /system.slice/system-clamd.slice/clamd@scan.service mq7786 /usr/sbin/clamd -c /etc/clamd.d/scan.conf
定義ファイルの更新が終わったら、実際にスキャンをしてみます。
[root@co ~]# clamscan --infected --remove --recursive
----------- SCAN SUMMARY ----------- Known viruses: 8657225 Engine version: 0.103.8 Scanned directories: 3 Scanned files: 7 Infected files: 0 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 220.423 sec (3 m 40 s) Start Date: 2023:03:10 17:58:36 End Date: 2023:03:10 18:02:16
Clam AntiVirusの動作確認(2)
無害なウィルスデータをダウンロードし、スキャンされるかどうかを確認します。
まず、無害なテスト用ウィルスデータをダウンロードします。
[root@co ~]# yum -y install wget
インストール:
wget.x86_64 0:1.14-18.el7_6.1
完了しました!
[root@co ~]# wget http://www.eicar.org/download/eicar.com.txt http://www.eicar.org/download/eicar.com
--2023-03-10 18:03:24-- http://www.eicar.org/download/eicar.com.txt www.eicar.org (www.eicar.org) をDNSに問いあわせています... 89.238.73.97, 2a00:1828:1000:2497::2 www.eicar.org (www.eicar.org)|89.238.73.97|:80 に接続しています... 接続しました 。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 68 [text/plain] `eicar.com.txt' に保存中 100%[======================================>] 68 --.-K/s 時間 0s 2023-03-10 18:03:26 (2.41 MB/s) - `eicar.com.txt' へ保存完了 [68/68] --2023-03-10 18:03:26-- http://www.eicar.org/download/eicar.com www.eicar.org:80 への接続を再利用します。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 68 `eicar.com' に保存中 100%[======================================>] 68 --.-K/s 時間 0s 2023-03-10 18:03:26 (2.56 MB/s) - `eicar.com' へ保存完了 [68/68] 終了しました --2023-03-10 18:03:26-- 経過時間: 2.6s ダウンロード完了: 2 ファイル、136 バイトを 0s で取得 (2.48 MB/s)
再度ウィルススキャンをかけてみます。
[root@co ~]# clamscan --infected --remove --recursive
/root/eicar.com: Win.Test.EICAR_HDB-1 FOUND /root/eicar.com: Removed. /root/eicar.com.txt: Win.Test.EICAR_HDB-1 FOUND /root/eicar.com.txt: Removed. ----------- SCAN SUMMARY ----------- Known viruses: 8657225 Engine version: 0.103.8 Scanned directories: 3 Scanned files: 9 Infected files: 2 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 65.513 sec (1 m 5 s) Start Date: 2023:03:10 18:03:52 End Date: 2023:03:10 18:04:58
上のように、"Infected files"が"2"になっていれば、きちんと動作しています。
[root@co ~]# vi /etc/cron.daily/clamscan
#!/bin/bash # 設定ファイル 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@co ~]# chmod +x /etc/cron.daily/clamscan
隔離ディレクトリの設定も忘れずに作成しておきましょう。
[root@co ~]# echo ExcludePath ^/tmp/clamdscan-quarantinedir-.*/ >> /etc/clamd.d/scan.conf
ウィルス以外にも、サーバ内ファイルの改ざんにも対応していく必要があります。次はTripwireをインストールしましょう。
参考にしたサイト様
今回新しく登場したコマンド
- wget
[広告]
トップページ
CentOS 7
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ブログシステム
○オンラインストレージ
○その他