Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Apache Tomcat Härtungs- und Sicherheitshandbuch

Kater Sicherheit 1
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

Eine praktische Anleitung zum Härten und Sichern von Apache Tomcat Server mit den Best Practices.

Tomcat ist einer der beliebtesten Servlet- und JSP-Container-Server. Es wird von einigen der folgenden stark frequentierten Websites verwendet:

  • LinkedIn.com
  • Dailymail.de
  • Comcast.net
  • Wallmart.com
  • Reuters.com
  • Meetup.com
  • Webs.com

Die folgende Grafik zeigt die Marktposition von Tomcat auf dem Java-Anwendungsserver.

Kater-Marktanteil
Quelle: Plumbr

Technisch gesehen können Sie Tomcat als Front-End-Server verwenden, um Standortanforderungen direkt zu bearbeiten. In einer Produktionsumgebung möchten Sie möglicherweise einige Webserver wie Apache und Nginx als Front-End verwenden, um die Anforderungen an Tomcat weiterzuleiten.

Die Verwendung eines Webservers zur Bearbeitung der Anforderungen ergibt Leistung und Sicherheitdienst Leistungen. Wenn Sie Apache HTTP als Front-End-Webserver verwenden, müssen Sie dies berücksichtigen das auch sichern.

Bei einer Standardkonfiguration von Tomcat werden möglicherweise vertrauliche Informationen angezeigt, wodurch sich der Hacker auf einen Angriff auf die Anwendung vorbereiten kann.

Die folgenden Tests wurden unter Tomcat 7.x, UNIX-Umgebung, durchgeführt.

Publikum

Dies ist für Middleware-Administratoren, Anwendungssupport, Systemanalysten oder alle Personen gedacht, die Tomcat Hardening and Security erlernen möchten.

Gute Kenntnisse von Tomcat & UNIX-Befehl ist obligatorisch.

Anmerkungen

Wir benötigen ein Tool, um HTTP-Header zur Überprüfung zu untersuchen. Es gibt zwei Möglichkeiten, dies zu tun.

Beim Testen Internetverbindung Anschließend können Sie die folgenden HTTP-Header-Tools verwenden, um die Implementierung zu überprüfen.

Und für eine Intranet-Anwendungkönnen Sie Google Chrome, Firefox-Entwicklertools verwenden.

Als Best Practice müssen Sie eine nehmen Sicherungskopie von jeder Datei, die Sie ändern möchten.

Wir werden den Tomcat-Installationsordner als aufrufen $ Tomcat in diesen Richtlinien.

Lassen Sie uns die Härtungs- und Sicherungsverfahren durchgehen.

Remove Server Banner

Das Entfernen des Server-Banners aus dem HTTP-Header ist eines der ersten Schritte zum Härten.

Wenn ein Server-Banner das von Ihnen verwendete Produkt und die verwendete Version anzeigt, führt dies zu einer Sicherheitslücke in Bezug auf Informationslecks.

Standardmäßig wird eine von Tomcat bereitgestellte Seite wie folgt angezeigt.

Tomcat-Server-Header

Lassen Sie uns die Produkt- und Versionsdetails im Server-Header ausblenden.

  • Gehen Sie zum Ordner $ tomcat / conf
  • Ändern Sie server.xml mit vi
  • Fügen Sie Folgendes hinzu Connector port
Server =” “

Ex: -

<Connector port="8080" protocol="HTTP/1.1" 
connectionTimeout="20000" 
Server =" "
redirectPort="8443" />
  • Speichern Sie die Datei und starten Sie den Tomcat neu. Wenn Sie jetzt auf eine Anwendung zugreifen, sollte ein leerer Wert für den Server-Header angezeigt werden.
Tomcat-entfernter-Server-Header

Starting Tomcat with a Security Manager

Security Manager schützt Sie vor einem nicht vertrauenswürdigen Applet, das in Ihrem Browser ausgeführt wird.

