Wiki-Quellcode von ClamAV


Verstecke letzte Bearbeiter
gru 12.3 1 {{info}}
2 {{version major="7" minor="0" patch="13" showInfo="true"}}
jdr 33.3 3 Dieses Plugin kann nur mit {{formcycle/}} Version 7.0.13 oder höher verwendet werden.
gru 12.3 4 {{/version}}
5 {{/info}}
6
jdr 33.3 7 [[**Plugin-Download**>>https://customer.formcycle.eu/index.php/apps/files/?dir=/FORMCYCLE%20-%20Plugins%20Customer/fc-plugin-malware-scanner/ClamAV&fileid=40404]] (erfordert Anmeldung)
fse 7.2 8
9 {{content/}}
10
jdr 33.3 11 Mit dem kostenlosen //ClamAV//-Plugin für {{formcycle/}} besteht die Möglichkeit, hochgeladene Dateien auf Viren zu scannen. Hierfür stellt dieses Plugin eine Verbindung zu einem //ClamAV//-Daemon Service via TCP her.
fse 7.2 12
jdr 33.3 13 == Funktionalität ==
fse 7.2 14
jdr 33.3 15 ; Sofortiger Virenscan
16 : Jede Datei wird direkt nach Ihrem Upload gescannt.
fse 7.2 17
jdr 33.3 18 Der verwendete //ClamAV//-Daemon Service kann weder durch dieses Plugin konfiguriert noch gestartet werden.
fse 23.2 19
20 == Installation ==
21
jdr 33.3 22 Die Installation des Plugins ist über die dafür vorgesehene Verwaltungsoberfläche von Plugins durchzuführen. Hierbei muss lediglich die entsprechende //Jar//-Datei eingespielt werden.
fse 23.2 23
24 {{info}}
jdr 33.3 25 Das //ClamAV//-Plugin scannt Dateien in Backend und Fronted. Um immer für alle Benutzer verfügbar zu sein, ist es ratsam, das Plugin als System-Plugin zu installieren. Dies umgeht auch mögliche Probleme mit doppelt belegten Ports und ermöglicht eine zentrale Konfiguration.
fse 23.2 26 {{/info}}
27
jdr 33.3 28 == Konfiguration Plugin ==
fse 23.2 29
jdr 33.3 30 Nach dem Speichern wird automatisch ein Ping-Test durchgeführt. Falls dieser fehlschlägt wird eine entsprechende Meldung angezeigt. In diesem Fall werden alle Uploads im Backend oder im Formular als fehlerhaft markiert - das Plugin sollte erst einmal deaktiviert werden und eine funktionierende Verbindung aufgebaut werden.
fse 23.2 31
jdr 33.3 32 {{figure image="de_error.png" width="400"}}
33 Falls keine Verbindung zu dem angegeben Host aufgebaut werden kann, wird diese Meldung ausgegeben.
fse 7.2 34 {{/figure}}
35
jdr 33.3 36 Folgende Konfigurationsparameter gibt es:
fse 7.2 37
jdr 33.3 38 ; host (Erforderlich)
39 : Standardwert: //127.0.0.1//. Gibt die zu verwendende //IP//-Adresse des //ClamAV//-Daemon Service an. Der Standardwert ist //127.0.0.1// und verwendet damit einen lokalen //ClamAV//-Daemon Service.
40 ; port (Erforderlich)
41 : Standardwert: //3310//. Gibt den zu verwendenden Port des //ClamAV//-Daemon Service an. Der Standardwert sollte nur geändert werden, falls dieser Port nicht zu Verfügung steht
42 ; os (Optional)
43 : Standardwert: //JVM_PLATFORM//. Betriebssystem, auf dem der ClamAV-Daemon-Dienst läuft. Dieser Wert ist nur relevant, wenn das Betriebssystem von formcycle und das des ClamAV-Daemon-Dienstes unterschiedlich sind. Für Linux oder MacOS geben Sie //UNIX// ein, für Windows //WINDOWS//. Wenn beide auf dem gleichen Betriebssystem laufen, können Sie diesen Wert leer lassen oder //JVM_PLATFORM// verwenden.
fse 7.2 44
jdr 33.3 45 == Konfiguration //ClamAV// ==
fse 7.2 46
jdr 33.3 47 Im folgenden Abschnitt wird auf Installation und Konfiguration von //ClamAV// auf einem UNIX-System eingegangen. Unser empfohlenes Szenario ist {{formcycle/}} und den //ClamAV//-Daemon Service auf dem selben Server zu installieren.
fse 7.2 48
fse 23.2 49 === Installation ===
fse 7.2 50
jdr 33.3 51 Um //ClamAV// auf einem Server zu installieren, sollten folgende Befehle auf dem Server eingegeben werden.
fse 7.2 52
jdr 33.3 53 //ClamAV// ist das Programm, welches Dateien auf Viren scannen kann und wird für die Verwendung von //ClamAV//-Daemon benötigt.
fse 7.2 54
jdr 33.3 55 ; Aktualisieren der package list:
fse 23.2 56 ; {{code language="shell"}} sudo apt-get update {{/code}}
fse 7.2 57
jdr 33.3 58 ; Installiere //ClamAV// und //ClamAV//-Daemon:
fse 23.2 59 ; {{code language="shell"}} sudo apt-get install clamav clamav-daemon -y {{/code}}
fse 7.2 60
jdr 33.3 61 === Aktualisieren der Virensignatur-Datenbank ===
fse 7.2 62
jdr 33.3 63 //freshclam// wird mit //ClamAV// automatisch installiert und wird zum aktualisieren der Virensignatur Datenbank genutzt.
fse 7.2 64
jdr 33.3 65 ; Beenden des automatischen //freshclam// Prozess:
fse 23.2 66 ; {{code language="shell"}} sudo systemctl stop clamav-freshclam {{/code}}
67
jdr 33.3 68 ; Manuelles aktualisieren der Virensignatur Datenbank:
fse 23.2 69 ; {{code language="shell"}} sudo freshclam {{/code}}
70
jdr 33.3 71 === Konfiguration //ClamAV//-Daemon ===
fse 23.2 72
jdr 33.3 73 //ClamAV//-Daemon ist der auf dem Server im Hintergrund laufende Prozess, welcher zum Virusscan angesprochen wird. Das geschieht via TCP und muss entprechend konfiguriert werden.
fse 23.2 74
jdr 33.3 75 Dafür soll die Konfigurationsdatei unter: // /etc/clamav/clamd.conf // angepasst werden.
fse 23.2 76
jdr 33.3 77 ; Öffnen der Konfigurationsdatei:
fse 23.2 78 ; {{code language="shell"}} sudo nano /etc/clamav/clamd.conf {{/code}}
79
jdr 33.3 80 Mit den Pfeiltasten kann an das Ende der Datei navigiert werden.
fse 23.2 81
jdr 33.3 82 ; Hinzufügen von //TCPAddr 127.0.0.1 //
83 ; Hinzufügen von //TCPSocket 3310 //
fse 23.2 84
85 {{lightbox image="en_clamd.conf.png"/}}
86
jdr 33.3 87 ; //ClamAV//-Daemon root Rechte geben
88 : dafür muss in dieser Datei der Eintrag //User clamav// in //User root// geändert werden.
fse 23.2 89
jdr 33.3 90 Nun kann mit //Strg + X// gespeichert und beendet werden. Mit //Y// und der Enter-Taste bestätigen.
fse 23.2 91
jdr 33.3 92 === Starten der //ClamAV//-Daemon Service ===
fse 23.2 93
jdr 33.3 94 Nun kann der Service gestartet werden.
fse 23.2 95
jdr 33.3 96 : Starten des //ClamAV//-Daemon Service:
fse 23.2 97 ; {{code language="shell"}} sudo systemctl start clamav-daemon.service {{/code}}
98
jdr 33.3 99 === Prüfen der Verfügbarkeit des Service ===
fse 23.2 100
jdr 33.3 101 Damit dieses Plugin den //ClamAV//-Daemon Service ansprechen kann, muss der Service an der richtigen Stelle zuhören - in diesem Fall unter //127.0.0.1:3310//. Das kann im Terminal der Servers überprüft werden.
fse 23.2 102
jdr 33.3 103 ; Mithilfe von //netstat// kann der TCP Socket vom //ClamAV//-Daemon Service untersucht werden.
fse 23.2 104 ; {{code language="shell"}} sudo netstat -anp | grep -E "(clam)" {{/code}}
105
jdr 33.3 106 {{lightbox image="de_tcp_test.png"/}}
fse 23.2 107
jdr 33.3 108 Falls keine Zeile beginnend mit //tcp// zu sehen ist oder eine abweichende //host:port// Kombination als //127.0.0.1:3310// zu erkennen ist, muss die Konfiguration erneut geprüft werden.
fse 23.2 109
jdr 33.3 110 == Beispielkonfiguration ==
fse 23.2 111
jdr 33.3 112 Ein beispielhafte Konfiguration mit den oben genannten Standardwerten:
fse 23.2 113
jdr 33.3 114 {{lightbox image="de_plugin.png"/}}
fse 23.2 115
jdr 33.3 116 == Verwendung ==
fse 23.2 117
jdr 33.3 118 Sobald eine Virensignatur erkannt wurde, ist folgende Meldung zu sehen:
fse 23.2 119
jdr 33.3 120 {{lightbox image="de_virus_found.png"/}}
fse 23.2 121
jdr 33.3 122 === Testdatei ===
fse 23.2 123
jdr 33.3 124 Eine gängige Methode zur Überprüfung von Virenscannern ist die //eicar.com// Datei.
125 An beliebiger Stelle kann diese Tastdatei hochgeladen werden und nach erfolgreicher Konfiguration ist die oben dargestellte Meldung zu sehen.
fse 23.2 126
127 ; [[**Wikipedia**>>https://de.wikipedia.org/wiki/EICAR-Testdatei]]
128 ; [[**Download**>>https://www.eicar.org/download-anti-malware-testfile/]]
129
130 === Logging ===
131
jdr 33.3 132 //ClamAV// erstellt logs, welche unter // /var/log/clamav/clamav.log // zu finden sind.
fse 23.2 133
jdr 33.3 134 : Nach dem hochladen der //eicar.com// Testdatei ist zum Beispiel folgender Eintrag in //clamav.log //zu sehen:
fse 23.2 135 ; {{code language="shell"}} Wed May 25 10:10:21 2022 -> instream(127.0.0.1@32984): Win.Test.EICAR_HDB-1(44d88612fea8a8f36de82e1278abb02f:68) FOUND {{/code}}
136
jdr 33.3 137 {{formcycle/}} logs sind hierfür unter // /formcycle-data/formcycle7/logs zu finden.//
fse 23.2 138
jdr 33.3 139 : Nach dem hochladen der //eicar.com// Testdatei ist zum Beispiel folgender Eintrag in //formcycle-errors-log //zu sehen:
140 ; {{code language="shell"}} [WARN] [25-05-22 10:10:21,192] [ajp-nio-127.0.0.1-8009-exec-43] (MalwareScanner.java:211) - Scanner <fc.plugin.malware.scanner.clamAV.ClamAntiVirusFileScanner@7b2a4953> detected malware signature for file </home/fc/tomcat9/tmp/xima-temp/formcycle7/xfc-malware-scan/stream-scan12705251110052849842/data2383296604287452271>: {stream=[Win.Test.EICAR_HDB-1]} {{/code}}
fse 23.2 141 ; {{code language="shell"}} [ERROR] [25-05-22 10:10:21,207] [ajp-nio-127.0.0.1-8009-exec-43] (VirusScannerService.java:71) - Detected a virus {{/code}}
142
jdr 33.3 143 == Versionshistorie ==
fse 23.2 144
jdr 33.3 145 === Version 1.0.6 ===
fse 31.1 146
jdr 33.3 147 * Change: Virenscan über ClamAV ist nun auch für Windows oder JVM Plattformen möglich
148 * Fix: Fehler bei der Fehlerbehandlung behoben
awa 33.2 149
jdr 33.3 150 === Version 1.0.5 ===
awa 33.2 151
jdr 33.3 152 * Verbesserte Fehlermeldung im Log, wenn Clam-AV nicht angesprochen werden konnte
fse 31.1 153
jdr 33.3 154 === Version 1.0.4 ===
fse 23.2 155
jdr 33.3 156 * Fix: Ein Fehler beim Virenscan auf dem Frontend-Server wurde behoben.
fse 23.2 157
jdr 33.3 158 === Version 1.0.3 ===
fse 23.2 159
jdr 33.3 160 * Change: Das Plugin wird auch auf den Frontend-Server übertragen, wenn ein solcher verfügbar ist. Somit kann auch auf Frontend-Server nach Viren gesucht werden.
161
162 === Version 1.0.2 ===
163
164 * Entfernen: Eigenschaft für Pfad-Scanning, nur noch InputStream
165
166 === Version 1.0.1 ===
167
168 * Fix: Überspringen der Überprüfung, wenn das Betriebssystem nicht UNIX ist, anstatt die Datei als Virus zu erkennen
169
170 === Version 1.0.0 ===
171
172 * Initialer Release