ClamAV

Aus Foxwiki

Clam AntiVirus ist ein Open Source (GPL) Antiviren-Toolkit zur Erkennung von Schadsoftware

Beschreibung

  • Es bietet eine Reihe von Dienstprogrammen, darunter einen flexiblen und skalierbaren Multithread-Daemon, einen Befehlszeilenscanner und ein erweitertes Tool für automatische Datenbankaktualisierungen.
  • Da ClamAV hauptsächlich auf Datei-/Mailservern für Windows-Desktops verwendet wird, erkennt es hauptsächlich Windows-Viren und -Malware mit seinen integrierten Signaturen.

Installation

# apt install clamav-base clamav-freshclam clamav clamav-daemon

Syntax

Parameter

Optionen

Konfiguration

Dateien

Anwendungen

Sicherheit

Dokumentation

RFC

Man-Pages

Info-Pages

Projekt-Homepage

Links

Siehe auch

ClamAV:unofficial-sigs

Weblinks

  1. https://wiki.debian.org/ClamAV
  2. https://github.com/extremeshok/clamav-unofficial-sigs

Einzelnachweise


Testfragen

Testfrage 1

Antwort1

Testfrage 2

Antwort2

Testfrage 3

Antwort3

Testfrage 4

Antwort4

Testfrage 5

Antwort5

TMP

Hinweis
  • Es wird empfohlen, den Computer nach der Installation neu zu starten, damit die Virensignaturdatenbank aktualisiert und ClamAV über das Update informiert wird.
  • So ändern Sie die Freshclam-Konfiguration
  • ClamAV muss über aktuelle Virensignaturen verfügen, um effektiv arbeiten zu können.
  • Um Ihre ClamAV-Installation zu konfigurieren, ändern Sie die Zeile '? DatabaseMirror db.local.clamav.net' - das 'local' muss in Ihren Ländercode geändert werden.

Anwendungen

Anwendungen

ClamAV kann separate Dateien oder ggf. ganze Verzeichnisse scannen. Ein Beispiel für einen Befehl wird unten gezeigt. So scannen Sie eine Datei:

$ clamscan file

So scannen Sie ein Verzeichnis (in diesem Fall Ihr Ausgangsverzeichnis):

$ clamscan --recursive=yes --infected /home
Hinweis

Wenn ClamAV die infizierten Dateien entfernen soll, fügen Sie die Option --remove hinzu.

Scannen des Home-Verzeichnisses des aktuellen Benutzers

$ clamscan -ri ~
  • Standardmäßig scannt ClamAV keine Dateien, die größer als 20 MB sind.
  • Um diese Einstellung zu überschreiben, müssen die Optionen --max-filesize = 2000M --max-scansize = 2000M an den Befehl angehängt werden.
  • Wo die Größe 2000M nach Bedarf vom Benutzer ersetzt werden kann.
$ clamscan --max-filesize=2000M --max-scansize=2000M --recursive=yes --infected /home

Quarantäne

  • Man kann gescannte Dateien mit: "--move=VERZEICHNIS" in den Ordner Verzeichnis legen.
  • Praktischerweise kombiniert man: "-r" mit "--move=VERZEICHNIS" um alles in einen sogesehenden Quarantäne Ordner zu legen.

Optionen

-i zeigt nur infizierte Dateien an (und nicht alle gescannten)
-r Scannt alle Unterverzeichnisse rekursiv
--remove entfernt infizierte Dateien (Achtung!Nicht leichtfertig benutzen!)
-h zeigt alle Optionen von clamscan an
--move=VERZEICHNIS Verschiebt alle infizierten Dateien nach VERZEICHNIS
--max-filesize = 2000M
--max-scansize = 2000M

GUI

Mit ClamTK steht eine Grafische Benutzeroberfläche zu Verfügung.

Installation
# apt install clamtk

Aktualisierung der Datenbank

Aktualisieren Sie die Virendefinitionen mit:

# freshclam

Wenn Sie sich hinter einem Proxy befinden, bearbeiten Sie /etc/clamav/freshclam.confund aktualisieren Sie HTTPProxyServer, HTTPProxyPort, HTTPProxyUsername und HTTPProxyPassword.

Die Datenbankdateien werden gespeichert in: /var/lib/clamav/daily.cvd /var/lib/clamav/main.cvd /var/lib/clamav/bytecode.cvd

