ClamAV aktualisiert sich nicht mehr

Heute morgen begann eine ClamAV Installation bei einem Kunden zu spinnen. Freshclam, der Updater von ClamAV, weigert sich die Aktualisierungen vorzunehmen. Wenn man den Grund dann kennt, ist alles wohl dokumentiert. Wenn auch die Ursache in einer schlechte Pflege der Produktionsumgebung von ClamAV liegt.

Der Morgen

Eine E-Mail vom cron berichtete Schlimmes vom Versuch die Datenbank des ClamAV zu aktualisieren.

ERROR: getpatch: Can't download daily-21465.cdiff from db.DE.clamav.net
ERROR: getfile: Download interrupted: Operation now in progress (IP: 62.27.56.14)
ERROR: Can't download daily.cvd from db.DE.clamav.net
ERROR: getpatch: Can't download daily-21465.cdiff from database.clamav.net
ERROR: getfile: Download interrupted: Operation now in progress (IP: 62.27.56.14)
ERROR: Can't download daily.cvd from database.clamav.net

Unglücklicherweise hörten diese Fehler nicht auf. Also muss man auf der Maschine schauen, was falsch läuft.

Ein händisch angeworfener Update produziert eine lange Liste von Fehlversuchen:

ClamAV update process started at Thu Mar 17 11:14:42 2016
main.cvd is up to date (version: 57, sigs: 4218790, f-level: 60, builder: amishhammer)
WARNING: getfile: daily-21465.cdiff not found on remote server (IP: 62.27.56.14)
WARNING: getpatch: Can't download daily-21465.cdiff from db.DE.clamav.net
Trying host db.DE.clamav.net (88.198.17.100)...
connect_error: getsockopt(SO_ERROR): fd=4 error=111: Connection refused
Can't connect to port 80 of host db.DE.clamav.net (IP: 88.198.17.100)
Trying host db.DE.clamav.net (178.63.73.246)...
nonblock_connect: connect timing out (30 secs)
Can't connect to port 80 of host db.DE.clamav.net (IP: 178.63.73.246)
Trying host db.DE.clamav.net (84.39.110.99)...
nonblock_connect: connect timing out (30 secs)
Can't connect to port 80 of host db.DE.clamav.net (IP: 84.39.110.99)
WARNING: getpatch: Can't download daily-21465.cdiff from db.DE.clamav.net
WARNING: getpatch: Can't download daily-21465.cdiff from db.DE.clamav.net
WARNING: getpatch: Can't download daily-21465.cdiff from db.DE.clamav.net
WARNING: getpatch: Can't download daily-21465.cdiff from db.DE.clamav.net
WARNING: Incremental update failed, trying to download daily.cvd
nonblock_recv: recv timing out (30 secs)
WARNING: getfile: Download interrupted: Operation now in progress (IP: 62.27.56.14)
WARNING: Can't download daily.cvd from db.DE.clamav.net
Trying again in 5 secs...

Bei jedem Versuch schaut das ähnlich aus. Egal, ob man es einige Minuten später oder gleich nochmal probiert.

Manchmal klappt aber auch eine Verbindung und der Download ist extrem langsam. Es dauert mehrere Minuten, bis 1% der Daten angekommen sind. Aber dann hat freshclam schon wieder aufgegeben.

Also einen Sniffer angeworfen und geschaut, was da eigentlich abgeht: Es wird z.B. die URL http://db.DE.clamav.net/daily.cvd abgerufen.

Mit einem wget auf der gleichen Maschine gibt es aber keinerlei Schwierigkeiten, diese Datei zu laden. Es geht richtig schnell.

Vielleicht hat ja die Maschine ein Durchsatzproblem in Richtung Festplatte? Nein, auch nicht. Selbst ein wget parallel zu einem langsamen dahin kriechenden freshclam ins das gleiche Verzeichnis, in das freshclam auch reinschreibt, ist rattenschnell.

Ein Blick ins DNS zeigt, dass das Problem auch auf Serverseite liegen kann. Also mal testen:

$ dig +short db.DE.clamav.net |
 while read a; do
   echo $a;
   wget -Y off -O /dev/null http://$a/daily.cvd;
 done

Ergebnis:

IP Datenrate
88.198.17.100 Connection refused
130.133.110.67 22.3 KB/s
144.76.28.11 404 Not Found
176.9.115.53 301 Moved Permanently
178.63.73.246 Connection timed out
193.27.49.165 781 KB/s
195.30.97.3 503 Service Temporarily Unavailable
212.227.138.145 Connection timed out
213.174.32.130 404 Not Found
62.27.56.14 600 Byte/s (3 KB/s mit langen Pausen)
62.201.161.84 2.41 MB/s
62.245.181.53 1.71 MB/s
84.39.110.99 Connection timed out

