ClamAVのオンアクセススキャン設定

ClamAVでOnAccessScan設定ができるかどうか、試しておりましてね。

設定をした記録を残したい思います。

 

【前提環境】

この設定は、以下の環境で設定したものになります。

OS:Ubuntu 20.04 Focal Fossa

ClamAV関連のパッケージ:

clamav-base、clamav-daemonclamav-docs、clamav-freshclam、clamav、libclamav9
 

【設定】

まずは、カーネルの設定でfanotifyの設定を有効化する必要がある。

「CONFIG_FANOTIFY」と「CONFIG_FANOTIFY_ACCESS_PERMISSIONS」を確認します。

# ls -la /boot/config* ←配下のコンフィグファイルを確認

♯ cat config-5.13.0-1025-aws | grep fanotify

CONFIG_FANOTIFY=y ←yであることの確認

CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y ←yであることの確認

 

clamd.confの設定

オンアクセススキャンの場合、フルスキャン指定だと失敗しがちなので、スキャンディレクトリを「OnAccessIncludePath」で絞ってます。さらに「OnAccessIncludePath」指定の配下フォルダで、除外対象は「OnAccessExcludePath」に指定しています。

 

♯ vi /etc/clamavclamd.conf

OnAccessIncludePath /home

OnAccessIncludePath /root

OnAccessIncludePath /usr/local
OnAccessExcludePath /root/quarantine
OnAccessExcludePath /root/Maildir/tmp

OnAccessExtraScanning true

OnAccessPrevention truec true

 

/lib/systemd/system/にsystemdのユニットファイルを作成します。

# vi /lib/systemd/system/clamonacc.service

[Unit]

Description=ClamAV on Access Scanner

Requires=clamav-daemon.service

After=clamav-daemon.service syslog.target network.target

 

[Service]

Type=simple

User=root

ExecStartPre=/bin/bash -c "while [ ! -S /var/run/clamd.ctl ]; do sleep 1 ; done"

ExecStart=/usr/sbin/clamaoacc -F --config-file=/etc/clamav/clamd.conf --log=/var/log/clamav/clamonacc.log --move=/root/quarantine

 

[Install]

WantedBy=multi-user.target

 

ln -s /lib/systemd/system/clamonacc.service /etc/systemd/system/clamonacc.service

リアルタイムスキャンで検疫ファイルの移動先で/root/quarantineディレクトリを作成、それから/vae/log/clamav/clamonacc.logファイルを作成しておきます。

 

clamonaccの起動

問題なく稼働するか確認します。失敗した場合は、ユニットファイルを修正します。

# systemctl enable clamonacc

# systemctl start clamonacc

# systemctl status clamonacc 

 

eicarの疑似ウイルスファイルを使って検証して、成功したらOK。TrendMicro使った方が無難だけど、無償でもやればできることが確認できた。