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@co7 ~]# yum -y --enablerepo=epel install clamav clamd clamav-update
インストール:
clamav.x86_64 0:0.103.11-1.el7 clamav-update.x86_64 0:0.103.11-1.el7
clamd.x86_64 0:0.103.11-1.el7
依存性関連をインストールしました:
clamav-filesystem.noarch 0:0.103.11-1.el7 clamav-lib.x86_64 0:0.103.11-1.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@co7 ~]# cp -p /etc/freshclam.conf /etc/freshclam.conf.old
[root@co7 ~]# echo "NotifyClamd /etc/clamd.d/scan.conf" >> /etc/freshclam.conf
[root@co7 ~]# sed -i.bak 's/User clamscan/User root/g' /etc/clamd.d/scan.conf
[root@co7 ~]# echo "LocalSocket /var/run/clamd.scan/clamd.sock" >> /etc/clamd.d/scan.conf
Clam AntiVirusの動作確認(1)
まずはウィルス定義ファイルの更新をしてみましょう。
定義ファイルはかなり容量があるので、終わるまで時間かかるかも知れません。
これもいつまでできるかなぁ…。
[root@co7 ~]# freshclam
ClamAV update process started at Tue Jul 2 00:28:37 2024 daily database available for download (remote version: 27323) Time: 3.4s, ETA: 0.0s [========================>] 60.87MiB/60.87MiB Testing database: '/var/lib/clamav/tmp.b66374b7e3/clamav-ee2e0954c37806725886b26293311f4f.tmp-daily.cvd' ... Database test passed. daily.cvd updated (version: 27323, sigs: 2063707, f-level: 90, builder: raynman) main database available for download (remote version: 62) Time: 6.7s, ETA: 0.0s [========================>] 162.58MiB/162.58MiB Testing database: '/var/lib/clamav/tmp.b66374b7e3/clamav-29a1ff8c898b559d407bca2d963714d5.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: 335) Time: 0.2s, ETA: 0.0s [========================>] 282.94KiB/282.94KiB Testing database: '/var/lib/clamav/tmp.b66374b7e3/clamav-0b1557e20ec95948b3abe0f084a9a512.tmp-bytecode.cvd' ... Database test passed. bytecode.cvd updated (version: 335, sigs: 86, f-level: 90, builder: raynman) 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@co7 ~]# 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@co7 ~]# 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 火 2024-07-02 00:31:09 JST; 10s ago Docs: man:clamd(8) man:clamd.conf(5) https://www.clamav.net/documents/ Process: 7820 ExecStart=/usr/sbin/clamd -c /etc/clamd.d/%i.conf (code=exited, status=0/SUCCESS) Main PID: 7821 (clamd) CGroup: /system.slice/system-clamd.slice/clamd@scan.service mq7821 /usr/sbin/clamd -c /etc/clamd.d/scan.conf
定義ファイルの更新が終わったら、実際にスキャンをしてみます。
[root@co7 ~]# clamscan --infected --remove --recursive
----------- SCAN SUMMARY ----------- Known viruses: 8695284 Engine version: 0.103.11 Scanned directories: 3 Scanned files: 7 Infected files: 0 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 20.431 sec (0 m 20 s) Start Date: 2024:07:02 00:31:53 End Date: 2024:07:02 00:32:13
Clam AntiVirusの動作確認(2)
無害なウィルスデータをダウンロードし、スキャンされるかどうかを確認します。
まず、無害なテスト用ウィルスデータをダウンロードします。
[root@co7 ~]# yum -y install wget
インストール:
wget.x86_64 0:1.14-18.el7_6.1
完了しました!
[root@co7 ~]# wget https://files.trendmicro.com/products/eicar-file/eicar.com
--2024-07-02 00:36:26-- https://files.trendmicro.com/products/eicar-file/eicar.com files.trendmicro.com (files.trendmicro.com) をDNSに問いあわせています... 23.54.60.149, 2600:140b:1c00:380::b57, 2600:140b:1c00:399::b57 files.trendmicro.com (files.trendmicro.com)|23.54.60.149|:443 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 68 [application/octet-stream] `eicar.com' に保存中 100%[======================================>] 68 --.-K/s 時間 0s 2024-07-02 00:36:26 (10.8 MB/s) - `eicar.com' へ保存完了 [68/68]
再度ウィルススキャンをかけてみます。
[root@co7 ~]# clamscan --infected --remove --recursive
/root/eicar.com: Win.Test.EICAR_HDB-1 FOUND /root/eicar.com: Removed. ----------- SCAN SUMMARY ----------- Known viruses: 8695284 Engine version: 0.103.11 Scanned directories: 3 Scanned files: 8 Infected files: 1 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 20.308 sec (0 m 20 s) Start Date: 2024:07:02 00:36:40 End Date: 2024:07:02 00:37:00
上のように、"Infected files"が"1"になっていれば、きちんと動作しています。
[root@co7 ~]# 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@co7 ~]# chmod +x /etc/cron.daily/clamscan
隔離ディレクトリの設定も忘れずに作成しておきましょう。
[root@co7 ~]# echo "ExcludePath ^/tmp/clamdscan-quarantinedir-.*/" >> /etc/clamd.d/scan.conf
ウィルス以外にも、サーバ内ファイルの改ざんにも対応していく必要があります。次はTripwireをインストールしましょう。
参考にしたサイト様
CentOSで自宅サーバー構築 - アンチウィルスソフト導入(Clam AntiVirus)
今回新しく登場したコマンド
- wget
- clamscan
[広告]
トップページ
CentOS 7
○準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ブログシステム
○オンラインストレージ
○その他