===== 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