Das ist ja großes Kino! Die Qualität des Servernetzwerkes ist durchaus noch etwas ausbaufähig.

Ursache und Fehlerbehebung

Um mit solchen Ausfällen im Content Delivery Network umgehen zu können, hat freshclam einen Verfügbarkeitscache: Die Datei mirrors.dat.

Ein Blick in die Datei zeigt

$ freshclam --list-mirrors | fgrep Ignore | sort | uniq -c
      5 Ignore: No
     10 Ignore: Yes

Der größte Teil der Server wird also schon komplett ignoriert. Die paar Server, die noch zulässig sind, tauchen aber nicht mehr in der DNS-Auslösung mit auf. Im Endergebnis gibt es kaum noch zulässige Server, die freshclam benutzen darf und die sind extrem langsam oder funktionslos.

Nach dem Löschen der mirrors.dat fluscht der Update wieder.

Und jetzt fällt mir auch der Hinweis am Ende der freshclam Ausgabe wieder ein: Update failed. Your network may be down or none of the mirrors listed in /etc/freshclam.conf is working. Check http://www.clamav.net/doc/mirrors-faq.html for possible reasons.

Natürlich hatte ich schon am Anfang auf diesen Link geklickt. und war bei der Installationsanleitung gelandet. Jetzt habe ich mir die Mirrors-FAQ nochmal heraus gesucht und folgendes gefunden: It is also possible that you recently had a prolonged network outage and freshclam blacklisted all the mirrors: remove mirrors.dat from the DatabaseDirectory and try again.

Na prima. Könntet ihr bitte Eure Links und Eure Mirrors fixen? Danke.

Avatar
Tom 30.03.2018 14:57
Auf den Hinweis mit der /var/lib/clamav/mirrors.dat muss man auch erst einmal kommen.
Danke :-)
Avatar
Andreas John 30.01.2017 11:01
Merci, Danke für die Info!
Avatar
Joe 21.03.2016 10:28
Hallo Lutz,
danke für die Recherche, das Ergebnis hat auch mir geholfen :-)

Joe
Avatar
Willi 19.03.2016 16:13
Hallo Lutz,...

da ich kein Experte auf diesem Gebiet bin und ich deshalb mit dem Fachchinesisch wenig
bis garnichts anfangen kann, bitte ich um einfachste, für einen Laien verständliche
Hilfestellung... .
Danke :-)
Zu meinem Problem:

Ich kann seit einigen Tagen die Virus Definition über ClamXav bzw ClamXav Sentry
nicht mehr aktualisieren...es sei ein Fehler aufgetreten... . (?)
Als ich in meinen LittleSnitch Regeln merkte, daß die Verbindung: freshclam zu database.clamav.net
deaktiviert war (?) , aktivierte ich diese wieder.

Jetzt gibt es zwar keine Fehlermeldung mehr aber die Aktualisierung der Virusdefinition nimmt kein
Ende mehr und mein Arbeitsspeicher wird dabei immer voller (?)
Habe (vorsichtshalber) die Aktualisierung immer wieder abgebrochen .
Vorher dauerte das Ganze ein paar Sekunden und die Virusdefinition war aktualisiert.
Was könnte die Losung sein ?
Ich nutze:
Mac OS X 10.6.8
ClamXav Version 2.3.4
ClamXav Sentry Version 2.7.4

Ich bitte um hilfe

DANKE
Avatar
Nenad Cimerman 18.03.2016 11:46
Hallo Lutz,

erst einmal vielen herzlichen Dank für Dein Posting!
Das Löschen der mirrors.dat hat bei mir die Update-Funktion ebenfalls wieder "repariert" (nachdem ich diese auf meinem Debian-Linux gefunden hatte: /var/lib/clamav/mirrors.dat).

Avatar
Niels Dettenbach 18.03.2016 09:57
Jo, es kommt schon dann und wann mal vor, das keiner der offiziell "mitgelieferten" URIs auf verschiedene Maschinen erreichbar ist - genauer: "Sinnvolles" zurück liefert. Ich kenne die Organisation hinter Clam AV kaum, aber habe auch den Eindruck, das die Auslieferung der Updates wohl am kritischsten dort ist - womöglich nicht zuletzt wegen der damit verbundenen Kosten für Bandbreiten / Traffic. Projekte mit "ähnlichen" Problemen haben eine hohe "Fluktuation" an "Sponsoren" von technischen Kapazitäten aller Art. Immerhin dürfte bei ClamAV einiges an Traffic zusammenkommen...

6 Kommentare

Post a comment

Verwandter Inhalt