CentOS 8 にClam AntiVirusのインストール
篠原 隆司
アフィリエイト広告を利用しています
このページの内容が役に立ったら X (旧twitter) でフォローして頂けると励みになります
挨拶や報告は無しで大丈夫です
さくらのVPSにCentOS 8をインストールした覚書です。
今回は、wheel ユーザーの設定を行っていきたいと思います。
wheel ユーザーの設定をすると、 su するときにパスワードが不要になります。
また、 su で root になれるユーザーを制限することもできます。
なお本番環境で利用される場合はここにある内容だけを鵜呑みにせずセキュリティ専門家に相談されることをお勧めします。
環境
実施日 | 2020-05-28 |
サーバ | さくらのVPS 2G |
OS | CentOS 8.1 |
cat /etc/redhat-release
CentOS Linux release 8.1.1911 (Core)
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
yum -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