| ... | ... | @@ -1,17 +1,169 @@ | 
              
                    | 1 |  | -[[**Plugin-Download**>>https://customer.formcycle.eu/index.php/apps/files/?dir=/FORMCYCLE%20-%20Plugins%20Customer/fc-plugin-malware-scanner/ClamAV&fileid=40404]] | 
              
                    |  | 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}} | 
              
                    | 2 | 2 |  | 
              
                    |  | 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 | + | 
              
                    | 3 | 3 | {{content/}} | 
              
                    | 4 | 4 |  | 
              
                    | 5 |  | -{{figure image="de_plugin.png" width="600"}} | 
              
                    | 6 |  | -  Es muss ein TCP-Verbindung eingerichtet werden, um den Clam-Daemon Service zum scannen der hochgeladenen Dateien zu verwenden. | 
              
                    |  | 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. | 
              
                    | 7 | 7 | {{/figure}} | 
              
                    | 8 | 8 |  | 
              
                    | 9 |  | - Es ist möglich, Hochgeladene Elemente im Backend sowiein ausgelieferten Formularen durch ClamAV auf Viren untersuchen zu lassen. Dazu wird dieses Plugin als aktiviertes System-Plugin benötigt sowie ein laufender Clam-Daemon Serviceder über TCP erreichtwerden kann. | 
              
                    |  | 36 | +Folgende Konfigurationsparameter gibt es: | 
              
                    | 10 | 10 |  | 
              
                    | 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. | 
              
                    |  | 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 | 
              
                    | 12 | 12 |  | 
              
                    | 13 |  | -== Konfiguration == | 
              
                    |  | 43 | +{{info}} | 
              
                    |  | 44 | +//ClamAV// ist dafür gedacht, auf Linux basierten Servern zu laufen. Deswegen kann eine anderweitige Unterstützung unserseits nicht garantiert werden. | 
              
                    |  | 45 | +{{/info}} | 
              
                    | 14 | 14 |  | 
              
                    | 15 |  | - FolgendeKonfigurationparametergibt es: | 
              
                    |  | 47 | +== Konfiguration //ClamAV// == | 
              
                    | 16 | 16 |  | 
              
                    |  | 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. | 
              
                    | 17 | 17 |  | 
              
                    |  | 51 | +=== Installation === | 
              
                    |  | 52 | + | 
              
                    |  | 53 | +Um //ClamAV// auf einem Server zu installieren, sollten folgende Befehle auf dem Server eingegeben werden. | 
              
                    |  | 54 | + | 
              
                    |  | 55 | +//ClamAV// ist das Programm, welches Dateien auf Viren scannen kann und wird für die Verwendung von //ClamAV//-Daemon benötigt. | 
              
                    |  | 56 | + | 
              
                    |  | 57 | +; Aktualisieren der package list: | 
              
                    |  | 58 | +; {{code language="shell"}} sudo apt-get update {{/code}} | 
              
                    |  | 59 | + | 
              
                    |  | 60 | +; Installiere //ClamAV// und //ClamAV//-Daemon: | 
              
                    |  | 61 | +; {{code language="shell"}} sudo apt-get install clamav clamav-daemon -y {{/code}} | 
              
                    |  | 62 | + | 
              
                    |  | 63 | +=== Aktualisieren der Virensignatur-Datenbank === | 
              
                    |  | 64 | + | 
              
                    |  | 65 | +//freshclam// wird mit //ClamAV// automatisch installiert und wird zum aktualisieren der Virensignatur Datenbank genutzt. | 
              
                    |  | 66 | + | 
              
                    |  | 67 | +; Beenden des automatischen //freshclam// Prozess: | 
              
                    |  | 68 | +; {{code language="shell"}} sudo systemctl stop clamav-freshclam {{/code}} | 
              
                    |  | 69 | + | 
              
                    |  | 70 | +; Manuelles aktualisieren der Virensignatur Datenbank: | 
              
                    |  | 71 | +; {{code language="shell"}} sudo freshclam {{/code}} | 
              
                    |  | 72 | + | 
              
                    |  | 73 | +=== Konfiguration //ClamAV//-Daemon === | 
              
                    |  | 74 | + | 
              
                    |  | 75 | +//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. | 
              
                    |  | 76 | + | 
              
                    |  | 77 | +Dafür soll die Konfigurationsdatei unter: // /etc/clamav/clamd.conf // angepasst werden. | 
              
                    |  | 78 | + | 
              
                    |  | 79 | +; Öffnen der Konfigurationsdatei: | 
              
                    |  | 80 | +; {{code language="shell"}} sudo nano /etc/clamav/clamd.conf {{/code}} | 
              
                    |  | 81 | + | 
              
                    |  | 82 | +Mit den Pfeiltasten kann an das Ende der Datei navigiert werden. | 
              
                    |  | 83 | + | 
              
                    |  | 84 | +; Hinzufügen von //TCPAddr 127.0.0.1 // | 
              
                    |  | 85 | +; Hinzufügen von //TCPSocket 3310 // | 
              
                    |  | 86 | + | 
              
                    |  | 87 | +{{lightbox image="en_clamd.conf.png"/}} | 
              
                    |  | 88 | + | 
              
                    |  | 89 | +; //ClamAV//-Daemon root Rechte geben | 
              
                    |  | 90 | +: dafür muss in dieser Datei der Eintrag //User clamav// in //User root// geändert werden. | 
              
                    |  | 91 | + | 
              
                    |  | 92 | +Nun kann mit //Strg + X// gespeichert und beendet werden. Mit //Y// und der Enter-Taste bestätigen. | 
              
                    |  | 93 | + | 
              
                    |  | 94 | +=== Starten der //ClamAV//-Daemon Service === | 
              
                    |  | 95 | + | 
              
                    |  | 96 | +Nun kann der Service gestartet werden. | 
              
                    |  | 97 | + | 
              
                    |  | 98 | +: Starten des //ClamAV//-Daemon Service: | 
              
                    |  | 99 | +; {{code language="shell"}} sudo systemctl start clamav-daemon.service {{/code}} | 
              
                    |  | 100 | + | 
              
                    |  | 101 | +=== Prüfen der Verfügbarkeit des Service === | 
              
                    |  | 102 | + | 
              
                    |  | 103 | +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. | 
              
                    |  | 104 | + | 
              
                    |  | 105 | +; Mithilfe von //netstat// kann der TCP Socket vom //ClamAV//-Daemon Service untersucht werden. | 
              
                    |  | 106 | +; {{code language="shell"}} sudo netstat -anp | grep -E "(clam)" {{/code}} | 
              
                    |  | 107 | + | 
              
                    |  | 108 | +{{lightbox image="de_tcp_test.png"/}} | 
              
                    |  | 109 | + | 
              
                    |  | 110 | +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. | 
              
                    |  | 111 | + | 
              
                    |  | 112 | +== Beispielkonfiguration == | 
              
                    |  | 113 | + | 
              
                    |  | 114 | +Ein beispielhafte Konfiguration mit den oben genannten Standardwerten: | 
              
                    |  | 115 | + | 
              
                    |  | 116 | +{{lightbox image="de_plugin.png"/}} | 
              
                    |  | 117 | + | 
              
                    |  | 118 | +== Verwendung == | 
              
                    |  | 119 | + | 
              
                    |  | 120 | +Sobald eine Virensignatur erkannt wurde, ist folgende Meldung zu sehen: | 
              
                    |  | 121 | + | 
              
                    |  | 122 | +{{lightbox image="de_virus_found.png"/}} | 
              
                    |  | 123 | + | 
              
                    |  | 124 | +=== Testdatei === | 
              
                    |  | 125 | + | 
              
                    |  | 126 | +Eine gängige Methode zur Überprüfung von Virenscannern ist die //eicar.com// Datei. | 
              
                    |  | 127 | +An beliebiger Stelle kann diese Tastdatei hochgeladen werden und nach erfolgreicher Konfiguration ist die oben dargestellte Meldung zu sehen. | 
              
                    |  | 128 | + | 
              
                    |  | 129 | +; [[**Wikipedia**>>https://de.wikipedia.org/wiki/EICAR-Testdatei]] | 
              
                    |  | 130 | +; [[**Download**>>https://www.eicar.org/download-anti-malware-testfile/]] | 
              
                    |  | 131 | + | 
              
                    |  | 132 | +=== Logging === | 
              
                    |  | 133 | + | 
              
                    |  | 134 | +//ClamAV// erstellt logs, welche unter // /var/log/clamav/clamav.log // zu finden sind. | 
              
                    |  | 135 | + | 
              
                    |  | 136 | +: Nach dem hochladen der //eicar.com// Testdatei ist zum Beispiel folgender Eintrag in //clamav.log //zu sehen: | 
              
                    |  | 137 | +; {{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}} | 
              
                    |  | 138 | + | 
              
                    |  | 139 | +{{formcycle/}} logs sind hierfür unter // /formcycle-data/formcycle7/logs zu finden.// | 
              
                    |  | 140 | + | 
              
                    |  | 141 | +: Nach dem hochladen der //eicar.com// Testdatei ist zum Beispiel folgender Eintrag in //formcycle-errors-log //zu sehen: | 
              
                    |  | 142 | +; {{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}} | 
              
                    |  | 143 | +; {{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}} | 
              
                    |  | 144 | + | 
              
                    |  | 145 | +== Versionshistorie == | 
              
                    |  | 146 | + | 
              
                    |  | 147 | +=== Version 1.0.5 | 
              
                    |  | 148 | + | 
              
                    |  | 149 | +* Verbesserte Fehlermeldung im Log, wenn Clam-AV nicht angesprochen werden konnte | 
              
                    |  | 150 | + | 
              
                    |  | 151 | +=== Version 1.0.4 | 
              
                    |  | 152 | + | 
              
                    |  | 153 | +* Fix: Ein Fehler beim Virenscan auf dem Frontend-Server wurde behoben. | 
              
                    |  | 154 | + | 
              
                    |  | 155 | +=== Version 1.0.3 | 
              
                    |  | 156 | + | 
              
                    |  | 157 | +* 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. | 
              
                    |  | 158 | + | 
              
                    |  | 159 | +=== Version 1.0.2 | 
              
                    |  | 160 | + | 
              
                    |  | 161 | +* Entfernen: Eigenschaft für Pfad-Scanning, nur noch InputStream | 
              
                    |  | 162 | + | 
              
                    |  | 163 | +=== Version 1.0.1 | 
              
                    |  | 164 | + | 
              
                    |  | 165 | +* Fix: Überspringen der Überprüfung, wenn das Betriebssystem nicht UNIX ist, anstatt die Datei als Virus zu erkennen | 
              
                    |  | 166 | + | 
              
                    |  | 167 | +=== Version 1.0.0 | 
              
                    |  | 168 | + | 
              
                    |  | 169 | +* Initialer Release |