ClamAVのオンアクセススキャン設定
ClamAVでOnAccessScan設定ができるかどうか、試しておりましてね。
設定をした記録を残したい思います。
【前提環境】
この設定は、以下の環境で設定したものになります。
OS:Ubuntu 20.04 Focal Fossa
ClamAV関連のパッケージ:
clamav-base、clamav-daemon、clamav-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/tmpOnAccessExtraScanning 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使った方が無難だけど、無償でもやればできることが確認できた。