... |
... |
@@ -22,12 +22,12 @@ |
22 |
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. |
23 |
23 |
|
24 |
24 |
{{info}} |
25 |
|
- Das //ClamAV//-Plugin scannt Dateien in Backend und Fronted. Es steht somit immer allen Benutzern zur Verfügung. Daher ist es anzuraten, das Plugin als System-Plugin zu installieren. Dies umgeht auch mögliche Probleme mit doppelt belegten Ports und ermöglicht eine zenztrale konfiguration. |
|
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. |
26 |
26 |
{{/info}} |
27 |
27 |
|
28 |
28 |
== Konfiguration Plugin == |
29 |
29 |
|
30 |
|
-//ClamAV// ist dafür gedacht, auf Linux basierten Servern zu laufen. Deswegen kann eine anderweitige Unterstützung unserseits nicht garantiert werden. |
|
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. |
31 |
31 |
|
32 |
32 |
{{figure image="de_error.png" width="400"}} |
33 |
33 |
Falls keine Verbindung zu dem angegeben Host aufgebaut werden kann, wird diese Meldung ausgegeben. |
... |
... |
@@ -39,14 +39,12 @@ |
39 |
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 |
40 |
; port (Erforderlich) |
41 |
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 |
|
-; file-source |
43 |
|
-: Wenn hier der Wert //stream// eingegeben wird (Standardwert), werden die Daten der zu überprüfenden Datei direkt an //ClamAV// übertragen. Falls hier der Wert //path// eingegeben wird, wird direkt auf dem Pfad gearbeitet - wobei dafür der //ClamAV//-Daemon Service root Rechte besitzen muss. |
|
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. |
44 |
44 |
|
45 |
|
-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. |
46 |
|
- |
47 |
47 |
== Konfiguration //ClamAV// == |
48 |
48 |
|
49 |
|
-Im folgenden Abschnitt wird auf Installation und Konfiguration von //ClamAV// eingegangen. Unser empfohlenes Szenario ist {{formcycle/}} und den //ClamAV//-Daemon Service auf dem selben Server zu installieren. |
|
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. |
50 |
50 |
|
51 |
51 |
=== Installation === |
52 |
52 |
|
... |
... |
@@ -54,10 +54,10 @@ |
54 |
54 |
|
55 |
55 |
//ClamAV// ist das Programm, welches Dateien auf Viren scannen kann und wird für die Verwendung von //ClamAV//-Daemon benötigt. |
56 |
56 |
|
57 |
|
-: Aktualisieren der package list: |
|
55 |
+; Aktualisieren der package list: |
58 |
58 |
; {{code language="shell"}} sudo apt-get update {{/code}} |
59 |
59 |
|
60 |
|
-: Installiere //ClamAV// und //ClamAV//-Daemon: |
|
58 |
+; Installiere //ClamAV// und //ClamAV//-Daemon: |
61 |
61 |
; {{code language="shell"}} sudo apt-get install clamav clamav-daemon -y {{/code}} |
62 |
62 |
|
63 |
63 |
=== Aktualisieren der Virensignatur-Datenbank === |
... |
... |
@@ -64,10 +64,10 @@ |
64 |
64 |
|
65 |
65 |
//freshclam// wird mit //ClamAV// automatisch installiert und wird zum aktualisieren der Virensignatur Datenbank genutzt. |
66 |
66 |
|
67 |
|
-: Beenden des automatischen //freshclam// Prozess: |
|
65 |
+; Beenden des automatischen //freshclam// Prozess: |
68 |
68 |
; {{code language="shell"}} sudo systemctl stop clamav-freshclam {{/code}} |
69 |
69 |
|
70 |
|
-: Manuelles aktualisieren der Virensignatur Datenabank: |
|
68 |
+; Manuelles aktualisieren der Virensignatur Datenbank: |
71 |
71 |
; {{code language="shell"}} sudo freshclam {{/code}} |
72 |
72 |
|
73 |
73 |
=== Konfiguration //ClamAV//-Daemon === |
... |
... |
@@ -76,39 +76,39 @@ |
76 |
76 |
|
77 |
77 |
Dafür soll die Konfigurationsdatei unter: // /etc/clamav/clamd.conf // angepasst werden. |
78 |
78 |
|
79 |
|
-: Öffnen der Konfigurationsdatei: |
|
77 |
+; Öffnen der Konfigurationsdatei: |
80 |
80 |
; {{code language="shell"}} sudo nano /etc/clamav/clamd.conf {{/code}} |
81 |
81 |
|
82 |
82 |
Mit den Pfeiltasten kann an das Ende der Datei navigiert werden. |
83 |
83 |
|
84 |
|
-: Hinzufügen von //TCPAddr 127.0.0.1 // |
85 |
|
-: Hinzufügen von //TCPSocket 3310 // |
|
82 |
+; Hinzufügen von //TCPAddr 127.0.0.1 // |
|
83 |
+; Hinzufügen von //TCPSocket 3310 // |
86 |
86 |
|
87 |
87 |
{{lightbox image="en_clamd.conf.png"/}} |
88 |
88 |
|
89 |
|
-Da das eigentliche Virusscanning losgelöst von {{formcycle/}} stattfindet, sollte auf eine aktulle Virensignatur-Datenbank geachtet werden via //freshclam//. |
|
87 |
+; //ClamAV//-Daemon root Rechte geben |
|
88 |
+: dafür muss in dieser Datei der Eintrag //User clamav// in //User root// geändert werden. |
90 |
90 |
|
91 |
|
-Dieses Plugin überträgt die zu untersuchenden Elemente via TCP, was standardmäßig in //ClamAV//-Daemon deaktiviert ist. Zur Aktivierung muss die Konfigurationsdatei unter: // /etc/clamav/clamd.conf // bearbeitet werden. |
|
90 |
+Nun kann mit //Strg + X// gespeichert und beendet werden. Mit //Y// und der Enter-Taste bestätigen. |
92 |
92 |
|
93 |
|
-Folgende Parameter müssen der Datei hinzugefügt werden: |
|
92 |
+=== Starten der //ClamAV//-Daemon Service === |
94 |
94 |
|
95 |
|
-; TCPAddr (Erforderlich) |
96 |
|
-: Soll hinzugefügt und mit dem Wert //127.0.0.1// angegeben werden. |
97 |
|
-; TCPSocket (Erforderlich) |
98 |
|
-: Soll hinzugefügt und mit dem Wert //3310// angegeben werden oder abweichend, falls der Port anderweitig genutzt werden soll. |
99 |
|
-; User |
100 |
|
-: Ist standardmäßig //clamav// und muss zu //root// geändert werden, um dem //ClamAV//-Daemon Service root Rechte zu geben. |
|
94 |
+Nun kann der Service gestartet werden. |
101 |
101 |
|
102 |
|
-{{figure image="de_tcp_test.png"}} |
103 |
|
- Mithilfe von //netstat// kann der TCP Socket vom //ClamAV//-Daemon Service untersucht werden. |
104 |
|
-{{/figure}} |
|
96 |
+: Starten des //ClamAV//-Daemon Service: |
|
97 |
+; {{code language="shell"}} sudo systemctl start clamav-daemon.service {{/code}} |
105 |
105 |
|
106 |
|
-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 durch folgenden Befehl im Terminal überprüft werden: |
|
99 |
+=== Prüfen der Verfügbarkeit des Service === |
107 |
107 |
|
108 |
|
-{{code language="shell"}} |
109 |
|
-sudo netstat -anp | grep -E "(clam)" |
110 |
|
-{{/code}} |
|
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. |
111 |
111 |
|
|
103 |
+; Mithilfe von //netstat// kann der TCP Socket vom //ClamAV//-Daemon Service untersucht werden. |
|
104 |
+; {{code language="shell"}} sudo netstat -anp | grep -E "(clam)" {{/code}} |
|
105 |
+ |
|
106 |
+{{lightbox image="de_tcp_test.png"/}} |
|
107 |
+ |
|
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. |
|
109 |
+ |
112 |
112 |
== Beispielkonfiguration == |
113 |
113 |
|
114 |
114 |
Ein beispielhafte Konfiguration mit den oben genannten Standardwerten: |
... |
... |
@@ -121,12 +121,54 @@ |
121 |
121 |
|
122 |
122 |
{{lightbox image="de_virus_found.png"/}} |
123 |
123 |
|
|
122 |
+=== Testdatei === |
|
123 |
+ |
|
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. |
|
126 |
+ |
|
127 |
+; [[**Wikipedia**>>https://de.wikipedia.org/wiki/EICAR-Testdatei]] |
|
128 |
+; [[**Download**>>https://www.eicar.org/download-anti-malware-testfile/]] |
|
129 |
+ |
|
130 |
+=== Logging === |
|
131 |
+ |
|
132 |
+//ClamAV// erstellt logs, welche unter // /var/log/clamav/clamav.log // zu finden sind. |
|
133 |
+ |
|
134 |
+: Nach dem hochladen der //eicar.com// Testdatei ist zum Beispiel folgender Eintrag in //clamav.log //zu sehen: |
|
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 |
+ |
|
137 |
+{{formcycle/}} logs sind hierfür unter // /formcycle-data/formcycle7/logs zu finden.// |
|
138 |
+ |
|
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}} |
|
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 |
+ |
124 |
124 |
== Versionshistorie == |
125 |
125 |
|
126 |
|
-**Version 1.0.1** |
|
145 |
+=== Version 1.0.6 === |
127 |
127 |
|
128 |
|
-* Optimierungen für Installation auf Server-Cluster |
|
147 |
+* Change: Virenscan über ClamAV ist nun auch für Windows oder JVM Plattformen möglich |
|
148 |
+* Fix: Fehler bei der Fehlerbehandlung behoben |
129 |
129 |
|
130 |
|
-**Version 1.0.0** |
|
150 |
+=== Version 1.0.5 === |
131 |
131 |
|
|
152 |
+* Verbesserte Fehlermeldung im Log, wenn Clam-AV nicht angesprochen werden konnte |
|
153 |
+ |
|
154 |
+=== Version 1.0.4 === |
|
155 |
+ |
|
156 |
+* Fix: Ein Fehler beim Virenscan auf dem Frontend-Server wurde behoben. |
|
157 |
+ |
|
158 |
+=== Version 1.0.3 === |
|
159 |
+ |
|
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 |
+ |
132 |
132 |
* Initialer Release |