| ... | ... | @@ -8,18 +8,27 @@ | 
              
                    | 8 | 8 |  | 
              
                    | 9 | 9 | {{content/}} | 
              
                    | 10 | 10 |  | 
              
                    | 11 |  | -{{figure image="de_plugin.png" width="600"}} | 
              
                    | 12 |  | -  Es muss ein TCP-Verbindung eingerichtet werden, um den ClamAV-Daemon Service zum scannen der hochgeladenen Dateien zu verwenden. | 
              
                    | 13 |  | -{{/figure}} | 
              
                    |  | 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. | 
              
                    | 14 | 14 |  | 
              
                    | 15 |  | - Überdas Plugin können hochgeladene Dateien auf Viren geprüft werden. Dazu wird dieses Plugin als aktiviertesSystem-Plugin benötigt sowie ein laufender ClamAV-Daemon Service, der über TCP erreicht werden kann. | 
              
                    |  | 13 | +== Funktionalität == | 
              
                    | 16 | 16 |  | 
              
                    | 17 |  | -Nachdem dieses Plugin installiert wurde, muss es konfiguriert werden. Die Konfiguration besteht daraus, dass angegeben wird, auf welche //host:port// Kombination zugegriffen werden soll. Außerdem können die Daten direkt übertragen werden oder es wird der Dateipfad übertragen. | 
              
                    |  | 15 | +; Sofortiger Virenscan | 
              
                    |  | 16 | +: Jede Datei wird direkt nach Ihrem Upload gescannt. | 
              
                    | 18 | 18 |  | 
              
                    | 19 |  | - ==Konfiguration== | 
              
                    |  | 18 | +Der verwendete //ClamAV//-Daemon Service kann weder durch dieses Plugin konfiguriert noch gestartet werden. | 
              
                    | 20 | 20 |  | 
              
                    | 21 |  | - ClamAVist dafür gedacht, auf Linux basierten Servern zu laufen. Deswegen kann eine anderweitige Unterstützungunserseits nicht garantiert werden. | 
              
                    |  | 20 | +== Installation == | 
              
                    | 22 | 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 | + | 
              
                    |  | 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 | + | 
              
                    | 23 | 23 | {{figure image="de_error.png" width="400"}} | 
              
                    | 24 | 24 | Falls keine Verbindung zu dem angegeben Host aufgebaut werden kann, wird diese Meldung ausgegeben. | 
              
                    | 25 | 25 | {{/figure}} | 
                      
        | ... | ... | @@ -27,37 +27,122 @@ | 
              
                    | 27 | 27 | Folgende Konfigurationsparameter gibt es: | 
              
                    | 28 | 28 |  | 
              
                    | 29 | 29 | ; host (Erforderlich) | 
              
                    | 30 |  | -: Host-Nameoder IP-Adresse desServers auf dem ClamAV-Daemonläuft. Der Standard-Host ist //127.0.0.1//,genaudannwennClamAV auf dem gleichen Server wie {{formcycle/}} läuft. | 
              
                    |  | 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. | 
              
                    | 31 | 31 | ; port (Erforderlich) | 
              
                    | 32 |  | -: Der Standard Port von ClamAV-Daemon ist //3310//. Falls der Port abweichen sollte, so muss dieser hier angepasst werden. | 
              
                    | 33 |  | -; file-source | 
              
                    | 34 |  | -: 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. | 
              
                    |  | 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 | 
              
                    | 35 | 35 |  | 
              
                    | 36 |  | -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. | 
              
                    |  | 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}} | 
              
                    | 37 | 37 |  | 
              
                    | 38 |  | -== ClamAV Einstellungen == | 
              
                    |  | 47 | +== Konfiguration //ClamAV// == | 
              
                    | 39 | 39 |  | 
              
                    | 40 |  | -Im folgenden Abschnitt wird auf wichtigeKonfigurationsschrittevon ClamAV-Daemoneingegangen. Unser empfohlenes Szenario ist {{formcycle/}} und den ClamAV-Daemon Service auf dem selben Server zu installieren. | 
              
                    |  | 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. | 
              
                    | 41 | 41 |  | 
              
                    | 42 |  | - Dadas eigentliche Virusscanning losgelöst von {{formcycle/}} stattfindet, sollte auf eineaktulle Virensignatur-Datenbank geachtet werden via //freshclam//. | 
              
                    |  | 51 | +=== Installation === | 
              
                    | 43 | 43 |  | 
              
                    | 44 |  | - DiesesPluginüberträgtdie zuuntersuchendenElementeviaTCP, wasstandardmäßig in ClamAV-Daemondeaktiviertist. Zur Aktivierung muss die Konfigurationsdatei unter: // /etc/clamav/clamd.conf// bearbeitet werden. | 
              
                    |  | 53 | +Um //ClamAV// auf einem Server zu installieren, sollten folgende Befehle auf dem Server eingegeben werden. | 
              
                    | 45 | 45 |  | 
              
                    | 46 |  | - FolgendeParameter müssender Dateihinzugefügtwerden: | 
              
                    |  | 55 | +//ClamAV// ist das Programm, welches Dateien auf Viren scannen kann und wird für die Verwendung von //ClamAV//-Daemon benötigt. | 
              
                    | 47 | 47 |  | 
              
                    | 48 |  | -; TCPAddr (Erforderlich) | 
              
                    | 49 |  | -: Soll hinzugefügt und mit dem Wert //127.0.0.1// angegeben werden. | 
              
                    | 50 |  | -; TCPSocket (Erforderlich) | 
              
                    | 51 |  | -: Soll hinzugefügt und mit dem Wert //3310// angegeben werden oder abweichend, falls der Port anderweitig genutzt werden soll. | 
              
                    | 52 |  | -; User | 
              
                    | 53 |  | -: Ist standardmäßig //clamav// und muss zu //root// geändert werden, um dem ClamAV-Daemon Service root Rechte zu geben. | 
              
                    |  | 57 | +; Aktualisieren der package list: | 
              
                    |  | 58 | +; {{code language="shell"}} sudo apt-get update {{/code}} | 
              
                    | 54 | 54 |  | 
              
                    | 55 |  | -{{figure image="de_tcp_test.png"}} | 
              
                    | 56 |  | -  Mithilfe von //netstat// kann der TCP Socket vom ClamAV-Daemon Service untersucht werden. | 
              
                    | 57 |  | -{{/figure}} | 
              
                    |  | 60 | +; Installiere //ClamAV// und //ClamAV//-Daemon: | 
              
                    |  | 61 | +; {{code language="shell"}} sudo apt-get install clamav clamav-daemon -y {{/code}} | 
              
                    | 58 | 58 |  | 
              
                    | 59 |  | - Damit dieses Plugin denClamAV-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: | 
              
                    |  | 63 | +=== Aktualisieren der Virensignatur-Datenbank === | 
              
                    | 60 | 60 |  | 
              
                    | 61 |  | -{{code language="shell"}} | 
              
                    | 62 |  | -sudo netstat -anp | grep -E "(clam)" | 
              
                    | 63 |  | -{{/code}} | 
              
                    |  | 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.2** | 
              
                    |  | 148 | + | 
              
                    |  | 149 | +* Entfernen: Eigenschaft für Pfad-Scanning, nur noch InputStream | 
              
                    |  | 150 | + | 
              
                    |  | 151 | +**Version 1.0.1** | 
              
                    |  | 152 | + | 
              
                    |  | 153 | +* Fix: Überspringen der Überprüfung, wenn das Betriebssystem nicht UNIX ist, anstatt die Datei als Virus zu erkennen | 
              
                    |  | 154 | + | 
              
                    |  | 155 | +**Version 1.0.0** | 
              
                    |  | 156 | + | 
              
                    |  | 157 | +* Initialer Release |