===== 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 ====
{{ :home-harmening:sicherheit:antivirus:clamav:freshclam.png?400|}}
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 --infected|Gibt nur infizierte Dateien aus und nicht alle|
|--remove|Löscht infinzierte Dateien sofort!|
|--move=Verzeichnis|Verschiebt alle infizierten Dateien in ein Verzeichnis (Quarantäne)|
|-r --recursive|Durchsucht auch alle Unterordner|
|--no-archive|Archivdateien 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