Das Ausführen von Tomcat mit einem Sicherheitsmanager ist besser als das Ausführen ohne einen. Tomcat verfügt über eine hervorragende Dokumentation zu Tomcat-Sicherheitsmanager.

Das Gute daran ist, dass Sie keine Konfigurationsdatei ändern müssen. Es ist nur die Art und Weise, wie Sie ausführen startup.sh Datei.

Alles was Sie tun müssen, ist Tomcat mit zu starten –security Argument.

[root@geekflare bin]# ./startup.sh -security
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /usr
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Using Security Manager
Tomcat started.
[root@geekflare bin]#

Enable SSL/TLS

Das Bereitstellen von Webanfragen über HTTPS ist wichtig, um Daten zwischen Client und Tomcat zu schützen. Um Ihre Webanwendung über HTTPS zugänglich zu machen, müssen Sie ein SSL-Zertifikat implementieren.

Angenommen, Sie haben bereits einen Keystore mit dem Zertifikat bereit, können Sie die folgende Zeile hinzufügen server.XML-Datei unter Connector port Abschnitt.

SSLEnabled="true" scheme="https" keystoreFile="ssl/bloggerflare.jks" keystorePass="chandan" clientAuth="false" sslProtocol="TLS"

Ändern Sie den Namen und das Kennwort der Keystore-Datei mit Ihrem.

Wenn Sie Hilfe beim Keystore- und CSR-Prozess benötigen, wenden Sie sich an dieser Leitfaden.

Enforce HTTPS

Dies gilt nur, wenn Sie SSL aktiviert haben. Wenn nicht, wird die Anwendung unterbrochen.

Sobald Sie SSL aktiviert haben, sollten Sie die Umleitung aller HTTP-Anforderungen an HTTPS erzwingen, um eine sichere Kommunikation zwischen dem Benutzer und dem Tomcat-Anwendungsserver zu gewährleisten.

  • Gehen Sie zum Ordner $ tomcat / conf
  • Ändern web.xml durch die Nutzung vi
  • Fügen Sie Folgendes hinzu </web-app> Syntax
