ウィルス対策

動作確認システム CentOS 7

コンピュータをコンピュータウィルスから守らなければならないのはもはや常識である。 CentOSでClamAVを導入して対策する方法を紹介する。

インストール

clamdとclamavをインストールする。

yum install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd

clamdデーモンの設定

scan.confファイルを編集する。

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

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

#FixStaleSocket yes
↓
FixStaleSocket yes

#ExcludePath ^/proc/
#ExcludePath ^/sys/
↓
ExcludePath ^/proc/
ExcludePath ^/sys/
ExcludePath ^/dev/

User clamscan
↓
User root

#DetectBrokenExecutables yes
↓
DetectBrokenExecutables no

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

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

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

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

clamdデーモンの起動、自動起動設定

clamdデーモンを起動し、自動起動するように設定する。

systemctl start clamd@scan
systemctl enable clamd@scan

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

ウイルスデータベース更新設定のために、freshclam.confファイルを編集する。

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 root

#DatabaseMirror db.XY.clamav.net
↓
DatabaseMirror db.jp.clamav.net

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

ウイルスデータベース更新設定のために、freshclamファイルも確認する。

vi /etc/sysconfig/freshclam

以下のように、FRESHCLAM_DELAYがコメント化されていることを確認する。

# FRESHCLAM_DELAY=

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

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

freshclam -u root

ウイルスデータベース自動更新

「/etc/cron.d/clamav-update」ファイルが自動的に作成されて、「cron」への設定が行われる。これにより、3時間おきにウイルスデータベースの更新がチェックされる。

(任意)proxy設定

proxyが必要な場合に設定する。

vi /etc/freshclam.conf

以下を変更。

# Proxy settings
# Default: disabled
HTTPProxyServer proxy.server
HTTPProxyPort 8080
#HTTPProxyUsername myusername
#HTTPProxyPassword mypass

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

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-server \
clamav-data \
clamav-update \
clamav-filesystem \
clamav \
clamav-scanner \
clamav-scanner-systemd \
clamav-devel \
clamav-lib \
clamav-server-systemd"

# clamd update
yum -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 * * * root /root/virus_scan.sh
%d人のブロガーが「いいね」をつけました。