Aus einem zunächst unbekannten Grund hat der Mailserver plötzlich keine E-Mails mehr zugestellt. Aus den Logmeldungen des Mailservers war jedoch schnell erkennbar, dass die Übergabe an den Virenscanner nicht mehr funktioniert. Der Virenscanner ClamAv hat seinen Dienst mit der Fehlermeldung „ClamAv error – No supported database files found in /var/clamav“ quittiert. Beim starten des Dienstes wird die folgende Fehlermeldung in die Logs geschrieben:

systemctl restart clamd
Stopping Clam AntiVirus Daemon:                            [FAILED]
Starting Clam AntiVirus Daemon: LibClamAV Error: cli_loaddb(): No supported database files found in /var/clamav
ERROR: Can't open file or directory                        [FAILED]

Es ist wohl an der Zeit den Dienst aufzuräumen. Bei der weiteren Recherche stoße ich auf aussagekräftigere Meldungen. So behauptet der Dienst, dass mehrere Duplikate seiner Datenbanken Bytecode und Main vorliegen:

clamd[3522]: LibClamAV Warning: Detected duplicate databases /var/lib/clamav/bytecode.cvd and /var/lib/clamav/bytecode.cld, please manually remove one of them
clamd[3522]: LibClamAV Warning: Detected duplicate databases /var/lib/clamav/main.cvd and /var/lib/clamav/main.cld, please manually remove one of them

Wie es die Fehlermeldung sagt habe ich am angegebenen Ort „/var/lib/clamav/“ jene Datenbanken gelöscht, die kleiner bzw. älter waren. Das hat das Problem jedoch verschlimmert und erzeugt neue Fehlermeldungen:

clamd[787]: LibClamAV Warning: Detected duplicate databases /var/lib/clamav/bytecode.cvd and /var/lib/clamav/bytecode.cld, please manually remove one of them
clamd[787]: LibClamAV Error: mpool_malloc(): Can't allocate memory (262144 bytes).
clamd[787]: LibClamAV Error: cli_mpool_strdup(): Can't allocate memory (24 bytes).
clamd[787]: LibClamAV Error: cli_loadhash: Problem parsing database at line 2593014
clamd[787]: LibClamAV Error: Can't load main.mdb: Malformed database
clamd[787]: LibClamAV Error: cli_tgzload: Can't load main.mdb
clamd[787]: LibClamAV Error: Can't load /var/lib/clamav/main.cld: Malformed database
clamd[787]: LibClamAV Error: cli_loaddbdir(): error loading database /var/lib/clamav/main.cld
clamd[787]: ERROR: Malformed database

Nachdem sich der Dienst zuvor darüber beschwert hat, dass die Datenbanken doppelt vorkommen, besagt der nächste ClamAv Error, dass die verbleibende Datenbank nun nicht mehr lesbar ist. An dieser Stelle habe ich beschlossen radikaler vorzugehen und die Datenbanken neu aufzubauen.

Dazu beenden wir im ersten Schritt den Update Service:

killall freshclam

Als zweites werden die verbleibenden Datenbank Dateien in dem Ordner „/var/lib/clamav/“ auch noch gelöscht, da ClamAv nicht in der Lage ist diese zu lesen.

rm bytecode.cvd, daily.cvd main.cvd mirrors.dat

Sollten hier noch alte Format wie oben im Log beschrieben vorliegen z.B. „bytecode.cld“, „main.cld“, … diese auch löschen.

Nun wird der Update Service wieder gestartet:

freshclam 

ClamAV update process started at Sat Sep 05 02:45:39 2020
main.cvd is up to date (version: 54, sigs: 1044387, f-level: 60, builder: sven)
Downloading daily.cvd [100%]
daily.cvd updated (version: 17258, sigs: 1297275, f-level: 63, builder: neo)
Downloading bytecode.cvd [100%]bytecode.cvd updated (version: 214, sigs: 41, f-level: 63, builder: neo)
Database updated (2341703 signatures) from db.local.clamav.net (IP: 69.12.162.28)
WARNING: Clamd was NOT notified: Can't connect to clamd through /var/run/clamav/clamd.sock
connect(): No such file or directory

Nachdem der Update Service lädt die Datenbank Dateien in der neusten Version auf den Server. Da der ClamAv Service von uns gestoppt wurde, findet er keinen aktiven Prozess dazu. Diese Warnung kann also ignoriert werden. Nun starten wir den ClamAv Service wieder :

systemctl start clamd

So konnten wir in wenigen Schritten den ClamAv-Fehler „Keine unterstützten Datenbankdateien in /var/clamav gefunden“ beheben. Um die englischsprachige Systemmeldung noch einmal wiederzugeben ClamAv error „No supported database files found in /var/clamav“ erfolgreich eliminiert.

Leave a Comment

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.