Starten/aktivieren

clamav-freshclam.service

damit die Virendefinitionen aktuell gehalten werden.

Starten des Dämons

Notiz
  • Sie müssen rennen freshclambevor Sie den Dienst zum ersten Mal starten, oder Sie werden auf Probleme/Fehler stoßen, die verhindern, dass ClamAV korrekt startet.
  • Der Daemon wird nicht benötigt, wenn Sie nur eigenständige Scans durchführen möchten. Siehe Auf Viren scannen unten.

Der Dienst wird aufgerufen clamav-daemon.service. Starten Sie es und aktivieren Sie es, um beim Booten zu starten.

Testen der Software

Um sicherzustellen, dass ClamAV und die Definitionen korrekt installiert sind, scannen Sie die EICAR-Testdatei (eine harmlose Signatur ohne Virencode) mit clamscan .

$ curl https://secure.eicar.org/eicar.com.txt https://secure.eicar.org/eicar.com.txt | clamscan - 

Die Ausgabe muss enthalten

stdin: Win.Test.EICAR_HDB-1 GEFUNDEN

Ansonsten; Lesen Sie den Abschnitt Fehlerbehebung oder bitten Sie in den Arch-Foren .

Hinzufügen weiterer Datenbanken/Signaturen-Repositories

ClamAV kann Datenbanken/Signaturen von anderen Repositories oder Sicherheitsanbietern verwenden.

Um die wichtigsten in einem Schritt hinzuzufügen, installieren Sie entweder clamav-unofficial-sigs AUR (siehe GitHub-Beschreibung ) oder python-freshclam AUR (siehe Online-Dokumentation ). Beide werden Signaturen/Datenbanken von gängigen Anbietern hinzufügen, z. B. MalwarePatrol, SecuriteInfo, Yara, Linux Malware Detect usw.

Hinweis: Sie müssen die noch haben clamav-freshclam.service gestartet , um offizielle Signatur-Updates von ClamAV-Spiegeln zu erhalten.

Option #1: freshclam einrichten

freshclam wurde als sicherer, flexibler und bequemer Ersatz für clamav-unofficial-sigs entwickelt und erfordert nur sehr wenig Konfiguration.

Am wichtigsten ist, dass freshclam im Gegensatz zu clamav-inofficial-sigs niemals mit Root-Rechten ausgeführt werden muss.

Erstellen Sie eine Datenbankstruktur, indem Sie Folgendes ausführen:

# sudo -u clamav /usr/bin/freshclam --conf /etc/freshclam/freshclam.conf initdb

Aktivieren Sie die freshclam.timer.

Option #2: Clamav-Inoffizielle-Sigs einrichten

Aktivieren Sie die clamav-unofficial-sigs.timer.

Dadurch werden die inoffiziellen Signaturen basierend auf den Konfigurationsdateien im Verzeichnis regelmäßig aktualisiert /etc/clamav-unofficial-sigs.

Um Signaturen manuell zu aktualisieren, führen Sie Folgendes aus:

# clamav-unofficial-sigs.sh

Um Standardeinstellungen zu ändern, siehe und ändern /etc/clamav-unofficial-sigs/user.conf.

MalwarePatrol-Datenbank

Wenn Sie die MalwarePatrol-Datenbank verwenden möchten, melden Sie sich unter https://www.malwarepatrol.net/free-guard-upgrade-option .

In /etc/clamav-unofficial-sigs/user.conf, ändern Sie Folgendes, um diese Funktion zu aktivieren:

Malwarepatrol_receipt_code="YOUR-RECEIPT-NUMBER" # Geben Sie hier Ihre Quittungsnummer ein
Malwarepatrol_product_code="8" # Verwenden Sie 8, wenn Sie ein kostenloses Konto haben, oder 15, wenn Sie Premium-Kunde sind.
Malwarepatrol_list="clamav_basic" # clamav_basic oder clamav_ext
malwarepatrol_free="yes" # Auf yes setzen, wenn Sie ein kostenloses Konto haben, oder auf no, wenn Sie Premium-Kunde sind.

Auf Viren scannen

Es gibt zwei Optionen für das On-Demand-Scannen:

mit dem eigenständigen Scanner

clamscankann verwendet werden, um bestimmte Dateien, Home-Verzeichnisse oder ein ganzes System zu scannen:

