CentOS 7のClam AntiVirus設定をSedコマンドを使って楽に出来るようにしてみた

 

CentOS 7で、Clam AntiVirusをセットアップしてたのですが、設定ファイルの書き換えも毎回同じなので、楽にできるようにしてみようとSedコマンド等により一気に出来るように試してみました。
Clam AntiVirusセットアップ自体は、下記記事を参考にしています。(非常によく記載されています。)

https://centossrv.com/clamav.shtml

1 .コピペでセットアップできるようしてみる

複数台セットアップする際を想定して、vi等でファイルを開くのではなく、Sedコマンドを中心に設定ファイルを書き換えるようにしてみました。
【注意】Proxyサーバを利用しない場合は、3)の項目を削除してください。

# 1)パッケージインストール

yum install -y epel-release
yum -y install clamav clamav-server-systemd clamav-update clamav-scanner-systemd

# 2)設定ファイルの編集

cp -p /etc/freshclam.conf /etc/freshclam.conf.`date “+%Y%m%d”`
sed -i -e “s/^Example/#Example/g” /etc/freshclam.conf
sed -i -e “s/^#NotifyClamd \/path\/to\/clamd.conf/NotifyClamd \/etc\/clamd.d\/scan.conf/g” /etc/freshclam.conf

# 3)Proxy経由でアクセスする場合(Proxyサーバを利用しない場合はこの項目は削除してください。)

sed -i -e “s/^#HTTPProxyServer myproxy.com/HTTPProxyServer ”Proxyサーバ名”/g” /etc/freshclam.conf
sed -i -e “s/^#HTTPProxyPort 1234/HTTPProxyPort ”Proxy Port番号”/g” /etc/freshclam.conf

# 4)ウイルス定義ファイル自動更新設定ファイル編集

cp -p /etc/sysconfig/freshclam /etc/sysconfig/freshclam.`date “+%Y%m%d”`
sed -i -e “s/^FRESHCLAM_DELAY=/#FRESHCLAM_DELAY=/g” /etc/sysconfig/freshclam

# 5)Clam AntiVirus設定ファイル編集

cp -p /etc/clamd.d/scan.conf /etc/clamd.d/scan.conf.`date “+%Y%m%d”`
sed -i -e “s/^Example/#Example/g” /etc/clamd.d/scan.conf
sed -i -e “s/^User clamscan/#User clamscan/g” /etc/clamd.d/scan.conf
sed -i -e “s/^#LocalSocket/LocalSocket/g” /etc/clamd.d/scan.conf

# 6)ウイルス定義ファイル更新
freshclam

#7)Clam AntiVirus起動
cp -p /lib/systemd/system/clamd@.service /lib/systemd/system/clamd@.service.`date “+%Y%m%d”`
echo “TimeoutSec=5min” >> /lib/systemd/system/clamd@.service

#8)サービス自動起動設定とサービス起動
systemctl daemon-reload
systemctl enable clamd@scan
systemctl start clamd@scan

#9)定期実行ファイルを作成(#設定ファイル以下の行がファイルの内容になりますので、すべて削除せずに張り付けます。)

cat << ‘EOF’ > /etc/cron.daily/clamdscan
# 設定ファイル
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}
EOF

#10)定期実行ファイルに実行権限を付与する。

chmod +x /etc/cron.daily/clamdscan

#11)検索除外ディレクトリを追加する。必要なもの適時追加してください。
echo ExcludePath ^/tmp/clamdscan-quarantinedir-.*/ >> /etc/clamd.d/scan.conf
echo ExcludePath ^/proc/ >> /etc/clamd.d/scan.conf
echo ExcludePath ^/sys/ >> /etc/clamd.d/scan.conf

2.【注意】お手軽に使うためのものです

複数台セットアップする場合は、事前に準備した設定ファイルを配布したり、最初からセットアップしたイメージ展開の方がよいと思います。実際、そっちの方が格好良いと思います。今回は、お手軽にセットアップする手段として、こういう方法もあるかなぁ・・・と思いやってみました。

※設定内容を確認したい場合は、適時catコマンドでファイル表示してください。