| ... | ... | @@ -1,71 +1,56 @@ | 
              
                    | 1 | 1 | {{content/}} | 
              
                    | 2 | 2 |  | 
              
                    | 3 |  | -F orthe highest possiblesecurity,itisrecommendedto hardenthe Tomcat server.Thisprocedurehidesor removesall unnecessaryaccessorinformationto the outsideasfar as possible.Forexample,informationaboutthespecificversionof the servercan alreadyprovide a potentialattackerwith informationabout securitygaps known inthisversion.Apache itself offers anoverview of securityaspects to be considered[[on theirwebsite>>https://tomcat.apache.org/tomcat-9.0-doc/security-howto.html]].The following is a summary of the most important sub-issues. | 
              
                    |  | 3 | +Für eine höchstmögliche Sicheheit ist es empfohlen den Tomcat-Server zu härten. Bei diesem Verfahren werden alle unnötigen Zugriffe oder Informationen nach außen so weit wie möglich verborgen bzw. entfernt. So kann zum Beispiel bereits die Information über die konkrete Version des Servers einem protentiellen Angreifer Informationen über in dieser Version bekannte Sicherheits-Lücken liefern. Generell gelten jedoch folgende Empfehlungen: | 
              
                    | 4 | 4 |  | 
              
                    | 5 |  | -== Reg ularupdatingof the server == | 
              
                    |  | 5 | +== Regelmäßige Aktualisierung des Servers == | 
              
                    | 6 | 6 |  | 
              
                    | 7 |  | -Reg ularupdatingof the serverensures thatany securitygaps foundwithinthe servercan be closed.Itshould alwaysbe inthe IT'sinterestto keep both Tomcat andall thesystems involvedas up-to-dateaspossible,bothatthelevel of theapplicationand theoperatingsystem. | 
              
                    |  | 7 | +Ein Regelmäßges Aktualisieren des Servers sorgt dafür dass ggf. gefundene Sicheheitslücken innerhalb des Servers geschlossen werden können. Es sollte immer im Sinne der IT sein sowohl den Tomcat als auch alle beteiligten Server sowohl auf Ebene der Anwendung als auch des Betriebssystems möglichst aktuell zu sein. | 
              
                    | 8 | 8 |  | 
              
                    | 9 |  | -== Removing the default applications == | 
              
                    | 10 | 10 |  | 
              
                    | 11 |  | - Dependingon the installation you choose, the Tomcat server may ship with several standard applications. These are examples, documentationand managementtools. If these are not used, it is recommended to remove them. It is sufficient to delete the corresponding applications from the //webapps// directory of the Tomcat installation. Otherwise, these applications may offer their own attack possibilities or unnecessarily disclose information about the server used. By default, these are the following directories: | 
              
                    |  | 10 | +== Entfernen der Standard-Anwendungen == | 
              
                    | 12 | 12 |  | 
              
                    | 13 |  | -* **docs**... Documentation of the server | 
              
                    | 14 |  | -* **examples**... Sample applications | 
              
                    | 15 |  | -* **host-manager**... management interface for the administration of virtual hosts | 
              
                    | 16 |  | -* **manager**... Management interface for managing the installed applications | 
              
                    | 17 |  | -* **ROOT**... root directory with a default welcome page | 
              
                    |  | 12 | +Je nach gewählter Installation wird der Tomcat-Server mit ggf. mehreren Standard-Anwendungen ausgeliefert. Hierbei handelt es sich um Beispiele, Dokumentationen und den Server-Managern. Sollten diese nicht verwendet werden, ist es empfohlen diese zu entfernen. Hierbei genügt es die entsprechend nicht verwendeten Anwendungen aus //webapps//-Verzeichnis der Tomcat-Installtion zu löschen. Diese Anwendungen bieten sonst ggf. selbst eigene Angriffsmöglichkeiten bzw. geben auch unnötg Informationen über den verwendeten Server preis. Standardmäßig handelt es sich hierbei um folgende Verzeichnisse: | 
              
                    | 18 | 18 |  | 
              
                    | 19 |  | -All these applications are not necessary for the operation of {{formcycle/}} and can therefore usually be removed without any problems. | 
              
                    | 20 | 20 |  | 
              
                    | 21 |  | -== Removing unnecessary server information from the response headers == | 
              
                    |  | 15 | +* **docs**... Dokumentation des Servers | 
              
                    |  | 16 | +* **examples**... Beispiele | 
              
                    |  | 17 | +* **host-manager**... Verwaltungsoberfläche für das Administieren von Virtuellen Hosts | 
              
                    |  | 18 | +* **manager**... Verwaltungsoberfläche für das Verwalten der installieren Anwendungen | 
              
                    |  | 19 | +* **ROOT**... Root-Verzeichnis mit einer Standard-Willkommensseite | 
              
                    | 22 | 22 |  | 
              
                    | 23 |  | - Beforethe required Tomcat version 9, theHTTP header //Server// was transmitted by default with the informationof the Tomcat version used for each HTTP response.This is no longer the case bydefault, but should also be ensuredforall other servers involved (load balancer, firewall, etc.). If this header is neverthelesstransmitted by Tomcat, the correspondingvalue can be defined withinthe connector of the//server.xml// (///Path/To/Tomcat/conf/web.xml//). An override withan empty value would look like thefollowing example: | 
              
                    |  | 21 | +Alls diese Anwendungen sind für den Betrieb von FORMCYCLE nicht nötig und können demnach meißt entfernt werden. | 
              
                    | 24 | 24 |  | 
              
                    |  | 23 | +== Entfernen unnötiger Server-Informationen aus den Antwort-Headern == | 
              
                    |  | 24 | + | 
              
                    |  | 25 | +Vor der vorausgesetzten Tomcat-Version 9 wurde bei standardmäßig bei jedem HTTP-Response ein Header //Server// mit der Information der verwendeten Tomcat-Version übertragen. Dies ist standardmäßig inzwischen nicht mehr der Fall und sollte aber auch bei allen anderen involvierten Servern (Load-Balancer, Firewall o.ä.) sichergestellt werden. Sollte dieser Header dennoch vom Tomcat übermittelt werden, kann der entsprechende Wert innerhalb des Connectors der //server.xml// (///Pfad/Zum/Tomcat/conf/web.xml//) definiert werden. Eine Überschreibung mit einem leeren Wert würde hierbei beispielhaft wie folt aussehen: | 
              
                    |  | 26 | + | 
              
                    | 25 | 25 | {{code}} | 
              
                    | 26 |  | -<Connector... Server=" "> | 
              
                    |  | 28 | +<Connector ... Server=" "> | 
              
                    | 27 | 27 | ... | 
              
                    | 28 | 28 | </Connector> | 
              
                    | 29 | 29 | {{/code}} | 
              
                    | 30 | 30 |  | 
              
                    | 31 |  | - Thereis alsothe//serverRemoveAppProvidedValues//attributewhichcanbeusedto preventthisheaderfrombeing set by applicationsas well.An exampleconfigurationlooks like this: | 
              
                    |  | 33 | +Ebenso gibt es das Attribut //serverRemoveAppProvidedValues// welches benutzt werden kann um zu verhindern dass dieser Header durch Anwendungen gesetzt werden kann. Eine beispielhafte Konfiguration sieht hierbei wie folgt aus: | 
              
                    | 32 | 32 |  | 
              
                    | 33 | 33 | {{code}} | 
              
                    | 34 |  | -<Connector... serverRemoveAppProvidedValues="true"> | 
              
                    |  | 36 | +<Connector ... serverRemoveAppProvidedValues="true"> | 
              
                    | 35 | 35 | ... | 
              
                    | 36 | 36 | </Connector> | 
              
                    | 37 | 37 | {{/code}} | 
              
                    | 38 | 38 |  | 
              
                    | 39 |  | -{{info}} | 
              
                    | 40 |  | -After an adjustment the restart of the server is necessary. | 
              
                    | 41 |  | -{{/info}} | 
              
                    |  | 41 | +Nach einer Anpassung ist der Neustart des Servers notwendig. | 
              
                    | 42 | 42 |  | 
              
                    | 43 |  | -== RemovingTomcat versionfromdefault error pages == | 
              
                    |  | 43 | +== Entfernen der Tomcat-Version aus Standard-Fehlerseiten == | 
              
                    | 44 | 44 |  | 
              
                    | 45 |  | - Bydefault,the Tomcat server error pagesunnecessarilyreveal information inthe formof the installedversionand error details.Toprevent thisitispossibleto disable these sections of theerrorpages. For this purpose the configurationof the so-called //ErrorReportValve// canbe entered or adaptedinthe //server.xml// (///Path/Tomcat/conf/server.xml//) underthe node //Host//.If,for example,neither the server information nordetailsoftheactual errorare delivered, thefollowingadaptationis recommended: | 
              
                    |  | 45 | +Standardmäßig werden bei den Tomcat-Fehlerseiten unnötig Server-Informationen in Form der installierten Version preisgegeben. Um dies zu verhindern ist es möglich diesen Abschnitt der Fehlerseiten zu deaktivieren. Hierfür kann in der //server.xml// (///Pfad/Zum/Tomcat/conf/server.xml//) unter dem Knoten //Host// die Konfiguration des so genannten ErrorReportValve eingetragen bzw. angepasst werden. Sollte zum Beispiel weder die Server-Informationen noch Details zum eigentlichen Fehler ausgeliefert werden empfiehlt sich folgender Anpassun: | 
              
                    | 46 | 46 |  | 
              
                    | 47 | 47 | {{code}} | 
              
                    | 48 |  | -<Host...> | 
              
                    | 49 |  | -  <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" ></Valve> | 
              
                    |  | 48 | +<Host ...> | 
              
                    |  | 49 | +  <Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" /> | 
              
                    | 50 | 50 | </Host> | 
              
                    | 51 | 51 | {{/code}} | 
              
                    | 52 | 52 |  | 
              
                    | 53 |  | -{{info}} | 
              
                    | 54 |  | -After an adjustment the restart of the server is necessary. | 
              
                    | 55 |  | -{{/info}} | 
              
                    |  | 53 | +Nach einer Anpassung ist der Neustart des Servers notwendig. | 
              
                    | 56 | 56 |  | 
              
                    | 57 |  | -== Use alternative errorpages == | 
              
                    |  | 55 | +== Verwenden alternativer Fehlerseiten == | 
              
                    | 58 | 58 |  | 
              
                    | 59 |  | -Eine weitere Erhöhung der Sicherheit bietet die Möglichkeit die Standard-Fehlerseiten des Servers komplett zu ändern. Hierfür können an den //ErrorReportValve//-Eintrag Attribute für einzelne HTTP-Fehlercodes und/oder eine Seite für alle nicht definierten Fehler angegeben werden. Hierfür wird das Attribute //errorCode.nnn// verwendet, wobei //nnn// dem HTTP-Fehlercode entspricht. wird dieser mit 0 verwendet, wird die angegebene Seite für alle nicht definierten Fehler benutzt. Ein Beispiel bei dem der HTTP-Status 404 (Ressource nicht gefunden) auf die Seite //404.html// und alle anderen Fehler auf //error.html// geleitet werden sieht hierbei wie folgt aus: | 
              
                    | 60 |  | - | 
              
                    | 61 |  | -{{code}} | 
              
                    | 62 |  | -<Host...> | 
              
                    | 63 |  | -  <Valve className="org.apache.catalina.valves.ErrorReportValve" errorCode.404="webapps/404.html" errorCode.0="webapps/error.html"></Valve> | 
              
                    | 64 |  | -</Host> | 
              
                    | 65 |  | -{{/code}} | 
              
                    | 66 |  | - | 
              
                    | 67 |  | -{{info}} | 
              
                    | 68 |  | -After an adjustment the restart of the server is necessary. | 
              
                    | 69 |  | -{{/info}} | 
              
                    | 70 |  | - | 
              
                    | 71 |  | -Zusätzlich bzw. alternativ können die Standardfehler meist auch durch zwischengeschaltete Server wie z.B. Load-Balancer oder Proxies behandelt werden. Dies ermöglicht miest ein optisch standardisierteres Vorgehen und kann ebenso zusätzlich zur Anpassung innerhalb des Tomcats zum Einsatz kommen. |