Methode für die Sicherheitseinstellungen des Tomcat-Servers

Methode für die Sicherheitseinstellungen des Tomcat-Servers

Tomcat ist ein HTTP-Server, der die offizielle Referenzimplementierung der weit verbreiteten Servlet- und JavaServer Page (JSP)-Technologien darstellt, die von Sun im Rahmen des Java Community Process entwickelt wurden. Zum Erstellen von HTTP-Serveranwendungen werden Servlet- und JSP-Technologien verwendet. Allerdings wurden der Servlet-Technologie viele Funktionen hinzugefügt (einschließlich Zugriffssicherheit, Sitzungsverwaltung und Thread-Steuerung). Die JSP-Technologie bietet eine einfache Möglichkeit, dynamisch generierte HTML-Seiten zu verarbeiten. Diese HTML-Seiten werden zur schnellen Ausführungszeit direkt in Servlets kompiliert. Zusätzlich zu den beiden oben genannten Technologien zur Gewährleistung der Sicherheit können Sie auch Tomcat-Parameter konfigurieren, um die Sicherheit zu erhöhen.

Sicherheitseinstellungen:

1. Löschen Sie alle Dateien im Webapps-Verzeichnis und deaktivieren Sie die Tomcat-Verwaltungsschnittstelle

rm -rf /usr/local/tomcat/apache-tomcat-9.0.1/webapps/*

2. Kommentieren oder löschen Sie alle Benutzerberechtigungen in der Datei tomcat-users.xml:

3. Versionsinformationen ausblenden und conf/server.xml ändern


3. Benutzerfragen:

nginx und httpd verwenden den Root-Benutzer, um mit der Bewachung von Port 80 zu beginnen, und der untergeordnete Prozess/Thread wechselt über die Funktionen setuid() und setgid() zum normalen Benutzer. Das heißt, der Eigentümer des übergeordneten Prozesses ist der Root-Benutzer, und der Eigentümer des untergeordneten Prozesses und des Multithreads ist ein Nicht-Root-Benutzer. Dieser Benutzer hat keine Shell und kann sich nicht über SSH und die Konsole beim System anmelden.
Die JVM von Java ist systemunabhängig und basiert auf dem Betriebssystem. Unabhängig davon, welcher Benutzer zum Starten von Tomcat verwendet wird, erbt Tomcat die Berechtigungen des Eigentümers.
Dies stellt ein Problem dar. Auf Linux-Systemen kann nur Root Ports kleiner als 1024 verwenden, weshalb der Standardport für Tomcat 8080 ist. Wenn Sie Port 80 verwenden möchten, können Sie Tomcat nur als Root starten. Dies wirft viele Sicherheitsprobleme auf.

Erstellen Sie einen Benutzer, der nur zum Starten von Tomcat verwendet werden kann:

groupadd -g 80 Tomcat
adduser -o --home /tomcat --shell /sbin/nologin --uid 80 --gid 80 -c "Webserver" tomcat
chown tomcat:tomcat -R /usr/local/tomcat/apache-tomcat-9.0.1/*
su - tomcat -c "/usr/local/tomcat/apache-tomcat-9.0.1/bin/startup.sh"

Erstellen Sie eine Portzuordnung und rufen Sie Port 8080 auf, wenn Sie auf Port 80 zugreifen

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --zu-Port 8080

Weiterleitung abbrechen:

iptables -t nat -D PREROUTING -p tcp --dport 80 -j REDIRECT --zu-Port 8080

4. Deaktivieren Sie die automatische Kriegsbereitstellung

vim conf/server.xml

5. Blenden Sie die Versionsinformationen aus, die in 404 angezeigt werden:

Entpacken Sie catalina.jar in lib, jar xf catalina.jar

vim /usr/local/tomcat/apache-tomcat-9.0.1/lib/org/apache/catalina/util/ServerInfo.properties


6. Ändern Sie den Befehl „shutdown tomcat“

Der Verwaltungsport, der die Tomcat-Instanz direkt herunterfahren kann, ist in server.xml definiert. Nachdem wir über Telnet eine Verbindung zum Port hergestellt haben, können wir SHUTDOWN eingeben (dies ist der Standardbefehl zum Herunterfahren), um die Tomcat-Instanz herunterzufahren (beachten Sie, dass der Prozess weiterhin vorhanden ist, obwohl die Instanz zu diesem Zeitpunkt heruntergefahren ist). Da das Schließen der Ports von Tomcat standardmäßig erfolgt, sind die Anweisungen sehr einfach. Der Standardport ist 8005 und der Befehl lautet SHUTDOWN. Der Schließbefehl muss geändert werden, um etwas komplizierter zu sein.


Oder deaktivieren Sie Port 8005

<Server-Port="-1" shutdown="HERUNTERFAHREN">

7. Trennen Sie Tomcat- und Projektbenutzer

Um zu verhindern, dass Tomcat in das Web-Shell-Programm implantiert wird, können Sie die Projektdatei ändern. Daher müssen wir Tomcat vom Projektbesitzer trennen, sodass er selbst im Falle eines Hacks keine Projektdateien erstellen und bearbeiten kann.

8. Fügen Sie die folgende Konfiguration in conf/web.xml hinzu

9. Benutzerdefinierte Fehlerseiten

web.xml befindet sich unter einer bestimmten Anwendung und sollte den 404-Fehler dieser Anwendung verarbeiten. http://localhost/ greift jedoch auf Tomcats eigene Anwendung zu, daher sollte die web.xml-Konfiguration in der Anwendung unter webapp/Root/ konfiguriert werden.
Die Tomcat-Anwendung befindet sich im Stammverzeichnis. Ersetzen Sie sie einfach durch Ihre eigene.
Fügen Sie /webapps/ROOT/WEB-INF/web.xml hinzu

Erstellen Sie die Datei error.jsp im Verzeichnis webapps

<%@ Seite contentType="text/html; charset=UTF-8" %>
<%@ page import="java.io.*" %>
<%@ page import="java.util.*" %>
<html>
<Kopfzeile>
<title>404-Seite</title>
<Text>
<vor>
<%
  Aufzählung<String> attributeNames = request.getAttributeNames();
  während (attributeNames.hasMoreElements())
  {
    Zeichenfolge Attributname = Attributnamen.nächstesElement();
    Objektattribut = Anfrage.getAttribute(Attributname);
  out.println("request.attribute['" + attributeName + "'] = " + attribute);
  }
%>
</pre>

Datei „exception.jsp“

<%@ Seite contentType="text/html; charset=UTF-8" isErrorPage="true" %>
<%@ page import="java.io.*" %>
<html>
<Kopfzeile>
<title>Ausnahmeseite</title>
<Text>
<hr/>
<vor>
<%
response.getWriter().println("Ausnahme: " + Ausnahme);

 wenn (Ausnahme != null)
{
  Antwort.getWriter().println("<pre>");
  Ausnahme.printStackTrace(response.getWriter());
  Antwort.getWriter().println("</pre>");
}

 Antworten
e.getWriter().println("<hr/>");
%>

Testen Sie die benutzerdefinierte Fehlerseite im Browser:


Definieren Sie ein Sitzungstimeout und verhindern Sie die Verzeichnisauflistung

Das ist alles für diesen Artikel. Ich hoffe, er kann Ihnen helfen.

Das könnte Sie auch interessieren:
  • Tomcat-Sicherheitseinstellungen Win2003 Tomcat-Berechtigungsbeschränkungen
  • Sicherheitseinstellungen für den Tomcat-Server
  • Tomcat-Sicherheitsspezifikationen (Tomcat-Sicherheitsverstärkung und -spezifikationen)
  • Detaillierte Erläuterung der Tomcat-Sicherheitskonfiguration und Leistungsoptimierung
  • Websicherheit - Tomcat deaktiviert WebDAV oder verbietet unnötige HTTP-Methoden

<<:  Implementierung von vite+vue3.0+ts+element-plus zum schnellen Erstellen eines Projekts

>>:  Erklärung der CAST- und CONVERT-Funktionen zur Typkonvertierung in MySQL-Datenbanken

Artikel empfehlen

So konfigurieren Sie ein Jupyter-Notebook im Docker-Container

Das Jupyter-Notebook wird unter dem Docker-Contai...

jQuery erzielt den Shutter-Effekt (mithilfe der Li-Positionierung)

In diesem Artikel wird der spezifische Code von j...

JavaScript-Entwurfsmuster, Befehlsmuster

Das Befehlsmuster ist ein Verhaltensentwurfsmuste...

Grundlegendes Verständnis und Verwendung der HTML-Auswahloption

Detaillierte Erklärung von HTML (Option auswählen)...

Ausführliche Erläuterung der Stilfunktion in Vue3-Einzeldateikomponenten

Inhaltsverzeichnis Stil mit Gültigkeitsbereich St...

Diagramm des Prozesses zur Implementierung eines Richtungsproxys durch Nginx

Dieser Artikel stellt hauptsächlich den Prozess d...

Was tun, wenn Sie Ihr MySQL-Passwort vergessen?

Zweimal Ihr MySQL-Passwort vergessen? Zuerst habe...

Tiefgreifendes Verständnis langer MySQL-Transaktionen

Vorwort: Dieser Artikel stellt hauptsächlich den ...

So installieren Sie Oracle auf Windows Server 2016

1. Installieren Sie Oracle. Im Internet gibt es z...

So stellen Sie Oracle mit Docker auf dem Mac bereit

So stellen Sie Oracle mit Docker auf dem Mac bere...