ウイルス対策

動作確認システム CentOS 8

CentOSで コンピュータウイルス 対策を行うために、ClamAVを導入する。

インストール

前もって、リポジトリの追加を参照して、EPELリポジトリを使えるようにしておく

dnf install clamav clamav-data clamav-devel clamav-filesystem clamav-update clamd

スキャン設定

vi /etc/clamd.d/scan.conf

Example
↓
#Example

#LogFile /var/log/clamd.scan
↓
LogFile /var/log/clamd.scan

#LogFileMaxSize 2M
↓
LogFileMaxSize 2M

#LogTime yes
↓
LogTime yes

#LogRotate yes
↓
LogRotate yes

#PidFile /run/clamd.scan/clamd.pid
↓
PidFile /run/clamd.scan/clamd.pid

#TemporaryDirectory /var/tmp
↓
TemporaryDirectory /var/tmp

#LocalSocket /run/clamd.scan/clamd.sock
↓
LocalSocket /run/clamd.scan/clamd.sock

#FixStaleSocket yes
↓
FixStaleSocket yes

#ExcludePath ^/proc/
#ExcludePath ^/sys/
↓
ExcludePath ^/proc/
ExcludePath ^/sys/
ExcludePath ^/dev/
ExcludePath ^/var/lib/
ExcludePath ^/var/log/
ExcludePath ^/etc/
ExcludePath ^/run/

User clamscan
↓
#User clamscan

次のコマンドを叩いて、シンボリックリンクを張る。

ln -s /etc/clamd.d/scan.conf /etc/clamd.conf

そうしないと、次のようなメッセージが表示されて怒られる。

ERROR: Can't open/parse the config file /etc/clamd.conf

サービスを起動、自動起動設定する

systemctl start clamd@scan
systemctl enable clamd@scan

ウイルスデータベース更新の設定

vi /etc/freshclam.conf

Example
↓
#Example

#UpdateLogFile /var/log/freshclam.log
↓
UpdateLogFile /var/log/freshclam.log

#LogFileMaxSize 2M
↓
LogFileMaxSize 2M

#LogTime yes
↓
LogTime yes

#LogRotate yes
↓
LogRotate yes

#DatabaseOwner clamupdate
↓
DatabaseOwner clamupdate

DatabaseMirror database.clamav.net
↓
DatabaseMirror db.jp.clamav.net

#NotifyClamd /path/to/clamd.conf
↓
NotifyClamd /etc/clamd.d/scan.conf

ウイルスデータベース更新の動作確認

以下のコマンドでデータベース更新ができていることを確認する。

freshclam -u root

ウイルススキャン定期自動実行設定

cd /root
vi virus_scan.sh

#!/bin/bash

SCANDIR=/
VIRUS_MVDIR=/root/virus
MAILADDR=admin@example.com
CLAMDSCAN=/bin/clamdscan
HOSTNAME=`example.com`
RUNDATE=`date +%Y%m%d-%H%M%S`
SCANTMP=/tmp/clamdscan_$RUNDATE
LOGFILE=/var/log/clamdscan-cron_$RUNDATE.log

CLAMUPDATE="clamav \
clamav-data \
clamav-devel \
clamav-filesystem \
clamav-lib \
clamav-update \
clamd"

# clamd update
dnf -y update $CLAMUPDATE
$CLAMDSCAN -l $LOGFILE $SCANDIR > $SCANTMP 2>&1

# Mail notification 
[ ! -z "$(grep FOUND$ $SCANTMP)" ] && \
cat $SCANTMP | mail -s "[Virus Found] $HOSTNAME $RUNDATE" $MAILADDR
 
[ -z "$(grep FOUND$ $SCANTMP)" ] && \
cat $SCANTMP | mail -s "[Virus Not Found] $HOSTNAME $RUNDATE" $MAILADDR
 
rm -f $SCANTMP

clamscanのログは、/var/log/clamdscan-cron_[日付].logに出力されるようにしている。 また、rootへスキャン結果のメールが送られるようにしている。

ウイルススキャン実行スクリプトへ実行権限を付加する。

chmod +x virus_scan.sh

「/etc/cron.d/」ディレクトリにファイルを作成して、cronへの登録を行う。

vi /etc/cron.d/virus-scan

以下を入力して、cronへ登録する。以下は4時にウイルススキャンを行う内容である。

MAILTO=root
00 4 * * 0 root /root/virus_scan.sh

なお、メール送信を行うため、postfix、dovecot、mailxをインストールして設定しておくこと。

%d人のブロガーが「いいね」をつけました。