$ clamscan meinedatei
$ clamscan --recursive --infected /home
# clamscan --recursive --infected --exclude-dir='^/sys|^/dev' /

Wenn du möchtest clamscanUm die infizierte Datei zu entfernen, fügen Sie dem Befehl hinzu --removeOption, oder Sie können verwenden --move=/dirsie unter Quarantäne zu stellen.

Sie können auch wollen clamscanum größere Dateien zu scannen. Hängen Sie in diesem Fall die Optionen an --max-filesize=4000Mund --max-scansize=4000Mzum Befehl. „4000 M“ ist der größtmögliche Wert und kann bei Bedarf verringert werden.

Verwendung der -l /path/to/fileOption druckt die clamscanlogs in eine Textdatei, um gemeldete Infektionen zu lokalisieren.

Verwenden des Dämons

clamdscanist ähnlich wie oben, verwendet aber den Daemon, der laufen muss, damit der Befehl funktioniert. Die meisten Optionen werden ignoriert, da der Daemon die in angegebenen Einstellungen liest /etc/clamav/clamd.conf.

Mailserver

Milter scannt Ihren Sendmail-Server auf E-Mails, die Viren enthalten. Anpassen /etc/clamav/clamav-milter.confzu Ihren Bedürfnissen. Zum Beispiel:

/etc/clamav/clamav-milter.conf
MilterSocket /tmp/clamav-milter.socket
MilterSocketMode 660
FixStaleSocket ja
Benutzer clamav
MilterSocketGroup clamav
PidFile /run/clamav/clamav-milter.pid
TemporäresVerzeichnis /tmp
ClamdSocket unix:/run/clamav/clamd.ctl
LogSyslog ja
LogInfected Basic 

Erstellen /etc/systemd/system/clamav-milter.service:

/etc/systemd/system/clamav-milter.service
 [Einheit]
 Description='ClamAV Milter'
 After=clamav-daemon.service
 [Service]
 Typ=Verzweigung
 ExecStart=/usr/bin/clamav-milter --config-file /etc/clamav/clamav-milter.conf
 [Installieren]
 WantedBy=multi-user.target 

Aktivieren und starten clamav-milter.service.

für Postfix die folgenden Zeilen hinzu /etc/postfix/main.cf:

/etc/postfix/main.cf
smtpd_milters = unix:/tmp/clamav-milter.socket
milter_default_action = tempfail 

Überprüfen Sie journalctl , ob die Zugriffsberechtigung clamav-milter.socketfür postfix ist entsprechend gesetzt, falls nicht, Benutzer postfix zur Gruppe hinzufügen clamav.

OnAccessScan

