Systemhärtung
security.manager wird mit Voreinstellungen ausgeliefert, die eine schnelle und unkomplizierte Inbetriebnahme erlauben. Um die Sicherheit des Systems für den Einsatz in einer Produktivumgebung zu erhöhen, befolgen Sie die Anweisungen auf dieser Seite.
Als Administrator oder Verantwortlicher des Betriebs können Sie mit dieser Dokumentation die kritischsten Sicherheits-Einstellungen anpassen und das System für die Kommunikation über HTTPS vorbereiten.
Auf dieser Seite erfahren Sie außerdem, welche weiteren bewährten Maßnahmen empfohlen werden und welche über diese Dokumentation hinausreichenden Aspekte für die Sicherheit Ihres Betriebs von Interesse sein könnten.
Empfohlene Schritte zur Härtung
Dieser Abschnitt beschreibt die von uns empfohlenen Schritte zur Härtung Ihres Systems und unterscheidet zwischen den folgenden Prioritäten:
Priorität | Bedeutung |
---|---|
1 |
Empfohlene Anpassung. Gewährleistet ein Mindestmaß an Sicherheit. |
2 |
Optionale Anpassung. Erlaubt den Betrieb in speziellen Einsatzszenarien. |
- |
Keine Anpassung. Die Standard-Einstellung gewährt bereits die höchste Sicherheit. |
Wenn nicht anders angegeben, können alle in den folgenden Tabellen genannten Einstellungen in den application.properties
vorgenommen werden.
Falls eine der Eigenschaften mit einem Standardwert vorbelegt ist, kann dieser ebenfalls der Tabelle entnommen werden.
Für weitere Informationen zu den jeweiligen Einstellungen, lesen Sie das Kapitel Konfiguration.
Schutz gegen Manipulationen erhöhen
Mindern Sie das Risiko gegen Man-in-the-Middle-Angriffe, Cross-Site Request Forgery (CSRF) und andere Arten von Manipulationen, indem Sie die folgenden Schritte durchführen:
-
Etablieren Sie HTTPS als Voraussetzung für weitere Absicherungen:
-
Hintergrundinformationen liefert das Kapitel Ausgehende HTTPS-Verbindungen.
-
Richten Sie eine HTTPS-Verbindung unter Apache Tomcat ein, wie im Kapitel Nach der Installation beschrieben.
-
-
Verbessern Sie über die folgenden Einstellungen die grundlegende Sicherheit der Anwendung, indem Sie Cookies absichern, erlaubte Hostnamen definieren und HTTP-Header für sicherere Kommunikation einschalten.
- security.ssl.trustAny
-
Priorität
1
Standardwert
true
Empfohlener Wert
false
- security.sso.cookie.domain
-
Priorität
1
Empfohlener Wert
Name Ihrer Domain (wenn möglich, Subdomain wählen).
Beispielwert
.sub.domain.com
- security.sso.cookie.secure
-
Priorität
1
Standardwert
false
Empfohlener Wert
true
- security.sso.cookie.samesite
-
Priorität
1
Standardwert
false
Empfohlener Wert
true
- cors.allowed.origins
-
Priorität
2
Standardwert
http://www.arcgis.com,https://www.arcgis.com
Empfohlener Wert
Ihre komma-getrennte Liste von URLs
- cors.any.origins
-
Priorität
-
Standardwert
false
Empfohlener Wert
false
Zugriff auf abgesicherte Endpunkte einstellen
Es gibt offene Endpunkte (z.B. zur Validierung einer SSO-Session), die von außen zugegriffen werden können.
Mit Hilfe der folgenden Parameter können Hostnamen und IP Adressen für einen solchen Zugriff freigegeben werden (localhost
muss nicht angegeben werden):
- security.allowed.hostnames
-
Priorität
2
Empfohlener Wert
Liste von komma-getrennten Hostnamen
Beispielwert
hostA,hostB,hostC
- security.allowed.ipranges
-
Priorität
2
Empfohlener Wert
Liste von komma-getrennten IPv4 Bereichen.
Beispielwert
172.12.25.84,172.12.25.0/24,172.12.25.10-172.12.25.20
Schutz gegen Clickjacking erhöhen
Die folgende Eigenschaft steuert die erlaubten Quellen, die den security.manager als iframe einbetten dürfen. Die Liste ist standardmäßig leer. Iframes mit der selben Quellseite wie der security.manager können diesen immer einbetten. Durch das Blocken unerlaubter Quellseiten wird verhindert, dass fremde Quellen den in einem iframe eingebetteten security.manager mit eigenen Inhalten überlagern können und so Interaktionen auf die fremden Inhalte umleiten können (z.B. das Eingeben von Passwörten im vermeintlich richtigen Kennwort-Feld).
- security.embedding.allowed.origins
-
Priorität
2
Empfohlener Wert
Liste von komma-getrennten Quellen
Beispielwert
http://my-example.com:8080,http://demos.de
Schutz gegen Brute-Force Attacken erhöhen
Verhindern Sie mit den folgenden Einstellungen, dass Anmelde-Informationen mittels Brute-Force Attacken nach Außen gelangen und schalten Sie bei Bedarf die Protokollierung von Login-Versuchen ein.
Die Zahl maximal aufeinanderfolgender Fehlversuche pro Nutzername wird auf 3 bzw. pro IP-Adresse auf 10 gesetzt. Die Sperrung dauert 30 Minuten an.
- security.user.login.lock.username
-
Priorität
1
Standardwert
false
Empfohlener Wert
true
- security.user.login.log
-
Priorität
2
Standardwert
false
Empfohlener Wert
true
Schutz gegen Kennwortkompromittierung erhöhen
Eine starke Kennwort-Richtline kann die Sicherheit Ihres Systems erhöhen:
- security.user.userpwd.regexpr
-
Priorität
1
Standardwert
(\w|-){8,}
Buchstaben und Bindestrich min. Länge 8Empfohlener Wert
Regulärer Ausdruck für ein sichereres Kennwort:
^.*(?=.{10,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%&=]).*$
(Mindestens 10 Zeichen Länge, mindestens einen Klein- und einen Großbuchstaben, sowie eine Zahl und ein Sonderzeichen, erlaubte Sonderzeichen:@#$%^&=
) - security.password.history.check.count
-
Priorität
1
Standardwert
0
(keine Prüfung)Empfohlener Wert
6
- security.password.history.capacity
-
Priorität
1
Standardwert
0
Empfohlener Wert
Wählen Sie einen Wert, der gleich dem oder größer als der Wert
security.password.history.check.count
ist. - security.password.changePause
-
Priorität
1
Standardwerte
0s
Empfohlener Wert
5s
- security.user.userpwd.validate
-
Priorität
-
Standardwert
true
Empfohlener Wert
true
Sie können mittels
security.user.userpwd.validationkey.#
die Fehlernachrichten, die der Nutzer zur Kennwort-Validierung erhält, anpassen.
Außerdem können Sie für der Wiederherstellung des Kennworts strengere Vorgaben machen, falls Sie Kennwort-Wiederherstellung einschalten:
- usermgr.passwordrecovery.timeout
-
Priorität
-
Standardwert
1440
Empfohlener Wert
1440
- usermgr.passwordrecovery.enabled
-
Priorität
-
Standardwert
false
Empfohlener Wert
false
- usermgr.passwordrecovery.showstartpagelink
-
Priorität
-
Standardwert
false
Empfohlener Wert
false
Schutz gegen URL-Umleitungen erhöhen
security.manager nutzt u.a. URL Parameter, um beispielsweise nach dem Login einen Nutzer zurück zur ursprünglichen Seite zu leiten. Damit diese Umleitung nicht missbraucht werden kann, um den Nutzer zu einer gefährlichen Seite zu leiten, können Sie festlegen, welche Hosts und URLs für diese Art von Weiterleitung erlaubt werden sollen:
- security.login.redirect.trusted.hosts
-
Priorität
2
Standardwert
localhost
Empfohlener Wert
Liste von komma-getrennten Hostnamen
Beispielwert
hostA,hostB
- security.login.redirect.trusted.urls
-
Priorität
2
Standardwert
<administration.webapp>/**,<gateway.webapp>/**,<wss.webapp>/**
Empfohlener Wert
Liste von komma-getrennten URLs
- security.login.redirect.trusted.sameHost.sameContext
-
Priorität
-
Standardwert
false
Empfohlener Wert
false
- security.login.redirect.trusted.sameHost
-
Priorität
-
Standardwert
true
Empfohlener Wert
true
Umgang mit geblockten Ressourcen
Ressourcen, die von außen zugreifbar sein sollen, können mithilfe dieser Einstellung explizit freigegeben werden (Hinweise auf geblockte Ressourcen finden Sie in der Datei ct-security-wss-webapp.log
):
- security.forwardmapping.extrapathpattern
-
Priorität
2
Empfohlener Wert
Ihre komma-separierte Liste von Pfaden (
*
oder**
als Wildcards sind möglich)Beispielwert
wfs-schema/featureType.xsd,wfs-schema2/*.xsd,wfs-schema3/**
Zusätzliche bewährte Maßnahmen
Initiale Kennwörter und deren Stärke
Diese Kennwörter setzen Sie als Administrator selbst. Wählen Sie hier ein besonders sicheres Kennwort:
-
Kennwort des Super-Administrators "smadmin" (bereits während der Installation)
-
Kennwort für den Keystore (außerhalb des security.manager)
-
Kennwörter für Datenbanknutzer (außerhalb des security.manager)
-
Kennwörter für E-Mail-Server (außerhalb des security.manager)
-
Kennwörter für technische AD-Nutzer (außerhalb des security.manager)
Nach der Installation
Am Ende der Installation bietet Ihnen security.manager Informationen zur Installation in Form einer Textdatei (<Installationsverzeichnis>/postinstall/postinstall_*.txt
).
Diese Datei enthält z.B. Kennwörter für die Konfiguration der Datenbank-Verbindung.
Sorgen Sie dafür, dass diese Informationen nicht an Dritte weitergegeben bzw. nicht an unsicheren Orten abgespeichert werden.
Weiterführende Themen
Nachdem Sie die ersten Schritte zur Härtung Ihres Systems durchgeführt haben, empfehlen wir, sich diesen - über den Umfang dieser Dokumetation hinaus gehenden - Themen zu widmen:
-
Zugriff auf bzw. Manipulationsmöglichkeit von Verzeichnissen und Dateien verhindern - zum Beispiel auf .keystore, Datenverzeichnis, Installationsverzeichnis.
-
Weiterführende Maßnahmen zur Härtung von Apache Tomcat (neben der Einrichtung von SSL und HTTPS).
-
Für den Betrieb nötige Datenbank-Berechtigungen nach Ausführung der Installationsskripte anpassen/zurücksetzen.
Wir unterstützen Sie
Wir unterstützen Sie bei der Umsetzung der folgenden Themen der Systemhärtung:
-
Apache Tomcat
-
Kennwort Policies
-
Cookie-Konfiguration
-
Default-Logins (smadmin-Nutzer)
-
SSL-Zertifikate und Verschlüsselung
-
Sichere Anbindung von Drittsystemen (LDAP, DB, Mailserver)
Für weitere Inforamtionen und ein Angebot hierzu, kontaktieren Sie den con terra Support .