1. 概要
これは、トラブルシュートなのであります。
発生は、2022年11月30日。
実は、その前のバージョンは正確ではありません。
アップグレードが終わった時点で、ことが発生したもので、アップグレードのバージョンが下記の通りで
$ pkg version -v | grep clamav
clamav-1.0.0,1 = up-to-date with index
インストール時のログに、下記の表示があったので
Installed packages to be REMOVED:
clamav: 0.105.1_5,1
Number of packages to be removed: 1
The operation will free 22 MiB.
[1/1] Deinstalling clamav-0.105.1_5,1...
[1/1] Deleting files for clamav-0.105.1_5,1: 100%
まぁ、類推したものですが。
アップグレードしたところで、「clamav-clamd」を先どうしようとしたら、こける。
起動しようとすると。
$ service clamav-clamd start
Starting clamav_clamd.
LibClamAV Error: cli_loadinfo: Incorrect digital signature
LibClamAV Error: cli_loadinfo: Problem parsing database at line 25
LibClamAV Error: Can't load daily.info: Malformed database
LibClamAV Error: cli_tgzload: Can't load daily.info
LibClamAV Error: Can't load /var/db/clamav/daily.cld: Malformed database
LibClamAV Error: cli_loaddbdir: error loading database /var/db/clamav/daily.cld
ERROR: Wed Nov 30 08:54:27 2022 -> Malformed database
Wed Nov 30 08:54:27 2022 -> Closing the main socket.
/usr/local/etc/rc.d/clamav-clamd: WARNING: failed to start clamav_clamd
てなことになっちゃって、あせるわぁ。
本ページは、下記のサイトを参考にさせていただきました。
「ClamAVのウイルス情報の更新エラーへの対応:Linuxの環境設定に関するメモ」
「【トラブル】【Linux】Clam AntiVirus の トラブルシュート」
「Clam Anti Virus プライベート ミラー の作り方」
「linux - LibClamAV Error: cli_loaddbdir(): No supported database files found in /var/lib/clamav」
2. 調査
なんか、とりあえず、データベースが読めないらしいので、作り直してみようと思って、フォルダごと取り替えてみます。
mv /var/db/clamav /var/db/clamav_
mkdir -pv /var/db/clamav
これで
freshclam
したらば
ClamAV update process started at Wed Nov 30 08:58:18 2022
daily database available for download (remote version: 26735)
Time: 13.6s, ETA: 0.0s [========================>] 57.53MiB/57.53MiB
ERROR: Verification: Can't verify database integrity
Trying again in 5 secs...
daily database available for download (remote version: 26735)
Time: 11.2s, ETA: 0.0s [========================>] 57.53MiB/57.53MiB
ERROR: Verification: Can't verify database integrity
Trying again in 5 secs...
daily database available for download (remote version: 26735)
Time: 11.0s, ETA: 0.0s [========================>] 57.53MiB/57.53MiB
ERROR: Verification: Can't verify database integrity
Giving up on https://database.clamav.net...
ERROR: Update failed for database: daily
ERROR: Database update process failed: Invalid or corrupted CVD/CLD database
ERROR: Update failed.
てなことになるですよ。
これは、データベースミラーの問題かと思って
/usr/local/etc/freshclam.conf
DatabaseMirror db.jp.clamav.net
の箇所を他のデータベースサーバに書き換えて、やってみても同じ・・・。
そのうち
ClamAV update process started at Wed Nov 30 09:09:22 2022
WARNING: FreshClam previously received error code 429 or 403 from the ClamAV Content Delivery Network (CDN).
This means that you have been rate limited or blocked by the CDN.
1. Verify that you're running a supported ClamAV version.
See https://docs.clamav.net/faq/faq-eol.html for details.
2. Run FreshClam no more than once an hour to check for updates.
FreshClam should check DNS first to see if an update is needed.
3. If you have more than 10 hosts on your network attempting to download,
it is recommended that you set up a private mirror on your network using
cvdupdate (https://pypi.org/project/cvdupdate/) to save bandwidth on the
CDN and your own network.
4. Please do not open a ticket asking for an exemption from the rate limit,
it will not be granted.
と、言われます。
これは、1日にアクセスしていい限度があって、それを超えたようで。
うはぁ、困っちゃったなぁと、考えて、いいこと思いつきました。
他のマシンで、「freshclam」して、そのマシンの
/var/db/clamav
をディレクトリごと持ってきて、サービスを起動しようとしたら、冒頭と同じことに・・・。
今、途方に暮れております。
3. 荒業
2日ほど、メールサーバが停止しております。
「freshclam」や「clamav」が使用している、モジュールの何かに問題があるようです。
こういうときは、荒業というか、無理やりというか・・・。
cd /usr/ports/security/clamav
make deinstall clean
して、「pkg」でインストール!
pkg install clamav
これで、なくなっちゃったり、ダウングレードされちゃうものが、たくさんあるのが悩みの種ですが・・・。
ちょっとここでの気になる、メッセージは残しておきます。
なくなっちゃうもの。
Installed packages to be REMOVED:
aom: 3.5.0
cmake: 3.24.3
cmake-core: 3.24.3_2
colord: 1.3.5_2
courier-imap: 5.1.9,2
gtk3: 3.24.34
libavif: 0.11.1
libheif: 1.14.0_1
新規にインストールされるもの。
New packages to be INSTALLED:
clamav: 0.105.1_4,1
perl5.34: 5.34.1_2
ダウングレードされるもの。
Installed packages to be DOWNGRADED:
libgd: 2.3.3_2,1 -> 2.3.3_1,1
perl5: 5.34.1_2 -> 5.32.1_3
再インストールされるもの。
このなかで、12 → 13 になっているものあたりが、原因くさいですが、定かではありません。
Installed packages to be REINSTALLED:
fribidi-1.0.12 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
graphite2-1.3.14 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
json-c-0.16 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
libX11-1.7.2,1
libXScrnSaver-1.2.3_2
libXext-1.3.4,1
libXrender-0.9.10_2
libltdl-2.4.7
libmspack-0.10.1 (ABI changed: 'freebsd:12:x86:64' -> 'freebsd:13:x86:64')
まぁ、これで、「clamav-freshclam」と「clamav-clamd」は、復活したのですが・・・。
4. 後始末
前項の荒業で、なくなっちゃったり、再インストールしないと動作しなくなっちゃったものがありますので、これらをまたインストールする必要がありました。
おおまかには、下記のものですかね。
・/usr/ports/lang/perl5.34
・/usr/ports/mail/spamassassin
・/usr/ports/mail/courier-authlib-vchkpw
・/usr/ports/mail/courier-imap
特に、「perl5.34」は、下記のコマンドでアップグレードしないとなんか、いろいろと面倒です。
portupgrade -f perl5.34
5. 唐突なオチ
上記のようなことを「clamav」の新しいバージョンが出るたびに行っておったのですが。
clamav-1.1.0,1 = up-to-date with port
になりまして。
普通に
portversion -v clamav
したものが、まともに「service」で動作してくれました。
何があったのかは、わからねども、ありがたい。