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.
Danke :-)
danke für die Recherche, das Ergebnis hat auch mir geholfen :-)
Joe
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
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).
6 Kommentare