ClamAV — Viren und Malware auf der Kommandozeile aufspüren
Praxis-Guide zu ClamAV — Dateien scannen, Signaturen mit freshclam aktualisieren und Bedrohungen über den clamd-Daemon aufspüren.
ClamAV ist die bekannteste quelloffene Antiviren-Engine für Unix-Systeme – vom Mail-Gateway über Datei-Server bis zum Web-Hosting. Mit clamscan startest du On-Demand-Scans, clamdscan reicht Dateien an den schnellen Hintergrund-Daemon clamd weiter, und freshclam hält die Signatur-Datenbank aktuell. Dieser Guide führt dich von den Signatur-Updates über rekursive Scans und Quarantäne bis zur Daemon-Verwaltung. Achte darauf, freshclam regelmäßig laufen zu lassen – mit veralteten Signaturen findet selbst der beste Scanner neue Schädlinge nicht.
Signatur-Updates (freshclam)
freshclam — Aktualisiert die Virensignatur-Datenbank.
sudo freshclamfreshclam --check <n> — Prüft im Daemon-Modus n-mal pro Tag auf Updates.
sudo freshclam --check 12freshclam --show-progress — Aktualisiert die Signaturen mit Anzeige des Download-Fortschritts.
sudo freshclam --show-progressfreshclam --datadir <path> — Nutzt ein eigenes Verzeichnis für die Signatur-Datenbanken.
sudo freshclam --datadir /opt/clamav/dbfreshclam -d — Lässt freshclam als Daemon für automatische Updates laufen.
sudo freshclam -dOn-Demand-Scans (clamscan)
clamscan <file> — Scannt eine einzelne Datei auf Bedrohungen.
clamscan suspicious-file.zipclamscan -r <dir> — Scannt ein Verzeichnis und alle Unterverzeichnisse rekursiv.
clamscan -r /home/user/Downloadsclamscan -r -i <dir> — Scannt rekursiv und zeigt nur infizierte Dateien an.
clamscan -r -i /var/wwwclamscan -r --remove <dir> — Scannt und löscht infizierte Dateien automatisch (unwiderruflich – mit Vorsicht einsetzen).
clamscan -r --remove /tmp/uploadsclamscan -r --move <quarantine> <dir> — Scannt und verschiebt infizierte Dateien in ein Quarantäne-Verzeichnis.
clamscan -r --move /quarantine /home/userclamscan -r --copy <quarantine> <dir> — Scannt und kopiert infizierte Dateien in die Quarantäne (Originale bleiben erhalten).
clamscan -r --copy /quarantine /var/wwwclamscan -r -l <logfile> <dir> — Scannt und schreibt die Ergebnisse in eine Log-Datei.
clamscan -r -l /var/log/clamav/scan.log /homeclamscan --bell <dir> — Gibt einen Signalton aus, wenn ein Virus gefunden wird.
clamscan --bell -r /home/userScan-Optionen
clamscan --max-filesize=<size> <dir> — Legt die maximale Dateigröße fest, die gescannt wird (Standard 100M).
clamscan --max-filesize=500M -r /dataclamscan --max-scansize=<size> <dir> — Legt die maximale pro Datei gescannte Datenmenge fest (für Archive).
clamscan --max-scansize=1G -r /uploadsclamscan --max-recursion=<n> <dir> — Legt die maximale Entpack-Tiefe für Archive fest (Standard 17).
clamscan --max-recursion=10 -r /tmpclamscan --exclude=<regex> -r <dir> — Schließt Dateien aus, die auf ein Regex-Muster passen.
clamscan --exclude='\.log$' -r /varclamscan --exclude-dir=<regex> -r <dir> — Schließt Verzeichnisse aus, die auf ein Regex-Muster passen.
clamscan --exclude-dir='node_modules' -r /home/user/projectsclamscan --include=<regex> -r <dir> — Scannt nur Dateien, die auf ein Regex-Muster passen.
clamscan --include='\.php$' -r /var/wwwclamscan --no-summary <file> — Unterdrückt die Zusammenfassung am Ende des Scans.
clamscan --no-summary -r /tmpDaemon-Scans (clamdscan)
clamdscan <file> — Scannt über den clamd-Daemon (deutlich schneller als clamscan).
clamdscan suspicious-file.zipclamdscan -r <dir> — Scannt rekursiv über den Daemon.
clamdscan -r /var/wwwclamdscan --multiscan -r <dir> — Paralleler Scan über mehrere Daemon-Threads.
clamdscan --multiscan -r /homeclamdscan --fdpass <file> — Übergibt den Datei-Deskriptor an clamd (vermeidet Berechtigungsprobleme).
clamdscan --fdpass /root/file.binclamdscan --stream <file> — Streamt die Datei über das Netzwerk an clamd (für Remote-Scans).
clamdscan --stream suspicious-file.zipclamdscan -V — Zeigt die clamd-Version und Datenbank-Infos an.
clamdscan -VDaemon-Verwaltung (clamd)
clamd — Startet den ClamAV-Daemon.
sudo clamdclamdtop — Überwacht die clamd-Leistung in Echtzeit (wie top).
clamdtopclamconf — Zeigt die ClamAV-Konfiguration und Datenbank-Infos an.
clamconfclamconf --generate-config=clamd.conf — Erzeugt eine Beispiel-Konfigurationsdatei clamd.conf.
clamconf --generate-config=clamd.conf > /etc/clamav/clamd.confsystemctl status clamav-daemon — Prüft den Status des clamd-systemd-Dienstes.
sudo systemctl status clamav-daemonsystemctl restart clamav-daemon — Startet den clamd-Daemon neu.
sudo systemctl restart clamav-daemonDatenbank-Infos
sigtool --info <cvd> — Zeigt Informationen zu einer Signatur-Datenbankdatei an.
sigtool --info /var/lib/clamav/main.cvdsigtool --list-sigs — Listet alle Signaturen der geladenen Datenbanken auf.
sigtool --list-sigs | wc -lsigtool --find-sigs <name> — Sucht eine bestimmte Signatur anhand ihres Namens.
sigtool --find-sigs Eicarclamscan --debug 2>&1 | grep 'loaded' — Zeigt die Anzahl der geladenen Signaturen an.
clamscan --debug 2>&1 | grep 'loaded'Praxis-Beispiele
clamscan -r -i --move=/quarantine / — Komplett-Scan des Systems, nur Infektionen anzeigen, Bedrohungen in Quarantäne verschieben.
sudo clamscan -r -i --move=/quarantine /clamscan -r -i /var/www -l /var/log/clamav/www-scan.log — Scannt das Web-Verzeichnis und protokolliert die Ergebnisse zur Auswertung.
sudo clamscan -r -i /var/www -l /var/log/clamav/www-scan.logfind /uploads -mtime -1 -type f -exec clamscan {} + — Scannt nur Dateien, die in den letzten 24 Stunden geändert wurden.
find /var/www/uploads -mtime -1 -type f -exec clamscan {} +clamscan -r --exclude-dir='^\.git' --include='\.(php|js|html)$' <dir> — Scannt nur web-relevante Dateien und überspringt .git-Verzeichnisse.
clamscan -r --exclude-dir='^\.git' --include='\.(php|js|html)$' /var/wwwfreshclam && clamscan -r -i /home — Aktualisiert zuerst die Signaturen und scannt dann die Home-Verzeichnisse.
sudo freshclam && sudo clamscan -r -i /homeecho 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /tmp/eicar.txt && clamscan /tmp/eicar.txt — Legt eine EICAR-Testdatei an und prüft, ob ClamAV sie erkennt.
clamscan /tmp/eicar.txt Fazit
ClamAV ist kein Echtzeit-Wächter wie kommerzielle Desktop-Suiten, sondern glänzt dort, wo Dateien kontrolliert durchlaufen: an Mail-Gateways, in Upload-Verzeichnissen und bei geplanten Scans per Cronjob. Kombiniere es mit freshclam für aktuelle Signaturen und setze --remove nur mit Bedacht ein – die Quarantäne über --move ist fast immer die sicherere Wahl, weil du Fehlalarme so noch zurückholen kannst.
Weiterführende Links
- ClamAV – offizielle Dokumentation – Handbuch und Referenz (englisch)
- ClamAV – Projektseite – Downloads, Signaturen und News (englisch)
- Clam AntiVirus – Wikipedia – Hintergrund und Geschichte