ClamAVを使ってウイルス対策をしよう!
ここでは、アンチウィルスソフト(Clam AntiVirus)のインストール手順を掲載しています。
[広告]
Clam AntiVirusとは…
Clam AntiVirusはオープンソースで開発が進められているアンチウィルスソフトです。オープンソースなので、Linuxだけでなく、Windows版、Mac版のように様々なOSに移植され、使われています。
Clam AntiVirusのインストール
Clam AntiVirusは公式のリポジトリにないので、EPELリポジトリを使ってインストールします。
EPELリポジトリの設定をしていない方は初期設定ページをご覧ください。
EPELリポジトリのClam AntiVirusは、役割ごとパッケージが分かれているので、ホイホイと入れていきます。
[root@al9 ~]# dnf --enablerepo=epel -y install clamav clamd clamav-update
Installed:
clamav-1.0.4-1.el9.x86_64 clamav-filesystem-1.0.4-1.el9.noarch
clamav-freshclam-1.0.4-1.el9.x86_64 clamav-lib-1.0.4-1.el9.x86_64
clamd-1.0.4-1.el9.x86_64 Complete!
Clam AntiVirusの設定
[root@al9 ~]# cp -p /etc/freshclam.conf /etc/freshclam.conf.old
[root@al9 ~]# echo "NotifyClamd /etc/clamd.d/scan.conf" >> /etc/freshclam.conf
[root@al9 ~]# cp -p /etc/clamd.d/scan.conf /etc/clamd.d/scan.conf.old
[root@al9 ~]# 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@al9 ~]# freshclam
ClamAV update process started at Fri Jan 12 11:53:38 2024
daily database available for download (remote version: 27151)
Time: 7.2s, ETA: 0.0s [========================>] 59.68MiB/59.68MiB
Testing database: '/var/lib/clamav/tmp.6858f1e639/clamav-54af0f36210bd6a85a83d81662a5415e.tmp-daily.cvd' ...
Database test passed.
daily.cvd updated (version: 27151, sigs: 2050633, f-level: 90, builder: raynman)
main database available for download (remote version: 62)
Time: 17.9s, ETA: 0.0s [========================>] 162.58MiB/162.58MiB
Testing database: '/var/lib/clamav/tmp.6858f1e639/clamav-d3a7d6f5be33886dbe83517e366ec65a.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.6858f1e639/clamav-51bd0c0dfe294c0b490dbae27e109aeb.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@al9 ~]# systemctl enable --now clamd@scan
Created symlink /etc/systemd/system/multi-user.target.wants/clamd@scan.service → /usr/lib/systemd/system/clamd@.service.
[root@al9 ~]# systemctl status clamd@scan
● clamd@scan.service - clamd scanner (scan) daemon
Loaded: loaded (/usr/lib/systemd/system/clamd@.service; enabled; preset: disabled)
Active: active (running) since Fri 2024-01-12 12:05:02 JST; 41ms ago
Docs: man:clamd(8)
man:clamd.conf(5)
https://www.clamav.net/documents/
Process: 4071 ExecStart=/usr/sbin/clamd -c /etc/clamd.d/scan.conf (code=exited, status=0/SUCCESS)
Main PID: 4072 (clamd)
Tasks: 2 (limit: 23048)
Memory: 1.2G
CPU: 1min 515ms
CGroup: /system.slice/system-clamd.slice/clamd@scan.service
mq4072 /usr/sbin/clamd -c /etc/clamd.d/scan.conf
定義ファイルの更新が終わったら、実際にスキャンをしてみます。
[root@al9 ~]# clamscan --infected --remove --recursive
----------- SCAN SUMMARY -----------
Known viruses: 8682506
Engine version: 1.0.4
Scanned directories: 2
Scanned files: 8
Infected files: 0
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 64.228 sec (1 m 4 s)
Start Date: 2024:01:12 12:08:34
End Date: 2024:01:12 12:09:39
何も検出されなかったため、"Infected files"が"0"ですね。
Clam AntiVirusの動作確認(2)
テスト用の無害なウィルスデータをダウンロードし、スキャンされるかどうかを確認します。
まず、テスト用データをダウンロードします。
[root@al9 ~]# dnf -y install wget
Installed:
wget-1.21.1-7.el9.x86_64 Complete!
[root@al9 ~]# wget https://secure.eicar.org/eicar.com.txt https://secure.eicar.org/eicar.com
--2024-01-12 12:23:49-- https://secure.eicar.org/eicar.com.txt Resolving secure.eicar.org (secure.eicar.org)... 89.238.73.97, 2a00:1828:1000:2497::2 Connecting to secure.eicar.org (secure.eicar.org)|89.238.73.97|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 68 [text/plain] Saving to: ‘eicar.com.txt’ eicar.com.txt 100%[===================>] 68 --.-KB/s in 0s 2024-01-12 12:23:52 (29.9 MB/s) - ‘eicar.com.txt’ saved [68/68] --2024-01-12 12:23:52-- https://secure.eicar.org/eicar.com Reusing existing connection to secure.eicar.org:443. HTTP request sent, awaiting response... 200 OK Length: 68 Saving to: ‘eicar.com’ eicar.com 100%[===================>] 68 --.-KB/s in 0s 2024-01-12 12:23:52 (24.9 MB/s) - ‘eicar.com’ saved [68/68] FINISHED --2024-01-12 12:23:52-- Total wall clock time: 3.0s Downloaded: 2 files, 136 in 0s (27.2 MB/s)
再度ウィルススキャンをかけてみます。
[root@al9 ~]# clamscan --infected --remove --recursive
/root/eicar.com.txt: Win.Test.EICAR_HDB-1 FOUND /root/eicar.com.txt: Removed. /root/eicar.com: Win.Test.EICAR_HDB-1 FOUND /root/eicar.com: Removed. ----------- SCAN SUMMARY ----------- Known viruses: 8682506 Engine version: 1.0.4 Scanned directories: 2 Scanned files: 11 Infected files: 2 Data scanned: 0.00 MB Data read: 0.00 MB (ratio 0.00:1) Time: 66.235 sec (1 m 6 s) Start Date: 2024:01:12 12:24:21 End Date: 2024:01:12 12:25:27
上のように、"Infected files"が"2"になっていれば、きちんと動作しています。
[root@al9 ~]# 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@al9 ~]# chmod +x /etc/cron.daily/clamscan
隔離ディレクトリの設定も忘れずに作成しておきましょう。
[root@al9 ~]# echo ExcludePath ^/tmp/clamdscan-quarantinedir-.*/ >> /etc/clamd.d/scan.conf
ウィルス以外にも、サーバ内ファイルの改ざんにも対応していく必要があります。次はTripwireをインストールしましょう。
参考にしたサイト様
今回新しく登場したコマンド
- wget
[広告]
トップページ
AlmaLinux 9
○インストール準備
○仮想化準備(VMware)
○仮想化準備(Hyper-V)
○仮想化準備(Proxmox)
○基本操作
○導入
○セキュリティ対策
○Dynamic DNS
○NTPサーバ
○データベース
○WEBサーバ
○FTPサーバ
○メールサーバ
○DNSサーバ
○ブログシステム
○その他