<security-constraint> 
<web-resource-collection> 
<web-resource-name>Protected Context</web-resource-name> 
<url-pattern>/*</url-pattern>
</web-resource-collection> 
<user-data-constraint> 
<transport-guarantee>CONFIDENTIAL</transport-guarantee> 
</user-data-constraint> 
</security-constraint>
  • Speichern Sie die Datei und starten Sie den Tomcat neu

Es ist möglich, Webanwendungssitzungen und Cookies zu stehlen oder zu manipulieren, ohne ein sicheres Cookie zu haben. Es ist ein Flag, das in den Antwortheader eingefügt wird.

Dies erfolgt durch Hinzufügen unterhalb der Zeile in session-config Abschnitt der Datei web.xml

<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
</cookie-config>

Konfigurations-Screenshot:

tomcat-httponly

Speichern Sie die Datei und starten Sie Tomcat neu, um den HTTP-Antwortheader zu überprüfen.

Run Tomcat from non-privileged Account

Es ist gut, einen separaten nicht privilegierten Benutzer für Tomcat zu verwenden. Die Idee hier ist, andere Dienste zu schützen, die ausgeführt werden, falls ein Konto kompromittiert wird.

  • Erstellen Sie einen UNIX-Benutzer, beispielsweise Tomcat
useradd tomcat
  • Stoppen Sie den Tomcat, wenn er ausgeführt wird
  • Ändern Sie den Besitz von $ tomcat in Benutzer tomcat
chown -R tomcat:tomcat tomcat/

Starten Sie den Tomcat und stellen Sie sicher, dass er mit dem Tomcat-Benutzer ausgeführt wird

Remove default/unwanted Applications

Standardmäßig enthält Tomcat die folgenden Webanwendungen, die in einer Produktionsumgebung möglicherweise erforderlich sind oder nicht.

Sie können sie löschen, um sie sauber zu halten und bekannte Sicherheitsrisiken mit der Tomcat-Standardanwendung zu vermeiden.

  • ROOT - Standard-Begrüßungsseite
  • Docs - Tomcat-Dokumentation
  • Beispiele - JSP und Servlets zur Demonstration
  • Manager, Host-Manager - Tomcat-Administration

Sie sind im Ordner $ tomcat / webapps verfügbar

[root@geekflare webapps]# ls -lt
drwxr-xr-x 14 tomcat tomcat 4096 Sep 29 15:26 docs
drwxr-xr-x 7 tomcat tomcat 4096 Sep 29 15:26 examples
drwxr-xr-x 5 tomcat tomcat 4096 Sep 29 15:26 host-manager
drwxr-xr-x 5 tomcat tomcat 4096 Sep 29 15:26 manager
drwxr-xr-x 3 tomcat tomcat 4096 Sep 29 15:26 ROOT
[root@geekflare webapps]#

Change SHUTDOWN port and Command

Standardmäßig ist Tomcat so konfiguriert, dass es am 8005-Port heruntergefahren wird.

Wissen Sie, dass Sie die Tomcat-Instanz herunterfahren können, indem Sie ein Telnet an IP: port ausführen und den Befehl SHUTDOWN ausgeben?

Chandans # telnet localhost 8005
Trying ::1... telnet:
connect to address ::1:
Connection refused Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SHUTDOWN Connection closed by foreign host.
Chandans #

Gefährlich!

Sie sehen, eine Standardkonfiguration führt zu einem hohen Sicherheitsrisiko.

Es wird empfohlen, den Tomcat-Shutdown-Port und den Standardbefehl in etwas Unvorhersehbares zu ändern.

  • Ändern Sie Folgendes in server.xml
<Server port="8005" shutdown="SHUTDOWN">

8005 - Wechseln Sie zu einem anderen nicht verwendeten Port

SHUTDOWN - Wechseln Sie zu etwas Kompliziertem

ex-

<Server port="8867" shutdown="NOTGONNAGUESS">

Replace default 404, 403, 500 page

Wenn die Standardseite für nicht gefundene, verbotene Serverfehler vorhanden ist, werden Versionsdetails angezeigt.

Schauen wir uns die Standard-404-Seite an.

Tomcat-Standard-404-Seite

Um dies zu vermeiden, können Sie zunächst eine allgemeine Fehlerseite erstellen und web.xml so konfigurieren, dass auf eine allgemeine Fehlerseite umgeleitet wird.

  • Gehen Sie zu $ ​​tomcat / webapps / $ application
  • Erstellen Sie eine error.jsp-Datei mit vi Herausgeber
Fehlerseite Das ist ein Fehler!
  • Gehen Sie zum Ordner $ tomcat / conf
  • Fügen Sie Folgendes in die Datei web.xml ein. Stellen Sie sicher, dass Sie vorher hinzufügen </web-app> Syntax
404 /error.jsp 403 /error.jsp 500 /error.jsp
  • Starten Sie den Tomcat-Server neu, um ihn zu testen
Tomcat-Custom-Fehler

Viel besser!

Sie können dies für tun java.lang.Exception auch. Dies hilft dabei, Tomcat-Versionsinformationen nicht offenzulegen, wenn eine Java-Lang-Ausnahme vorliegt.

Fügen Sie einfach Folgendes hinzu web.xml und starten Sie den Tomcat-Server neu.

java.lang.Exception /error.jsp

Ich hoffe, die obige Anleitung gibt Ihnen eine Vorstellung davon, wie Sie Tomcat sichern können. Wenn Sie mehr über die Tomcat-Administration erfahren möchten, lesen Sie diese Informationen Online Kurs.
Erfahren Sie auch, wie man Konfigurieren Sie WAS so, dass es beim Herunterfahren nicht mehr nach dem Kennwort fragt .

Danke an unsere Sponsoren
Weitere großartige Lektüre zum Thema Sicherheit
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder