ClamAV
ClamAV ist eine Open-Source-Antiviren-Engine zur Erkennung von Schadsoftware
Installation
# apt update && apt install -y clamav-base clamav-freshclam clamav clamav-daemon
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
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 |
ClamAV Daemon
- Der Daemon läuft als Dienst im Hintergrund
- [FIXME] Bei der Installation wird ein entsprechendes Startskript unter /etc/init.d/clamav-daemon angelegt und der Dienst automatisch gestartet.
- Das Skript kann über die üblichen Parametern start, stop und restart bedient werden.
- Konfiguration des Daemon
- welche Aktionen bei Virenfund ausgeführt werden, Scantiefe, Scanoptionen, etc.
- sind in der Datei /etc/clamav/clamd.conf hinterlegt
- clamd kann auch konfiguriert werden mit
dpkg-reconfigure clamav-base
Benutzeroberfläche
Mit ClamTK steht eine Grafische Benutzeroberfläche zu Verfügung.
Installation
# apt install clamtk
Links
Intern
Weblinks
TMP
ClamAV
Clam AntiVirus ist ein Open Source (GPL) Antiviren-Toolkit für UNIX. 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
Aktualisierung der Datenbank
Aktualisieren Sie die Virendefinitionen mit:
# Frischmuschel
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
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.
Quelle: https://www.malwarepatrol.net/clamav-configuration-guide/
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.