ClamAV: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
Zeile 75: Zeile 75:
# https://wiki.debian.org/ClamAV
# https://wiki.debian.org/ClamAV
# https://github.com/extremeshok/clamav-unofficial-sigs
# https://github.com/extremeshok/clamav-unofficial-sigs
= TMP =
= ClamAV =
[https://www.clamav.net/ 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 <tt>/etc/clamav/freshclam.conf</tt>und 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
[https://wiki.archlinux.org/title/Start/enable Starten/aktivieren ]
<tt>clamav-freshclam.service</tt>
damit die Virendefinitionen aktuell gehalten werden.
== Starten des Dämons  ==
;Notiz
* Sie müssen rennen <tt>freshclam</tt>bevor 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 [https://wiki.archlinux.org/title/ClamAV#Scan_for_viruses Auf Viren scannen ]unten.
Der Dienst wird aufgerufen <tt>clamav-daemon.service</tt>. [https://wiki.archlinux.org/title/Start Starten ]Sie es und [https://wiki.archlinux.org/title/Enable aktivieren ]Sie es, um beim Booten zu starten.
== Testen der Software  ==
Um sicherzustellen, dass ClamAV und die Definitionen korrekt installiert sind, scannen Sie die [http://2016.eicar.org/86-0-Intended-use.html 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 [https://bbs.archlinux.org/ 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 [https://aur.archlinux.org/packages/clamav-unofficial-sigs/ clamav-unofficial-sigs ]AUR (siehe [https://github.com/extremeshok/clamav-unofficial-sigs#description GitHub-Beschreibung ]) oder [https://aur.archlinux.org/packages/python-freshclam/ python-freshclam ]AUR (siehe [https://rseichter.github.io/freshclam/ 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 <tt>clamav-freshclam.service</tt> [https://wiki.archlinux.org/title/Started gestartet ], um offizielle Signatur-Updates von ClamAV-Spiegeln zu erhalten.
=== Option #1: freshclam einrichten  ===
[https://rseichter.github.io/freshclam/ freshclam ]wurde als sicherer, flexibler und bequemer Ersatz für clamav-unofficial-sigs entwickelt und erfordert [https://rseichter.github.io/freshclam/#_configuration 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
[https://wiki.archlinux.org/title/Enable Aktivieren Sie ]die <tt>freshclam.timer</tt>.
=== Option #2: Clamav-Inoffizielle-Sigs einrichten  ===
[https://wiki.archlinux.org/title/Enable Aktivieren Sie ]die <tt>clamav-unofficial-sigs.timer</tt>.
Dadurch werden die inoffiziellen Signaturen basierend auf den Konfigurationsdateien im Verzeichnis regelmäßig aktualisiert <tt>/etc/clamav-unofficial-sigs</tt>.
Um Signaturen manuell zu aktualisieren, führen Sie Folgendes aus:
# clamav-unofficial-sigs.sh
Um Standardeinstellungen zu ändern, siehe und ändern <tt>/etc/clamav-unofficial-sigs/user.conf</tt>.
==== MalwarePatrol-Datenbank  ====
Wenn Sie die MalwarePatrol-Datenbank verwenden möchten, melden Sie sich unter [https://www.malwarepatrol.net/free-guard-upgrade-option https://www.malwarepatrol.net/free-guard-upgrade-option ].
In <tt>/etc/clamav-unofficial-sigs/user.conf</tt>, ä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/ 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  ===
<tt>clamscan</tt>kann 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 <tt>clamscan</tt>Um die infizierte Datei zu entfernen, fügen Sie dem Befehl hinzu <tt>--remove</tt>Option, oder Sie können verwenden <tt>--move=/dir</tt>sie unter Quarantäne zu stellen.
Sie können auch wollen <tt>clamscan</tt>um größere Dateien zu scannen. Hängen Sie in diesem Fall die Optionen an <tt>--max-filesize=4000M</tt>und <tt>--max-scansize=4000M</tt>zum Befehl. „4000 M“ ist der größtmögliche Wert und kann bei Bedarf verringert werden.
Verwendung der <tt>-l /path/to/file</tt>Option druckt die <tt>clamscan</tt>logs in eine Textdatei, um gemeldete Infektionen zu lokalisieren.
=== Verwenden des Dämons  ===
<tt>clamdscan</tt>ist ä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 <tt>/etc/clamav/clamd.conf</tt>.
== Mailserver ==
Milter scannt Ihren Sendmail-Server auf E-Mails, die Viren enthalten. Anpassen <tt>/etc/clamav/clamav-milter.conf</tt>zu 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 <tt>/etc/systemd/system/clamav-milter.service</tt>:
/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
[https://wiki.archlinux.org/title/Enable Aktivieren ]und [https://wiki.archlinux.org/title/Start starten ]<tt>clamav-milter.service</tt>.
für [https://wiki.archlinux.org/title/Postfix Postfix ]die folgenden Zeilen hinzu <tt>/etc/postfix/main.cf</tt>:
etc/postfix/main.cf
smtpd_milters = unix:/tmp/clamav-milter.socket
milter_default_action = tempfail
Überprüfen Sie [https://wiki.archlinux.org/title/Journalctl journalctl ], ob die Zugriffsberechtigung <tt>clamav-milter.socket</tt>für postfix ist entsprechend gesetzt, falls nicht, Benutzer postfix zur Gruppe hinzufügen <tt>clamav</tt>.
== OnAccessScan  ==
''(Originalquelle: ''[https://blog.clamav.net/2016/03/configuring-on-access-scanning-in-clamav.html 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 <tt>/etc/clamav/clamd.conf</tt>Konfigurationsdatei, 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 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 [https://wiki.archlinux.org/title/Sudo sudo auszuführen ]:
;/etc/sudoers.d/clamav
clamav ALL = (ALL) NOPASSWD: SETENV: /usr/bin/notify-send
Als nächstes erstellen Sie die Datei <tt>/etc/clamav/virus-event.bash</tt>und 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
[https://wiki.archlinux.org/title/Restart Starten Sie ]die <tt>clamav-daemon.service</tt>.
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. [https://wiki.archlinux.org/title/Edit Bearbeiten ]<tt>clamav-clamonacc.service</tt>mit den folgenden:
[Service]
  ExecStart=
  ExecStart=/usr/sbin/clamonacc -F '''--fdpass '''--log=/var/log/clamav/clamonacc.log
Zuletzt müssen Sie die [https://wiki.archlinux.org/title/Start/enable /aktivieren ]starten <tt>clamav-clamonacc.service</tt>.
Wenn Sie [https://wiki.archlinux.org/title/AppArmor 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 <tt>clamscan</tt>hat Leserechte für die Datenbankdateien ( <tt>/var/lib/clamav/*.cvd</tt>)
=== 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 [https://wiki.archlinux.org/title/ClamAV#OnAccessScan #OnAccessScan ]zur Sicherheit von clamd-Ports an:
# touch /run/clamav/clamd.ctl
# chown clamav:clamav /run/clamav/clamd.ctl
Bearbeiten Sie dann <tt>/etc/clamav/clamd.conf</tt>- Kommentieren Sie diese Zeile aus:
LocalSocket /run/clamav/clamd.ctl
Speichern Sie die Datei und [https://wiki.archlinux.org/title/Restart starten ]<tt>clamav-daemon.service</tt>.
=== 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 <tt>/etc/clamav/freshclam.conf</tt>Einstellung <tt>DatabaseDirectory</tt>und <tt>/etc/clamav/clamd.conf</tt>Einstellung <tt>DatabaseDirectory</tt>. <tt>/etc/clamav/freshclam.conf</tt>zeigt auf <tt>/var/lib/clamav</tt>, sondern <tt>/etc/clamav/clamd.conf</tt>(Standardverzeichnis) zeigt auf <tt>/usr/share/clamav</tt>, oder ein anderes Verzeichnis.
Bearbeiten ein <tt>/etc/clamav/clamd.conf</tt>und durch die gleichen ersetzen <tt>DatabaseDirectory</tt>wie in <tt>/etc/clamav/freshclam.conf</tt>. 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 <tt>clamscan</tt>Es 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.
<tt>clamscan</tt>ist für Singlethreading ausgelegt, also <tt>xargs</tt>kann verwendet werden, um den Scan parallel auszuführen:
$ find /home/archie -type f -print0 |  xargs -0 -P $(nproc) clamscan
In diesem Beispiel die <tt>-P</tt>Parameter für <tt>xargs</tt>läuft <tt>clamscan</tt>in so vielen Prozessen wie es CPUs gibt (gemeldet von <tt>nproc</tt>) zur selben Zeit. <tt>--max-lines</tt>und <tt>--max-args</tt>Optionen ermöglichen eine noch feinere Steuerung der Stapelverarbeitung der Arbeitslast über die Threads hinweg.
==== Verwenden von clamdscan  ====
Wenn Sie bereits haben <tt>clamd</tt>Daemon läuft <tt>clamdscan</tt>kann stattdessen verwendet werden (siehe [https://wiki.archlinux.org/title/ClamAV#Starting_the_daemon #Starting the daemon ]):
$ clamdscan --multiscan --fdpass /home/archie
Hier die <tt>--multiscan</tt>Parameter ermöglicht <tt>clamd</tt>den Inhalt des Verzeichnisses parallel mit verfügbaren Threads zu scannen. <tt>--fdpass</tt>Der Parameter ist erforderlich, um die Dateideskriptorberechtigungen zu übergeben <tt>clamd</tt>wie der Daemon läuft unter <tt>clamav</tt>Benutzer und Gruppe.
Die Anzahl der verfügbaren Threads für <tt>clamdscan</tt>wird bestimmt in <tt>/etc/clamav/clamd.conf</tt>über <tt>MaxThreads</tt>Parameter [https://man.archlinux.org/man/clamd.conf.5 clamd.conf(5) ]. Auch wenn Sie sehen, dass die Anzahl der <tt>MaxThreads</tt>angegeben ist mehr als eins (der aktuelle Standardwert ist 10), wenn Sie den Scan mit starten <tt>clamdscan</tt>von der Befehlszeile und nicht angeben <tt>--multiscan</tt>Option wird nur ein effektiver CPU-Thread zum Scannen verwendet.
== Siehe auch  ==
* [https://en.wikipedia.org/wiki/ClamAV Wikipedia:ClamAV ]


[[Category:Sicherheit:Schadsoftware:Scanner]]
[[Category:Sicherheit:Schadsoftware:Scanner]]

Version vom 15. Mai 2022, 17:30 Uhr

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

  1. Sicherheit:ClamAV:unofficial-sigs

Weblinks

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

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


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:

  1. 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:

  1. 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.

Siehe auch