AlmaLinux9.2のウィルス対策にClam AntiVirusをインストール
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
さくらのVPSにAlmaLinux9.2をインストールした覚書です。
今回は、Clam AntiVirusのインストールを行っていきたいと思います。
Clam AntiVirus はアンチウィルスソフトウェアです。
Webサイトから不特定多数の人がファイルをアップロードするような機能を付けるなら、ウィルスチェックも行ったほうが安心です。
なお本番環境で利用される場合はここにある内容だけを鵜呑みにせずセキュリティ専門家に相談されることをお勧めします。
環境
実施日 | 2023-09-08 |
サーバ | さくらのVPS 2G |
OS | AlmaLinux9.2 |
cat /etc/redhat-release
AlmaLinux release 9.2 (Turquoise Kodkod)
Clam AntiVirusのインストール
epelからインストールします。
dnf --enablerepo=epel install clamav clamav-scanner-systemd clamav-update
設定の変更
vi /etc/clamd.d/scan.conf
# をつけてコメントアウト
# Example
コメントを外す
LogFile /var/log/clamd.scan
LogFileMaxSize 2M
LogTime yes
LogRotate yes
LocalSocket /var/run/clamd.scan/clamd.sock
FixStaleSocket yes
ExcludePath ^/proc/
ExcludePath ^/sys/
変更
User root
コマンド集
# 手動起動
systemctl start clamd@scan
# 自動起動が有効か確認
systemctl list-unit-files | grep clamd*
# 自動起動にセット
systemctl enable clamd@scan
# 起動状況の確認
systemctl status clamd@scan
ウィルスデータベースの設定
vi /etc/freshclam.conf
# をつけてコメントアウト
# Example
コメントを外す
UpdateLogFile /var/log/freshclam.log
LogFileMaxSize 2M
LogTime yes
LogRotate yes
変更
DatabaseOwner root
DatabaseMirror db.jp.clamav.net
NotifyClamd /etc/clamd.d/scan.conf
手動でウィルスデータベースを更新
freshclam -u root
スキャンテスト
# スキャンテスト
clamscan --infected --remove --recursive
# テスト用ウィルスをダウンロード
cd /tmp
wget http://www.eicar.org/download/eicar.com
wget http://www.eicar.org/download/eicar.com.txt
wget http://www.eicar.org/download/eicar_com.zip
wget http://www.eicar.org/download/eicarcom2.zip
# もう一度、スキャンテスト
clamscan --infected --remove --recursive
# テスト用ウィルスがひっかかったことを確認できます。
# ディレクトリを指定してスキャン
clamscan --infected --remove --recursive /tmp
スキャンスクリプトの作成
cd
vi clamscan
#!/bin/bash
PATH=/usr/bin:/bin
# clamd update
dnf -y update clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd > /dev/null 2>&1
# excludeopt setup
excludelist=/root/clamscan.exclude
if [ -s $excludelist ]; then
for i in `cat $excludelist`
do
if [ $(echo "$i"|grep \/$) ]; then
i=`echo $i|sed -e 's/^\([^ ]*\)\/$/\1/p' -e d`
excludeopt="${excludeopt} --exclude-dir=^$i"
else
excludeopt="${excludeopt} --exclude=^$i"
fi
done
fi
# virus scan
CLAMSCANTMP=`mktemp`
clamscan --recursive --remove ${excludeopt} / > $CLAMSCANTMP 2>&1
[ ! -z "$(grep FOUND$ $CLAMSCANTMP)" ] && \
# report mail send
grep FOUND$ $CLAMSCANTMP | mail -s "Virus Found in `hostname`" root
rm -f $CLAMSCANTMP
chmod +x clamscan
スキャン対象外の設定
vi /root/clamscan.exclude
/dev/
/etc/
/media/
/mnt/
/opt/
/proc/
/run/
/srv/
/sys/
/usr/
/var/
ディレクトリのときは末尾の / 必須
自動定期スキャン登録
crontab -e
MAILTO="cron@example.com"
0 * * * * /root/clamscan
バージョンを確認
clamscan --version
アップデート
freshclam -u root をすると次のようなエラーが出てるときや深夜のウィルススキャンに異常に時間が掛かるようになったとき
Sat May 13 23:23:16 2023 -> ClamAV update process started at Sat May 13 23:23:16 2023
Sat May 13 23:23:16 2023 -> ^Your ClamAV installation is OUTDATED!
Sat May 13 23:23:16 2023 -> ^Local version: 0.103.7 Recommended version: 0.103.8
Sat May 13 23:23:16 2023 -> DON'T PANIC! Read https://docs.clamav.net/manual/Installing.html
Sat May 13 23:23:16 2023 -> daily.cvd database is up-to-date (version: 26905, sigs: 2034567, f-level: 90, builder: raynman)
Sat May 13 23:23:16 2023 -> main.cvd database is up-to-date (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
Sat May 13 23:23:16 2023 -> bytecode.cvd database is up-to-date (version: 334, sigs: 91, f-level: 90, builder: anvilleg)
# 確認
dnf --enablerepo=epel list clamav
# 更新
dnf --enablerepo=epel update clamav
# ウィルスデータベースを更新
freshclam -u root
アップデート後はデータベース更新も正常になっていることを確認できます。
Sat May 13 23:31:35 2023 -> ClamAV update process started at Sat May 13 23:31:35 2023
Sat May 13 23:31:35 2023 -> daily.cvd database is up-to-date (version: 26905, sigs: 2034567, f-level: 90, builder: raynman)
Sat May 13 23:31:35 2023 -> main.cvd database is up-to-date (version: 62, sigs: 6647427, f-level: 90, builder: sigmgr)
Sat May 13 23:31:35 2023 -> bytecode.cvd database is up-to-date (version: 334, sigs: 91, f-level: 90, builder: anvilleg)
深夜の /root/clamscan で2~3時間CPU振り切っていたのも、数分で完了するようになりました。
ということで、原因はバージョンが古いことでした。