Inhaltsverzeichnis

ClamAV installieren

Clamav ist ein kostenfreier Opensource Antviren Scanner. Dieser Scanner bringt einen einfachen onaccess Scan mit, welcher zuerts konfiguriert werden muss.

Installation

apt install clamav clamav-daemon clamav-freshclam



Der erste Start

Zuerst muss freshclam Virensignaturen bekommen. Dazu muss zunächst der Freshclam dienst beendet werden

systemctl stop clamav-freshclam

Ein Update per Hand durchführen

freshclam

Freshclam Dienst für automatische Aktualisierungen wieder neu starten

systemctl start clamav-freshclam


Status von ClamAV prüfen

systectl status clamav-freshclam


Von welchem Tag sing meine Virensignaturen

sigtool --info /var/lib/clamav/daily.cld


Dateien und Ordner überprüfen

Um Dateien und Ordner zu prüfen wird das Tool clamscan genutzt.

Datei überprüfen

clamscan /home/User1/Datei1

Mehrere Dateien überprüfen

clamscan /home/User1/Datei2 /home/User2/Datei2 Datei3 ... DateiN


Manchmal treten Probleme auf weil der clamav Benutzer nicht genügend Rechte besitzt um die Datei oder den Order zu scannen.
Hierbei hilft die Option –fdpass. Damit verwendet clamscan die Rechte die Ihm durch den Benutzer gewährt werden.

Optionen

-i –infectedGibt nur infizierte Dateien aus und nicht alle
–removeLöscht infinzierte Dateien sofort!
–move=VerzeichnisVerschiebt alle infizierten Dateien in ein Verzeichnis (Quarantäne)
-r –recursiveDurchsucht auch alle Unterordner
–no-archiveArchivdateien werden nicht gescannt



On Access Scan

Manchmal macht apparmor Probleme und verhindert ein Ausführen von einem OnAccess Scan durch ClamAV. Hierbei kann Apparmor für ClamAV in dem complain Modus gesetzt werden. Dazu wird das Paket apparmor-utils benötigt.

apt install apparmot-utils

Apparmor in den complain Modus setzten

aa-complain /usr/sbin/clamd


Die Konfiguration für ClamAV muss hier angepasst werden

nano /etc/clamav/clamav.conf
...
# Maximale Dateigröße
OnAccessMaxFileSize 2000M
 
# SOll die Datei geblockt werden wenn entwas gefunden wurde
OnAccessPrevention no
 
# Diese Ordner werden überprüft
OnAccessIncludePath /home
OnAccessIncludePath /tmp
OnAccessIncludePath /var/www
 
# Keine Dateien prüfen die root ider clamav gehören
OnAccessExcludeUname clamav
OnAccessExcludeRootUID true
 
# Temp Ordner für clamav
TemporaryDirectory /var/clamav/tmp
 
...


ClamAV Daemon neu starten

systemctl clamav-daemon


Ein kompletter Systemscan durch eintragen von OnAccessIncludePath / ist nicht möglich, da ClamAV z.B. nicht auf socket Dateien und dergleichen zugreifen kann. Bei so einer Eintragung wird der Dienst nicht starten. Stattdessen sollte man sich überlegen, welche Einfallstore für Schadsoftware existieren. Hier wären die Home Verzeichnisse der Benutzer, im speziellen das Downloadverzeichnis sowie /tmp wo z.B. vom Browser automatisch Daten abgelegt werden.

Um weiteren Problemen vorzugreifen ist es empfehlenswer ein separaten tmp Ordner für ClamAV zu erstellen und zu konfigurieren.

mkdir -p /var/clamav/tmp && chown -R clamav:root /var/clamav && chmod 770 /var/clamav


Nach der Konfiguration kann der onAccess gestartet werden

clamonacc


Ein automatischen start kann man mittels eines Systemd Daemon erreichen. Dazu muss ein entsprechender Service definiert werden.

nano /etc/systemd/system/clamonacc.service
# /etc/systemd/system/clamonacc.service
[Unit]
Description=ClamAV On Access Scanner
Requires=clamav-daemon.service
After=clamav-daemon.service syslog.target network.target
 
[Service]
Type=simple
User=root
ExecStart=/usr/sbin/clamonacc --fdpass -F --log=/var/log/clamav/clamonacc --move=/root/quarantine
Restart=on-failure
RestartSec=120s
 
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl enable clamonacc.service
systemctl start clamonacc.service


Hier wird als root der clamonacc Service gestartet. Die Meldungen werden in einem eigenen Logfile /var/log/clamav/clamonacc gespeichert. Infizierte Dateien werden nach /root/quarantine verschoben. Hier muss sichergestellt werden, dass das Verzeichnis existiert.

mkdir -p /root/quarantine && chown root: /root/quarantine && chmod 750 /root/quarantine


Test

Um einen Virenscanner gefahrlos testen zu können gibt des das EICAR Testfile. Es ist eine Zeichenfolge auf die jeder Virenscanner anspringen muss. Hierzu wird einfach eine Datei mit dem passenden Inhalt erstellt.

echo 'X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*' > /tmp/eicartestfile

Es sollte sofort der Virenscanner anspringen und die Datei in die Quarantäne verschieben. Eine Meldung sollte im Logfile unter /var/log/clamav/clamonacc erscheinen.

Fehlersuche

Der onAccess Scan kann auch gedebugged werden, indem der Befehl

clamonacc --foreground --verbose

ausgeführt wird