Was dieses Modul tut #
Ein Antivirus vergleicht die Dateien deines Servers mit einem Katalog von Signaturen bekannter Malware. Stimmt etwas überein, markiert er es als infiziert, damit es nicht weiter zirkuliert — zum Beispiel ein bösartiger Anhang, der in einen öffentlichen Ordner hochgeladen wurde, oder eine verseuchte Datei, die per FTP hereinkam.
Das Modul clamav stellt dir die ClamAV-Engine über eine Handvoll klarer Befehle zur Verfügung: frage ihren Status ab, scanne den gewünschten Pfad (eine Datei oder einen ganzen Baum), entscheide, was mit Infiziertem geschehen soll — nur melden, löschen oder in eine sichere Quarantäne verschieben, aus der du es später wiederherstellen kannst — und halte die Signaturdatenbank mit freshclam aktuell. Die Quarantäne isoliert die Datei, ohne sie zu löschen, sodass du nie versehentlich etwas verlierst.
Ein Scan erkennt nur mit der Signaturdatenbank, die du in diesem Moment hast. Wenn du seit Tagen nicht aktualisiert hast, starte zuerst imaxe clamav update, um keine neuen Bedrohungen zu verpassen. Das Scannen großer Bäume kann dauern und CPU verbrauchen: grenze den Pfad auf das ein, was du wirklich prüfen willst.
Häufige Aufgaben #
Wähle, was du tun willst. Jedes Rezept bringt den Befehl fertig geschrieben mit — tausche einfach den Pfad gegen deinen und drücke Kopieren.
1
Prüfen, ob ClamAV bereit ist
Prüfe die Engine, den Modus und wie alt deine Signaturen sind.
Verbinde dich per SSH mit deinem Server und frage den allgemeinen Status ab:
$ sudo imaxe clamav statusInteressiert dich nur die Signaturdatenbank — Version, Datum und Dateien? Nutze db:
$ sudo imaxe clamav db2
Einen Ordner scannen
Prüfe einen Pfad und behalte den Bericht, ohne etwas anzurühren.
Durchsuche ein Verzeichnis samt seinem gesamten Inhalt mit --recursive. Standardmäßig wird nur gemeldet: es wird nichts gelöscht oder verschoben.
$ sudo imaxe clamav scan /home --recursiveNur eine einzelne Datei? Gib ihr den direkten Pfad, ohne --recursive:
$ sudo imaxe clamav scan /srv/uploads/factura.pdf3
Scannen und Infiziertes isolieren
Verschiebe automatisch alles Positive in die Quarantäne.
Scanne einen Pfad und lege mit --quarantine jede infizierte Datei in die Quarantäne, statt sie an ihrem Platz zu lassen:
$ sudo imaxe clamav scan /srv/uploads --recursive --quarantineWillst du Infiziertes lieber direkt löschen, statt es zu isolieren, nutze --remove (das ist unumkehrbar, setz es mit Bedacht ein):
$ sudo imaxe clamav scan /srv/uploads --recursive --remove4
Quarantäne prüfen und wiederherstellen
Sieh, was isoliert ist, und hole bei Bedarf einen Fehlalarm zurück.
Liste auf, was in der Quarantäne liegt — jeder Eintrag bringt seine Kennung, Herkunft, Signatur und Datum mit:
$ sudo imaxe clamav quarantine listWar es ein Fehlalarm? Stelle es mit der Kennung aus der Liste an seinem ursprünglichen Pfad wieder her:
$ sudo imaxe clamav quarantine restore a1b2c3d4Wenn du bestätigt hast, dass alles Isolierte Müll ist, leere die Quarantäne endgültig:
$ sudo imaxe clamav quarantine purge --yes5
Signaturen aktualisieren
Lade die neuesten Definitionen herunter, um neue Bedrohungen zu erkennen.
Starte freshclam, um die neueste Signaturdatenbank zu holen:
$ sudo imaxe clamav updatePrüfe danach mit Version und Datum, dass die Datenbank aktuell ist:
$ sudo imaxe clamav db--removeLöschen entfernt die Datei ohne Weg zurück, und kein Antivirus ist frei von Fehlalarmen. Im Zweifel nutze immer --quarantine: es isoliert genauso gut und lässt dich wiederherstellen, falls du dich geirrt hast.
Synopsis #
imaxe clamav <subcomando> [<ruta>] [--recursive] [--quarantine|--remove] [--json]Die Unterbefehle, die Dateien scannen, verschieben oder löschen, benötigen root-Rechte (nutze sudo), weil sie Pfade anderer Benutzer lesen und in die System-Quarantäne schreiben. Füge --json zu jedem Befehl hinzu, um maschinenlesbare Ausgabe für Scripting zu erhalten.
Unterbefehle #
| Unterbefehl | Was er tut | Relevante Flags |
|---|---|---|
| status | Status von ClamAV: Engine, Modus (daemon/on-demand), freshclam und Signaturdatenbank. | --json |
| scan | Scannt einen Pfad; kann Infiziertes melden, löschen oder in Quarantäne verschieben. | --recursive, --remove, --quarantine, --json |
| update | Aktualisiert die Signaturdatenbank über freshclam. | --json |
| db | Informationen zur Signaturdatenbank: Version, Datum und Dateien. | --json |
| quarantine | Verwaltet die Quarantäne infizierter Dateien (Befehlsgruppe). | list · restore · purge |
Die Gruppe quarantine vereint drei Unterbefehle:
| Unterbefehl | Was er tut | Relevante Flags |
|---|---|---|
| quarantine list | Listet die Dateien in Quarantäne auf (Herkunft, Signatur, Datum). | --json |
| quarantine restore | Stellt eine Datei aus der Quarantäne an ihrem ursprünglichen Pfad oder einem angegebenen Ziel wieder her. | <id> [<destino>] |
| quarantine purge | Löscht endgültig alles, was in Quarantäne liegt. | --yes |
Argumente und Flags #
| Flag / Argument | Typ | Standard | Beschreibung |
|---|---|---|---|
| <ruta> erf. | path | — | Bei scan, zu scannende Datei oder Verzeichnis. |
| <id> erf. | string | — | Bei quarantine restore, Kennung des Elements in Quarantäne (erscheint in quarantine list). |
| <destino> | path | ursprünglicher Pfad | Bei quarantine restore, Pfad, an dem die Datei wiederhergestellt wird. Standardmäßig ihr ursprünglicher Ort. |
| --recursive | bool | false | Bei scan, rekursives Scannen von Verzeichnissen. |
| --quarantine | bool | false | Bei scan, verschiebt die infizierten Dateien in die Quarantäne. |
| --remove | bool | false | Bei scan, löscht die infizierten Dateien. Unumkehrbar; schließt sich mit --quarantine aus. |
| --yes | bool | false | Bei quarantine purge, bestätigt das Löschen ohne Rückfrage. |
| --json | bool | false | Gibt das Ergebnis als JSON auf stdout aus. In allen Unterbefehlen verfügbar. |
Dateien und Pfade #
| Pfad | Inhalt |
|---|---|
| /etc/imaxe/clamav.yml | Konfiguration des Moduls: Quarantäne-Verzeichnis und vom Scan ausgeschlossene Pfade. |
| /var/lib/imaxe/clamav/quarantine | Speicher der Quarantäne: hier werden die wiederherstellbaren infizierten Dateien isoliert. |
| /var/lib/clamav/ | Signaturdatenbank, die freshclam pflegt (Malware-Definitionen). |
| /var/log/imaxe/clamav.log | Strukturiertes Protokoll jedes Scans, jeder Quarantäne und Aktualisierung. |
Beispiel für clamav.yml:
quarantine_dir: /var/lib/imaxe/clamav/quarantine
scan:
exclude:
- /proc
- /sysscan.exclude ist eine Liste von Pfaden, die der Scan auslässt; standardmäßig ist sie leer.
Exit-Codes und Logs #
Jede Ausführung liefert einen Code zurück, den du mit echo $? prüfen kannst — nützlich zum Verketten in Skripten:
Verfolge das Log live, während du Fehler suchst:
$ sudo tail -f /var/log/imaxe/clamav.logFehlerbehebung #
| Symptom | Wahrscheinliche Ursache | Lösung |
|---|---|---|
| Es erscheint INFECTED (Code 3) | Der Scan hat eine oder mehrere Bedrohungen erkannt. | Prüfe den Bericht; starte scan erneut mit --quarantine, um sie zu isolieren. |
| Es erscheint UPDATE (Code 4) | freshclam konnte die Signaturen nicht herunterladen (Netzwerk oder Mirror ausgefallen). | Prüfe den Internetzugang des Servers und versuche clamav update erneut. |
| Der Scan dauert zu lange | Der Pfad umfasst zu viele Dateien oder Systempfade. | Grenze den Pfad ein und schließe Unnötiges mit scan.exclude in clamav.yml aus. |
| Ich habe eine legitime Datei verloren | Fehlalarm, der durch --quarantine in Quarantäne verschoben wurde. | Finde sie mit quarantine list und hole sie mit quarantine restore <id> zurück. |
| Der Status meldet veraltete Signaturen | freshclam wurde lange nicht ausgeführt. | Starte clamav update und prüfe mit clamav db. |
Steckst du beim Modul ClamAV fest?
Schreib uns mit der Ausgabe von «imaxe <module> status --json» und wir antworten dir schnell.