(Originalquelle: https://blog.clamav.net/2016/03/configuring-on-access-scanning-in-clamav.html )

Beim On-Access-Scannen wird die Datei beim Lesen, Schreiben oder Ausführen gescannt.

Warnung

Zu diesem Zeitpunkt (November 2021) ist das On-Access-Scannen in ClamAV noch unausgereift, Sie sehen möglicherweise unerklärliche Clamd Abstürze und containerisierte Prozesse erhalten keinen Schutz. Daher ist es fraglich, ob es sich um eine Sicherheitsverbesserung handelt oder nicht. Aktivieren Sie es nicht, es sei denn, Vorschriften, Verträge oder Ihre eigene Neugier zwingen Sie dazu.

Für On-Access-Scans muss der Kernel mit dem fanotify -Kernelmodul (Kernel >= 3.8) kompiliert werden, was für offizielle Arch-Linux-Kernelpakete gilt. Überprüfen Sie, ob Fanotify aktiviert wurde, bevor Sie On-Access-Scans aktivieren.

$ zgrep FANOTIFY /proc/config.gz

Bearbeiten Sie zunächst die /etc/clamav/clamd.confKonfigurationsdatei, indem Sie am Ende der Datei Folgendes hinzufügen (Sie können auch die einzelnen Optionen ändern).

Warnung

Bitte beachten Sie die folgende Warnung zur Clamd-Port-Sicherheit, wenn Sie andere Teile der Datei ändern. Verwenden Sie im Allgemeinen einen lokalen Unix-Socket, aber beachten Sie, dass dieser Port nicht authentifiziert oder geschützt ist. Siehe https://docs.clamav.net/manual/Usage/Scanning.html#clamd-v0101 für weitere Details im Abschnitt Daemon und dann ClamD.

/etc/clamav/clamd.conf
# Stellen Sie den Einhängepunkt ein, an dem der Scan rekursiv durchgeführt werden soll,
# Dies könnte jeder Pfad oder mehrere Pfade sein (eine Zeile für Pfad)
OnAccessMountPath /
OnAccessExcludePath /proc
OnAccessExcludePath /run
OnAccessExcludePath /sys
# Fügen Sie alternativ einige Verzeichnisse anstelle von Einhängepunkten hinzu
# OnAccessIncludePath /home
# Verhinderung funktioniert nicht mit OnAccessMountPath.
# Es funktioniert mit OnAccessIncludePath, solange /usr und /etc nicht enthalten sind.
# Das Einschließen von /var beim Aktivieren der Verhinderung wird ebenfalls nicht empfohlen, weil
# Dies würde die Paketinstallation um den Faktor 1000 verlangsamen.
OnAccessPrevention falsch
# Führen Sie Scans für neu erstellte, verschobene oder umbenannte Dateien durch
OnAccessExtraScanning true
# Schließen Sie die UID des Scanners selbst von der Überprüfung aus, um Schleifen zu vermeiden
OnAccessExcludeUname clamav
# Optional auch root-eigene Prozesse ausschließen
# OnAccessExcludeRootUID wahr
# Geben Sie eine Aktion an, die ausgeführt werden soll, wenn clamav eine bösartige Datei erkennt
# Es ist auch möglich, einen Inline-Befehl anzugeben
VirusEvent /etc/clamav/virus-event.bash
# WARNUNG: Aus Sicherheitsgründen sollte clamd NIEMALS als Root ausgeführt werden.
# Frühere Anweisungen in diesem Wiki enthielten diese Zeile, entfernen Sie sie:
# Benutzer root # DIES ENTFERNEN
# Fügen Sie stattdessen Folgendes hinzu:
Benutzer clamav

Nächstes dem clamav Benutzer, -send als beliebiger Benutzer mit benutzerdefinierten Umgebungsvariablen über sudo auszuführen :

/etc/sudoers.d/clamav
clamav ALL = (ALL) NOPASSWD: SETENV: /usr/bin/notify-send 

Als nächstes erstellen Sie die Datei /etc/clamav/virus-event.bashund füge folgendes hinzu. Hiermit können Sie die Meldung ändern/angeben, wenn ein Virus vom On-Access-Scanning-Service von clamd entdeckt wurde:

/etc/clamav/virus-event.bash
#!/bin/bash
PATH=/usr/bin
ALERT="Von Clamav erkannte Signatur: $CLAM_VIRUUSEVENT_VIRUSNAME in $CLAM_VIRUUSEVENT_FILENAME"
# Senden Sie eine Warnung an alle grafischen Benutzer.
für ADRESSE in /run/user/* ;  tun
    USERID=${ADDRESS#/run/user/}
    /usr/bin/sudo -u "#$USERID" DBUS_SESSION_BUS_ADDRESS="unix:path=$ADDRESS/bus" PATH=${PATH} \
        /usr/bin/notify-send -i dialog-warning "Virus gefunden!"  "$ALARM"
fertig

Starten Sie die clamav-daemon.service.

Standardmäßig clamonacc übergibt clamav die Namen der Dateien, auf die gerade zugegriffen wurde, zum Scannen. Dies ist ein Problem, da Dateien, auf die der clamav- Benutzer nicht zugreifen kann, auf diese Weise nicht gescannt werden können. Stattdessen ist es möglich, clamonacc (das immer als root ) anzuweisen, die Dateideskriptorübergabe zu verwenden. Bearbeiten clamav-clamonacc.servicemit den folgenden:

[Service] 
 ExecStart= 
 ExecStart=/usr/sbin/clamonacc -F --fdpass --log=/var/log/clamav/clamonacc.log 

Zuletzt müssen Sie die /aktivieren starten clamav-clamonacc.service.

Wenn Sie AppArmor Ablehnungen zu clamd , stellen Sie das Profil auf einen Nur-Beschweren-Modus ein:

# aa-beschwere dich

Fehlerbehebung

Hinweis: Stellen Sie sicher, von welchem ​​Benutzer Sie ausführen clamscanhat Leserechte für die Datenbankdateien ( /var/lib/clamav/*.cvd)

Fehler: Clamd wurde NICHT benachrichtigt

Wenn Sie nach dem Ausführen von freshclam die folgenden Meldungen erhalten:

WARNUNG: Clamd wurde NICHT benachrichtigt: Es kann keine Verbindung zu Clamd durch hergestellt werden

/var/lib/clamav/clamd.sock connect(): Keine solche Datei oder Verzeichnis

Fügen Sie eine Sock-Datei für ClamAV hinzu

Warnung: Sehen Sie sich die Warnung in #OnAccessScan zur Sicherheit von clamd-Ports an:

# touch /run/clamav/clamd.ctl
# chown clamav:clamav /run/clamav/clamd.ctl

Bearbeiten Sie dann /etc/clamav/clamd.conf- Kommentieren Sie diese Zeile aus:

LocalSocket /run/clamav/clamd.ctl

Speichern Sie die Datei und starten clamav-daemon.service.

Fehler: Keine unterstützten Datenbankdateien gefunden

Wenn Sie beim Starten des Daemons den nächsten Fehler erhalten:

LibClamAV-Fehler: cli_loaddb(): Keine unterstützten Datenbankdateien gefunden

in /var/lib/clamav FEHLER: Nicht unterstütztes Datenformat

Dies geschieht aufgrund einer Nichtübereinstimmung zwischen /etc/clamav/freshclam.confEinstellung DatabaseDirectoryund /etc/clamav/clamd.confEinstellung DatabaseDirectory. /etc/clamav/freshclam.confzeigt auf /var/lib/clamav, sondern /etc/clamav/clamd.conf(Standardverzeichnis) zeigt auf /usr/share/clamav, oder ein anderes Verzeichnis.

Bearbeiten ein /etc/clamav/clamd.confund durch die gleichen ersetzen DatabaseDirectorywie in /etc/clamav/freshclam.conf. Danach startet clamav erfolgreich.

Fehler: Temporäres Verzeichnis kann nicht erstellt werden

Wenn Sie die folgende Fehlermeldung erhalten, zusammen mit einem „HINT“, der eine UID- und eine GID-Nummer enthält:

# temporäres Verzeichnis kann nicht erstellt werden

Richtige Berechtigungen:

# chown UID:GID /var/lib/clamav && chmod 755 /var/lib/clamav

Tipps und Tricks

In mehreren Threads ausführen

Clamscan verwenden

Beim Scannen einer Datei oder eines Verzeichnisses von der Befehlszeile aus mit clamscanEs wird nur ein einzelner CPU-Thread verwendet. Dies kann in Fällen in Ordnung sein, in denen das Timing nicht kritisch ist oder Sie nicht möchten, dass der Computer träge wird. Wenn große Verzeichnisse oder USB-Laufwerke schnell gescannt werden müssen, können Sie alle verfügbaren CPUs verwenden, um den Vorgang zu beschleunigen.

clamscanist für Singlethreading ausgelegt, also xargskann verwendet werden, um den Scan parallel auszuführen:

$ find /home/archie -type f -print0 |  xargs -0 -P $(nproc) clamscan

In diesem Beispiel die -PParameter für xargsläuft clamscanin so vielen Prozessen wie es CPUs gibt (gemeldet von nproc) zur selben Zeit. --max-linesund --max-argsOptionen ermöglichen eine noch feinere Steuerung der Stapelverarbeitung der Arbeitslast über die Threads hinweg.

Verwenden von clamdscan

Wenn Sie bereits haben clamdDaemon läuft clamdscankann stattdessen verwendet werden (siehe #Starting the daemon ):

$ clamdscan --multiscan --fdpass /home/archie

Hier die --multiscanParameter ermöglicht clamdden Inhalt des Verzeichnisses parallel mit verfügbaren Threads zu scannen. --fdpassDer Parameter ist erforderlich, um die Dateideskriptorberechtigungen zu übergeben clamdwie der Daemon läuft unter clamavBenutzer und Gruppe.

Die Anzahl der verfügbaren Threads für clamdscanwird bestimmt in /etc/clamav/clamd.confüber MaxThreadsParameter clamd.conf(5) . Auch wenn Sie sehen, dass die Anzahl der MaxThreadsangegeben ist mehr als eins (der aktuelle Standardwert ist 10), wenn Sie den Scan mit starten clamdscanvon der Befehlszeile und nicht angeben --multiscanOption wird nur ein effektiver CPU-Thread zum Scannen verwendet.

Siehe auch