Änderungen von Dokument ClamAV


Von Version 34.3
bearbeitet von jdr
am 13.07.2023, 15:56
Änderungskommentar: Es gibt keinen Kommentar für diese Version
Auf Version 4.1
bearbeitet von fse
am 16.05.2022, 17:10
Änderungskommentar: Es gibt keinen Kommentar für diese Version

Zusammenfassung

Details

Seiteneigenschaften
Dokument-Autor
... ... @@ -1,1 +1,1 @@
1 -XWiki.jdr
1 +XWiki.fse
Inhalt
... ... @@ -1,167 +1,57 @@
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}}
1 +[[**Plugin-Download**>>https://customer.formcycle.eu/index.php/apps/files/?dir=/FORMCYCLE%20-%20Plugins%20Customer/fc-plugin-malware-scanner/ClamAV&fileid=40404]]
6 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 9  {{content/}}
10 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.
5 +{{figure image="de_plugin.png" width="600"}}
6 + Es muss ein TCP-Verbindung eingerichtet werden, um den ClamAV-Daemon Service zum scannen der hochgeladenen Dateien zu verwenden.
7 +{{/figure}}
12 12  
13 -== Funktionalität ==
9 +Es ist möglich, hochgeladene Elemente im Backend sowie in ausgelieferten Formularen durch ClamAV auf Viren untersuchen zu lassen. Dazu wird dieses Plugin als aktiviertes System-Plugin benötigt sowie ein laufender ClamAV-Daemon Service der über TCP erreicht werden kann.
14 14  
15 -; Sofortiger Virenscan
16 -: Jede Datei wird direkt nach Ihrem Upload gescannt.
11 +Nachdem dieses Plugin installiert wurde, muss es konfiguriert werden. Die Konfiguration besteht daraus, dass angegeben wird, auf welche {{smallcaps}}host:port{{/smallcaps}} Kombination zugegriffen werden soll. Außerdem kann die Übertragung mit einem {{smallcaps}}InputStream{{/smallcaps}} geschehen oder es wird direkt auf dem Pfad gearbeitet.
17 17  
18 -Der verwendete //ClamAV//-Daemon Service kann weder durch dieses Plugin konfiguriert noch gestartet werden.
13 +== Konfiguration ==
19 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"}}
15 +{{figure image="en_error.png" width="400"}}
33 33   Falls keine Verbindung zu dem angegeben Host aufgebaut werden kann, wird diese Meldung ausgegeben.
34 34  {{/figure}}
35 35  
36 -Folgende Konfigurationsparameter gibt es:
19 +Folgende Konfigurationparameter gibt es:
37 37  
38 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 -: Betriebssystem auf dem der //ClamAV//-Daemon Service läuft. r Linux oder MacOS geben Sie "UNIX" ein, für Windows "WINDOWS" und JVM Plattformen "JVM_PLATFORM".
22 +: Host-Name oder IP-Adresse des Servers auf dem ClamAV-Daemon läuft, {{smallcaps}}127.0.0.1{{/smallcaps}} falls der Service auf dem gleichen Server wie {{formcycle/}} läuft.
23 +; port
24 +: Der Standard Port von ClamAV-Daemon ist {{smallcaps}}3310{{/smallcaps}}. Falls der Port abweichen sollten, so muss dieser hier angegeben werden.
25 +; file-source
26 +: Standardmäßig wird das zu überprüfende Element per Javas {{smallcaps}}InputStream{{/smallcaps}} übertragen. Falls hier der Wert {{smallcaps}}path{{/smallcaps}} eingeben wird, wird direkt auf dem Pfad gearbeitet - wobei dafür der ClamAV-Daemon Service root Rechte besitzen muss.
44 44  
45 -== Konfiguration //ClamAV// ==
28 +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 46  
47 -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.
30 +== ClamAV Einstellungen ==
48 48  
49 -=== Installation ===
32 +Im folgenden Abschnitt wird auf wichtige Konfigurationsschritte von ClamAV-Daemon eingegangen. In diesem Szenario ist {{formcycle/}} auf einem Debian basierten Server installiert und auf selbigen System läuft der ClamAV-Daemon Service.
50 50  
51 -Um //ClamAV// auf einem Server zu installieren, sollten folgende Befehle auf dem Server eingegeben werden.
34 +Da das eigentliche Virusscanning losgelöst von {{formcycle/}} stattfindet, sollte auf eine aktulle Virensignatur-Datenbank geachtet werden via {{smallcaps}}freshclam{{/smallcaps}}.
52 52  
53 -//ClamAV// ist das Programm, welches Dateien auf Viren scannen kann und wird r die Verwendung von //ClamAV//-Daemon benötigt.
36 +Dieses Plugin überträgt die zu untersuchenden Elemente via TCP, was standardmäßig in ClamAV-Daemon deaktiviert ist. Zur Aktivierung muss die Konfigurationsdatei unter: {{smallcaps}}/etc/clamav/clamd.conf{{/smallcaps}} bearbeitet werden.
54 54  
55 -; Aktualisieren der package list:
56 -; {{code language="shell"}} sudo apt-get update {{/code}}
38 +Folgende Parameter müssen der Datei hinzugefügt werden:
57 57  
58 -; Installiere //ClamAV// und //ClamAV//-Daemon:
59 -; {{code language="shell"}} sudo apt-get install clamav clamav-daemon -y {{/code}}
40 +; TCPAddr (Erforderlich)
41 +: Soll hinzugefügt und mit dem Wert {{smallcaps}}127.0.0.1{{/smallcaps}} angegeben werden.
42 +; TCPSocket (Erforderlich)
43 +: Soll hinzugefügt und mit dem Wert {{smallcaps}}3310{{/smallcaps}} angegeben werden oder abweichend, falls der Port anderweitig genutzt werden soll.
44 +; User
45 +: Ist standardmäßig {{smallcaps}}clamav{{/smallcaps}} und muss zu {{smallcaps}}root{{/smallcaps}} geändert werden um dem ClamAV-Daemon Service root Rechte zu geben.
60 60  
61 -=== Aktualisieren der Virensignatur-Datenbank ===
47 +{{figure image="en_tcp_test.png"}}
48 + Mithilfe von {{smallcaps}}netstat{{/smallcaps}} kann der TCP Socket vom ClamAV-Daemon Service untersucht werden.
49 +{{/figure}}
62 62  
63 -//freshclam// wird mit //ClamAV// automatisch installiert und wird zum aktualisieren der Virensignatur Datenbank genutzt.
51 +Damit dieses Plugin den ClamAV-Daemon Service ansprechen kann, muss der Service an der richtigen Stelle zuhören - in diesem Fall unter {{smallcaps}}127.0.0.1:3310{{/smallcaps}}. Das kann durch folgenden Befehl im Terminal überprüft werden:
64 64  
65 -; Beenden des automatischen //freshclam// Prozess:
66 -; {{code language="shell"}} sudo systemctl stop clamav-freshclam {{/code}}
53 +{{code language="shell"}}
54 +sudo netstat -anp | grep -E "(clam)"
55 +{{/code}}
67 67  
68 -; Manuelles aktualisieren der Virensignatur Datenbank:
69 -; {{code language="shell"}} sudo freshclam {{/code}}
70 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.5
146 -
147 -* Verbesserte Fehlermeldung im Log, wenn Clam-AV nicht angesprochen werden konnte
148 -
149 -=== Version 1.0.4
150 -
151 -* Fix: Ein Fehler beim Virenscan auf dem Frontend-Server wurde behoben.
152 -
153 -=== Version 1.0.3
154 -
155 -* 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.
156 -
157 -=== Version 1.0.2
158 -
159 -* Entfernen: Eigenschaft für Pfad-Scanning, nur noch InputStream
160 -
161 -=== Version 1.0.1
162 -
163 -* Fix: Überspringen der Überprüfung, wenn das Betriebssystem nicht UNIX ist, anstatt die Datei als Virus zu erkennen
164 -
165 -=== Version 1.0.0
166 -
167 -* Initialer Release