Wiki-Quellcode von ClamAV


Zeige letzte Bearbeiter
1 {{info}}
2 {{version major="7" minor="0" patch="13" showInfo="true"}}
3 Dieses Plugin kann nur mit {{formcycle/}} Version 7.0.13 oder höher verwendet werden.
4 {{/version}}
5 {{/info}}
6
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)
8
9 {{content/}}
10
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.
12
13 == Funktionalität ==
14
15 ; Sofortiger Virenscan
16 : Jede Datei wird direkt nach Ihrem Upload gescannt.
17
18 Der verwendete //ClamAV//-Daemon Service kann weder durch dieses Plugin konfiguriert noch gestartet werden.
19
20 == Installation ==
21
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
24 {{info}}
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 {{/info}}
27
28 == Konfiguration Plugin ==
29
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
32 {{figure image="de_error.png" width="400"}}
33 Falls keine Verbindung zu dem angegeben Host aufgebaut werden kann, wird diese Meldung ausgegeben.
34 {{/figure}}
35
36 Folgende Konfigurationsparameter gibt es:
37
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.
44
45 == Konfiguration //ClamAV// ==
46
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.
48
49 === Installation ===
50
51 Um //ClamAV// auf einem Server zu installieren, sollten folgende Befehle auf dem Server eingegeben werden.
52
53 //ClamAV// ist das Programm, welches Dateien auf Viren scannen kann und wird für die Verwendung von //ClamAV//-Daemon benötigt.
54
55 ; Aktualisieren der package list:
56 ; {{code language="shell"}} sudo apt-get update {{/code}}
57
58 ; Installiere //ClamAV// und //ClamAV//-Daemon:
59 ; {{code language="shell"}} sudo apt-get install clamav clamav-daemon -y {{/code}}
60
61 === Aktualisieren der Virensignatur-Datenbank ===
62
63 //freshclam// wird mit //ClamAV// automatisch installiert und wird zum aktualisieren der Virensignatur Datenbank genutzt.
64
65 ; Beenden des automatischen //freshclam// Prozess:
66 ; {{code language="shell"}} sudo systemctl stop clamav-freshclam {{/code}}
67
68 ; Manuelles aktualisieren der Virensignatur Datenbank:
69 ; {{code language="shell"}} sudo freshclam {{/code}}
70
71 === Konfiguration //ClamAV//-Daemon ===
72
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.
74
75 Dafür soll die Konfigurationsdatei unter: // /etc/clamav/clamd.conf // angepasst werden.
76
77 ; Öffnen der Konfigurationsdatei:
78 ; {{code language="shell"}} sudo nano /etc/clamav/clamd.conf {{/code}}
79
80 Mit den Pfeiltasten kann an das Ende der Datei navigiert werden.
81
82 ; Hinzufügen von //TCPAddr 127.0.0.1 //
83 ; Hinzufügen von //TCPSocket 3310 //
84
85 {{lightbox image="en_clamd.conf.png"/}}
86
87 ; //ClamAV//-Daemon root Rechte geben
88 : dafür muss in dieser Datei der Eintrag //User clamav// in //User root// geändert werden.
89
90 Nun kann mit //Strg + X// gespeichert und beendet werden. Mit //Y// und der Enter-Taste bestätigen.
91
92 === Starten der //ClamAV//-Daemon Service ===
93
94 Nun kann der Service gestartet werden.
95
96 : Starten des //ClamAV//-Daemon Service:
97 ; {{code language="shell"}} sudo systemctl start clamav-daemon.service {{/code}}
98
99 === Prüfen der Verfügbarkeit des Service ===
100
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.
102
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
110 == Beispielkonfiguration ==
111
112 Ein beispielhafte Konfiguration mit den oben genannten Standardwerten:
113
114 {{lightbox image="de_plugin.png"/}}
115
116 == Verwendung ==
117
118 Sobald eine Virensignatur erkannt wurde, ist folgende Meldung zu sehen:
119
120 {{lightbox image="de_virus_found.png"/}}
121
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
143 == Versionshistorie ==
144
145 === Version 1.0.6 ===
146
147 * Change: Virenscan über ClamAV ist nun auch für Windows oder JVM Plattformen möglich
148 * Fix: Fehler bei der Fehlerbehandlung behoben
149
150 === Version 1.0.5 ===
151
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
172 * Initialer Release