Clamavをやってみた。そして動かねぇ。

投稿者: | 12月 13, 2021

環境は、Ubuntu 20.04.3 amd64。
Clamavを久々に動かしてみた。ぐぐって、いろいろ設定したがはまりどころ満載。
あんまし、他のWebで書かれていなかった内容を書く。安心してほしい、確実に動く。(動かない理由がわかっているので)

キーワードは、「焦らず、ちゃんと待つ」だった。

想定としては、「aptでインストール、シグネチャーアップデート、スキャン」で楽勝だと思っていたが全く動かず。

以下、流れ

1. インストール
apt install -y clamav clamav-daemon

2. シグネーチャアップデート
clamav-freshclamを止めないと手動で更新できないので、一度止める
systemctl stop clamav-freshclam

第1の罠
/etc/clamav/freshclam.confがリードオンリーなので、パーミッションを変えてから/etc/clamav/freshclam.confを編集。
NotifyClamdの行をコメントアウト
コメントアウトをしないと、clamdのソケットを見に行ってしまう。インストール直後だと、ソケットはできていないのでエラーが表示されてしまう。さらに肝心のclamdは、シグネチャーファイルがないので立ち上がっていないという状態。

手動アップデート
freshclam

3. clamd.confの編集
余計なフォルダをスキャンしないように以下を/etc/clamav/clamd.confに追記
ExcludePath ^/proc
ExcludePath ^/sys
ExcludePath ^/run
ExcludePath ^/dev
ExcludePath ^/snap
Clamav daemonを再起動
systemctl stop clamav-daemon.service
systemctl start clamav-daemon.service

4. Scan開始
第2の罠
/var/run/clamav/clamd.ctlが作成されるまでスキャンが実行できない。このファイルが作成されるまで、自分の環境だと2、3分かかる。
Webには、ソケットファイルをtouchコマンドで作れとか書いてあるけど、それではだめ。ソケットファイルはtouchコマンドでは作成できない。
それに、時間が経てばちゃんと自動で作られる。

第3の罠
clamavユーザが覗けるところしかスキャンできない。sudoでやってもダメ。–fdpass オプションが必要
clamdscan –fdpass SCANPATH

という感じだった。コピペでサクッとやろうとするとまず失敗する。特に第2の罠に気が付くまですごく時間がかかった。
たまにスキャンが成功するので、再度同じ通りにやるとまず成功しない。

これらを踏まえてスクリプトを作ったりしたが、第2の罠のためのソケット生成確認のロジックを入れることで、「aptでインストール、シグネチャーアップデート、スキャン」が実現する。
これ、どこにも書いてねぇ。まさしく、「どこに書いてあったんですか?」ネタ。そう、ここに書いてあるw

解決まで丸2日かかった。グーグル先生に頼りっぱなしは良くないと改めて感じる。

コメントを残す