Der Autor wählte den Free and Open Source Fund, um eine Spende im Rahmen des Programms Write for DOnations zu erhalten.
Die standardmäßige Installation eines Apache-HTTP-Servers ist zwar bereits sicher, seine Konfiguration kann jedoch mit einigen Änderungen erheblich verbessert werden. Sie können bereits vorhandene Sicherheitsmechanismen ergänzen, indem Sie z. B. Schutzmechanismen für Cookies und Header einrichten, damit Verbindungen auf der Client-Ebene des Benutzers nicht manipuliert werden können. Dadurch können Sie die Möglichkeiten mehrerer Angriffsmethoden wie Cross-Site Scripting (auch als XSS bezeichnet) drastisch reduzieren. Sie können auch andere Arten von Angriffen verhindern, wie z. B. Cross-Site Request Forgery, Session Hijacking und Denial-of-Service-Angriffe.
In diesem Tutorial werden Sie einige empfohlene Schritte implementieren, um die Informationen zu reduzieren, die auf Ihrem Server verfügbar sind. Sie werden die Verzeichnislisten verifizieren und die Indizierung deaktivieren, um den Zugriff auf Ressourcen zu überprüfen. Außerdem ändern Sie den Standardwert der Anweisung timeout
, um das Risiko von Angriffen wie Denial of Service zu verringern. Des Weiteren deaktivieren Sie die TRACE-Methode, damit Sitzungen nicht zurückverfolgt und gehackt werden können. Abschließend sichern Sie Header und Cookies.
Die meisten Konfigurationseinstellungen werden auf die Hauptkonfigurationsdatei des Apache HTTP angewendet, die sich in /usr/local/etc/apache24/httpd.conf
befindet.
Bevor Sie diese Anleitung beginnen, benötigen Sie Folgendes:
Einen FreeBSD-12-Server, der gemäß dem Tutorial So unternehmen Sie erste Schritte mit FreeBSD eingerichtet wird.
Eine Firewall, die gemäß der Konfiguration eines Firewall-Abschnitts im Artikel Empfohlene Schritte für neue FreeBSD-12.0-Server eingerichtet ist.
Einen vollständigen FAMP Stack, der gemäß dem Tutorial So installieren Sie Apache, MySQL und PHP (FAMP) Stack unter FreeBSD 12.0 installiert wurde.
Ein Let’s-Encrypt-Zertifikat, das gemäß dem Tutorial So sichern Sie Apache mit Let’s Encrypt unter FreeBSD installiert wurde.
Mit diesen Voraussetzungen haben Sie ein FreeBSD-System mit einem Stack, der Webinhalt mit allem in PHP Geschriebenen, wie wesentliche CMS-Software, bereitstellen kann. Außerdem haben Sie sichere Verbindungen über Let’s Encrypt verschlüsselt.
Das Betriebssystem-Banner ist eine Methode, die von Computern, Servern und Geräten aller Art zur Präsentation in Netzwerken verwendet wird. Bösartige Akteure können diese Informationen verwenden, um relevante Systeme anzugreifen. In diesem Abschnitt reduzieren Sie die Menge an Informationen, die von diesem Banner veröffentlicht werden.
Anweisungssätze kontrollieren, wie diese Informationen angezeigt werden. Zu diesem Zweck ist die Anweisung ServerTokens
wichtig: Sie zeigt standardmäßig dem Client, zu dem die Verbindung hergestellt wird, alle Details über das Betriebssystem sowie die kompilierte Module an.
Sie verwenden ein Netzwerk-Scanning-Tool um zu prüfen, welche Informationen derzeit angezeigt werden, bevor Sie alle Änderungen vornehmen. Um nmap
zu installieren, führen Sie den folgenden Befehl aus:
- sudo pkg install nmap
Um die IP-Adresse Ihres Servers zu erhalten, können Sie den folgenden Befehl ausführen:
- ifconfig vtnet0 | awk '/inet / {print $2}'
Sie können die Antwort des Webservers mit dem folgenden Befehl überprüfen:
- nmap -sV -p 80 your-server-ip
Rufen Sie zum Ausführen eines Scans nmap
auf (folglich das Flag -s
), um die Version (das Flag -V
) auf Port 80
(das Flag -p
) auf der gegebenen IP oder Domäne anzuzeigen.
Sie erhalten Informationen über Ihren Webserver, ähnlich wie die folgenden:
OutputStarting Nmap 7.80 ( https://nmap.org ) at 2020-01-22 00:30 CET
Nmap scan report for 206.189.123.232
Host is up (0.054s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd 2.4.41 ((FreeBSD) OpenSSL/1.1.1d-freebsd
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.59 seconds
Diese Ausgabe zeigt, dass Informationen wie das Betriebssystem, die Apache-HTTP-Version und OpenSSL sichtbar sind. Damit können Angreifer Informationen über den Server erhalten (zum Beispiel ein Sicherheitsrisiko in der Software, die auf dem Server ausgeführt wird) und die richtigen Tools für den Angriff auswählen.
Platzieren Sie die Anweisung ServerTokens
in die Hauptkonfigurationsdatei, da sie nicht standardmäßig konfiguriert ist. Weil diese Konfiguration fehlt, zeigt Apache HTTP die vollständigen Informationen über den Server als Dokumentationszustand an. Um die Informationen zu begrenzen, die über Ihren Server und Ihre Konfiguration preisgegeben werden, platzieren Sie die Anweisung ServerTokens
in die Hauptkonfigurationsdatei.
Platzieren Sie diese Anweisung nach der ServerName
-Eingabe in die Konfigurationsdatei. Führen Sie den folgenden Befehl aus, um die Anweisung zu suchen:
- grep -n 'ServerName' /usr/local/etc/apache24/httpd.conf
Danach können Sie die Zeilennummer mit vi
suchen:
Output226 #ServerName www.example.com:80
Führen Sie den folgenden Befehl aus:
- sudo vi +226 /usr/local/etc/apache24/httpd.conf
Fügen Sie die folgende hervorgehobene Zeile hinzu:
. . .
#ServerName www.example.com:80
ServerTokens Prod
Speichern und schließen Sie die Datei mit :wq
und der EINGABETASTE
.
Durch die Einstellung der Anweisung ServerTokens
auf Prod
wird lediglich angezeigt, dass dies ein Apache-Webserver ist.
Damit dies in Kraft tritt, starten Sie den Apache-HTTP-Server neu:
- sudo apachectl restart
Um die Änderungen zu testen, führen Sie den folgenden Befehl aus:
- nmap -sV -p 80 your-server-ip
Sie sehen eine ähnliche Ausgabe wie die folgende, mit weniger Informationen über Ihren Apache-Webserver:
OutputStarting Nmap 7.80 ( https://nmap.org ) at 2020-01-22 00:58 CET
Nmap scan report for WPressBSD (206.189.123.232)
Host is up (0.056s latency).
PORT STATE SERVICE VERSION
80/tcp open http Apache httpd
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 7.59 seconds
Sie haben gesehen, welche Informationen der Server vor der Änderung preisgegeben hat, und Sie haben dies nun auf ein Minimum reduziert. Dadurch geben Sie einem externen Akteur weniger Hinweise über Ihren Server. Im nächsten Schritt verwalten Sie die Verzeichnislisten für Ihren Webserver.
In diesem Schritt stellen Sie sicher, dass die Verzeichnisliste korrekt konfiguriert ist, damit die gewünschten Informationen über das System öffentlich verfügbar und die übrigen geschützt sind.
Anmerkung: Wenn ein Argument deklariert ist, ist es aktiv, aber das +
kann visuell untermauern, dass es tatsächlich aktiviert ist. Wenn ein Minuszeichen -
eingegeben wird, wird das Argument verweigert, z. B. Options -Indexes
.
Argumente mit +
und/oder -
können nicht kombiniert werden – dies wird als schlechte Syntax in Apache HTTP erachtet und könnte beim Starten verweigert werden.
Durch Hinzufügen der Anweisung Options -Indexes
wird der Inhalt im Datenpfad /usr/local/www/apache24/data
so eingestellt, dass (read listed) nicht automatisch indiziert wird, wenn keine .html
-Datei vorhanden ist, sowie nicht gezeigt wird, wenn eine URL diesem Verzeichnis zugeordnet ist. Dies gilt auch bei der Verwendung von virtuellen Host-Konfigurationen wie z. B. jener, die für das Tutorial über Voraussetzungen für das Let’s-Encrypt-Zertifikat verwendet werden.
Sie richten die Anweisung Options
mit dem Argument -Indexes
und der Anweisung +FollowSymLinks
ein, wodurch symbolische Links besucht werden können. Sie verwenden das Symbol +
, um die Konventionen von Apache HTTP zu befolgen.
Führen Sie den folgenden Befehl aus, um die Zeile zu suchen, die in der Konfigurationsdatei bearbeitet werden soll:
- grep -n 'Options Indexes FollowSymLinks' /usr/local/etc/apache24/httpd.conf
Sie werden eine Ausgabe ähnlich der folgenden sehen:
Output263 : Options Indexes FollowSymLinks
Führen Sie diesen Befehl aus, um direkt auf die Zeile zur Bearbeitung zuzugreifen:
- sudo vi +263 /usr/local/etc/apache24/httpd.conf
Bearbeiten Sie nun die Zeile gemäß der Konfiguration:
. . .
#
Options -Indexes +FollowSymLinks
#
. . .
Speichern und schließen Sie die Datei mit :wq
und der EINGABETASTE
.
Starten Sie Apache HTTP zur Implementierung dieser Änderungen neu:
- sudo apachectl restart
Auf Ihrer Domäne im Browser sehen Sie eine „Zugriff verboten“-Nachricht, auch als Fehler 403 bekannt. Grund dafür sind Ihre Änderungen. Durch die Eingabe von -Indexes
in die Anweisung Options
wurde die Funktion Auto-Index von Apache HTTP deaktiviert und daher gibt es im Datenpfad keine index.html
-Datei.
Das können Sie lösen, indem Sie eine index.html
-Datei im VirtualHost
ablegen, den Sie im Tutorial über Voraussetzungen für das Let’s-Encrypt-Zertifikat aktiviert haben. Verwenden Sie den Standardblock innerhalb von Apache HTTP und legen Sie ihn im gleichen Ordner wie die DocumentRoot
ab, die Sie im virtuellen Host deklariert haben.
<VirtualHost *:80>
ServerAdmin your_email@your_domain.com
DocumentRoot "/usr/local/www/apache24/data/your_domain.com"
ServerName your_domain.com
ServerAlias www.your_domain.com
ErrorLog "/var/log/your_domain.com-error_log"
CustomLog "/var/log/your_domain.com-access_log" common
</VirtualHost>
Verwenden Sie hierzu den folgenden Befehl:
- sudo cp /usr/local/www/apache24/data/index.html /usr/local/www/apache24/data/your_domain.com/index.html
Jetzt sehen Sie die Nachricht It works! beim Besuch Ihrer Domäne.
In diesem Abschnitt haben Sie der Anweisung Indexes
Beschränkungen hinzugefügt, um nicht automatisch unbeabsichtigten Inhalt einzutragen und anzuzeigen. Wenn nun keine index.html
-Datei im Datenpfad ist, erstellt Apache HTTP nicht automatisch ein Verzeichnis des Inhalts. Im nächsten Schritt gehen Sie über das Verbergen von Informationen hinaus und passen verschiedene Anweisungen an.
Die Anweisung Timeout
legt das Limit für die Zeit fest, die Apache HTTP auf eine neue Eingabe/Ausgabe wartet, bevor die Verbindungsanforderung fehlschlägt. Dieser Fehler kann aufgrund von verschiedenen Umständen auftreten, wie z. B. Pakete, die nicht beim Server ankommen, oder Daten, die vom Client nicht als empfangen bestätigt werden.
Standardmäßig ist das Zeitlimit auf 60
Sekunden eingestellt. In Umgebungen, in denen das Internet langsam ist, kann dieser Standardwert sinnvoll sein. Eine Minute ist jedoch ziemlich lange, insbesondere dann, wenn der Server Benutzer mit schnellerem Internet abdeckt. Außerdem kann die Zeit, in der der Server die Verbindung nicht schließt, für Denial-of-Service-Angriffe (DoS) ausgenützt werden. Wenn es zu einer Vielzahl dieser schädlichen Verbindungen kommt, gerät der Server ins Stolpern und könnte gesättigt werden und nicht mehr reagieren.
Um den Wert zu ändern, finden Sie die Timeout
-Einträge in der Datei httpd-default.conf
:
- grep -n 'Timeout' /usr/local/etc/apache24/extra/httpd-default.conf
Sie sehen eine ähnliche Ausgabe wie die folgende:
Output 8 # Timeout: The number of seconds before receives and sends time out.
10 Timeout 60
26 # KeepAliveTimeout: Number of seconds to wait for the next request from the
29 KeepAliveTimeout 5
89 RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
In der Ausgabezeile legt 10
den Wert der Timeout
-Anweisung fest. Um direkt auf diese Zeile zuzugreifen, führen Sie den folgenden Befehl aus:
- sudo vi +10 /usr/local/etc/apache24/extra/httpd-default.conf
Stellen Sie ihn zum Beispiel auf 30
Sekunden ein, wie nachfolgend gezeigt:
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 30
Speichern und schließen Sie die Datei mit :wq
und der EINGABETASTE
.
Der Wert der Anweisung Timeout
muss groß genug sein, damit eine legitime und erfolgreiche Verbindung hergestellt werden kann, und klein genug, um unerwünschte Verbindungsversuche zu verhindern.
Anmerkung: Denial-of-Service-Angriffe können die Ressourcen des Servers ziemlich effektiv erschöpfen. Eine komplementäre und sehr fähige Gegenmaßnahme ist die Verwendung eines Threaded MPM, um für die Verbindungen und Prozesse von Apache HTTP die beste Leistung zu erzielen. Im Tutorial So konfigurieren Sie Apache HTTP mit MPM Event und PHP-FPM unter FreeBSD 12.0 finden Sie Schritte zur Aktivierung dieser Fähigkeit.
Damit diese Änderung in Kraft tritt, starten Sie den Apache-HTTP-Server neu:
- sudo apachectl restart
Sie haben den Standardwert der Timeout
-Anweisung geändert, um das Risiko von DoS-Angriffen teilweise zu reduzieren.
Das Hypertext-Übertragungsprotokoll wurde nach einem Client-Server-Modell entwickelt und als solches hat das Protokoll Anforderungsmethoden, um Informationen vom Server abzurufen oder im Server abzulegen. Der Server muss diese Methodensätze und die Interaktion zwischen ihnen verstehen. In diesem Schritt konfigurieren Sie die mindestens erforderlichen Methoden.
Die Methode TRACE, die als harmlos angesehen wurde, wurde für die Durchführung von Cross-Site-Tracing-Angriffen genutzt. Diese Art von Angriffen ermöglicht bösartigen Akteuren, Benutzersitzungen mithilfe dieser Methode zu stehlen. Die Methode wurde zum Zwecke des Debugging konzipiert, wobei der Server die gleiche Anfrage zurückgibt, die ursprünglich vom Client gesendet wurde. Da das Cookie aus der Sitzung des Browsers an den Server gesendet wird, wird es erneut zurückgesendet. Das könnte jedoch eventuell von einem bösartigen Akteur abgefangen werden, der dann die Verbindung eines Browsers zu einer Website umleiten kann, über die er die Kontrolle hat, anstatt zum ursprünglichen Server.
Aufgrund des potenziellen Missbrauchs der TRACE-Methode wird empfohlen, sie nur für das Debugging und nicht in einer Produktivumgebung zu verwenden. In diesem Abschnitt deaktivieren Sie diese Methode.
Bearbeiten Sie die Datei httpd.conf
mit dem folgenden Befehl und drücken Sie dann G
, um das Ende der Datei zu erreichen:
- sudo vi /usr/local/etc/apache24/httpd.conf
Fügen Sie am Ende der Datei folgenden Einstiegspfad hinzu:
. . .
TraceEnable off
Eine bewährte Vorgehensweise ist die Angabe der Methoden, die Sie auf Ihrem Apache-HTTP-Webserver verwenden. Dadurch werden potenzielle Einstiegspunkte für bösartige Akteure begrenzt.
LimitExcept
kann für diesen Zweck nützlich sein, da es keine anderen Methoden zulässt als die in ihm deklarierten. So kann beispielsweise eine Konfiguration wie diese erstellt werden:
DocumentRoot "/usr/local/www/apache24/data"
<Directory "/usr/local/www/apache24/data">
Options -Indexes +FollowSymLinks -Includes
AllowOverride none
<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>
Require all granted
</Directory>
Wie in der Anweisung LimitExcept
deklariert, sind nur die Methoden GET, POST und HEAD in der Konfiguration erlaubt.
GET
-Methode ist Teil des HTTP-Protokolls und dient zum Abrufen von Daten.POST
-Methode ist auch Teil des HTTP-Protokolls und dient dazu, Daten an den Server zu senden.HEAD
-Methode ist ähnlich wie GET
, hat jedoch keinen Antworttext.Verwenden Sie den folgenden Befehl und legen Sie den LimitExcept
-Block in der Datei ab:
- sudo vi +272 /usr/local/etc/apache24/httpd.conf
Um diese Konfiguration einzustellen, legen Sie den folgenden Block im Anweisungseintrag DocumentRoot
ab, aus dem der Inhalt gelesen wird, genauer gesagt im Eintrag des Verzeichnisses
:
. . .
<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>
. . .
Starten Sie Apache HTTP neu, damit die Änderungen übernommen werden:
- sudo apachectl restart
Die neuere Anweisung AllowedMethods
hat eine ähnliche Funktionalität, ihr Status ist jedoch noch experimentell.
Sie kennen nun HTTP-Methoden, ihre Verwendung und den Schutz, den sie vor bösartigen Aktivitäten mithilfe der TRACE-Methode bieten. Des Weiteren wissen Sie, wie man deklariert, welche Methoden verwendet werden sollen. Als Nächstes arbeiten Sie mit weiteren Schutzmaßnahmen für HTTP-Header und Cookies.
In diesem Schritt richten Sie spezifische Anweisungen ein, um die Sitzungen zu schützen, die die Client-Rechner beim Besuch Ihres Apache-HTTP-Webservers öffnen. So lädt Ihr Server keinen unerwünschten Inhalt, die Verschlüsselung wird nicht heruntergeladen und Sie vermeiden Content Sniffing.
Header sind Bestandteile der Anforderungsmethoden. Es gibt Header zum Anpassen der Authentifizierung, für die Kommunikation zwischen Server und Client, Zwischenspeicherung, Inhaltsaushandlung usw.
Cookies sind Informationen, die vom Server an den Browser gesendet werden. Diese Informationen ermöglichen es dem Server, den Client-Browser von unterschiedlichen Computern zu unterscheiden. Außerdem ermöglichen sie Servern, Benutzersitzungen zu erkennen. Sie können beispielsweise den Einkaufswagen eines angemeldeten Benutzers, Zahlungsinformationen, den Verlauf etc. verfolgen. Cookies werden im Webbrowser des Clients verwendet und gespeichert, da HTTP ein zustandsloses Protokoll ist. Das bedeutet, sobald die Verbindung geschlossen wird, erinnert sich der Server nicht mehr an die Anfragen der einzelnen Clients.
Es ist wichtig, sowohl Header als auch Cookies zu schützen, da sie eine Kommunikation zwischen Webbrowser-Client und Webserver bereitstellen.
Das Modul Header
ist standardmäßig aktiviert. Überprüfen Sie mit dem folgenden Befehl, ob es geladen wurde:
- sudo apachectl -M | grep 'headers'
Sie sehen die folgende Ausgabe:
Outputheaders_module (shared)
Wenn Sie keine Ausgabe sehen, überprüfen Sie, ob das Modul in der Apache-Datei httpd.conf
aktiviert ist:
- grep -n 'mod_headers' /usr/local/etc/apache24/httpd.conf
Als Ausgabe sehen Sie eine unkommentierte Zeile, die auf das spezifische Modul für Header verweist:
. . .
122 LoadModule headers_module libexec/apache24/mod_headers.so
. . .
Entfernen Sie den Hashtag am Anfang der Zeile mod_headers.so
, falls vorhanden, um die Anweisung zu aktivieren.
Durch die Verwendung der folgenden Apache-HTTP-Anweisungen schützen Sie Header und Cookies vor bösartigen Aktivitäten, um das Risiko für Clients und Server zu verringern.
Jetzt richten Sie den Schutz des Headers ein. Legen Sie all diese Header-Werte in einen Block ab. Sie können diese Werte nach eigenem Ermessen anwenden, es werden jedoch alle empfohlen.
Bearbeiten Sie die Datei httpd.conf
mit dem folgenden Befehl und drücken Sie dann G
, um das Ende der Datei zu erreichen:
- sudo vi /usr/local/etc/apache24/httpd.conf
Legen Sie den folgenden Block am Ende der Datei ab:
. . .
<IfModule mod_headers.c>
# Add security and privacy related headers
Header set Content-Security-Policy "default-src 'self'; upgrade-insecure-requests;"
Header set Strict-Transport-Security "max-age=31536000; includeSubDomains"
Header always edit Set-Cookie (.*) "$1; HttpOnly; Secure"
Header set X-Content-Type-Options "nosniff"
Header set X-XSS-Protection "1; mode=block"
Header set Referrer-Policy "strict-origin"
Header set X-Frame-Options: "deny"
SetEnv modHeadersAvailable true
</IfModule>
Header Strict-Transport-Security "max-age, includeSubDomains"
: HTTP Strict Transport Security (HTSTS) ist ein Mechanismus für Webserver und Clients (hauptsächlich Browser) zur Einrichtung von Kommunikationen mit ausschließlich HTTPS. Durch die Implementierung vermeiden Sie Man-in-the-middle-Angriffe, bei denen ein Dritter in der Kommunikation potenziell auf Informationen zugreifen und diese manipulieren kann.
Header always edit Set-Cookie (. *) "$1; HttpOnly; Secure"
: Die Flags HttpOnly
and Secure
auf den Headern verringern das Risiko von Cross-Site-Scripting-Angriffen (XSS). Cookies können von Angreifern missbraucht werden, um sich als legitime Besucher bzw. als eine andere Person auszugeben (Identitätsdiebstahl), oder sie können manipuliert werden.
Header set Referrer-Policy "strict-origin"
: Der Header Referrer-Policy legt fest, welche Informationen im Header-Feld als Verweiser-Information enthalten sind.
Header set Content-Security-Policy "default-src 'self'; upgrade-insecure-requests;"
: Der Content-Security-Policy header (CSP) verhindert, dass Inhalt geladen wird, der in den Parametern nicht angegeben ist. Das ist hilfreich, um Cross-Site-Scripting-Angriffe (XSS) zu verhindern. Es gibt viele Parameter für die Konfiguration der Richtlinie dieses Headers. Entscheidend ist die Konfiguration zum Laden von Inhalt derselben Site und das Aktualisieren jedes Inhalts mit HTTP-Ursprung.
Header set X-XSS-Protection "1; mode=block"
: Dies unterstützt ältere Browser, die mit Content-Security-Policy
nicht fertig werden. Der Header ‘X-XSS-Protection’ bietet Schutz vor Cross-Site-Scripting-Angriffen. Sie müssen diesen Header nicht einrichten, außer Sie müssen alte Browser-Versionen unterstützen, was selten ist.
Header set X-Frame-Options: "deny"
: Das verhindert clickjacking-Angriffe. Der Header ‘X-Frame-Options’ teilt einen Browser mit, wenn eine Seite in ein <frame>
, <iframe>
, <embed>
oder <object>
gerendert werden kann. So kann Inhalt von Sites nicht in andere eingebettet werden, wodurch Clickjacking-Angriffe verhindert werden. Hier verweigern Sie jegliches Frame-Rendering, damit die Webseite nicht irgendwo anders eingebettet werden kann, nicht einmal innerhalb derselben Website. Sie können dies Ihren Bedürfnissen anpassen, wenn Sie z. B. das Rendering bestimmter Seiten autorisieren müssen, da es sich um Anzeigen oder Kooperationen mit spezifischen Websites handelt.
Header set X-Content-Type-Options "nosniff"
: Der Header ‘X-Content-Type-Options’ steuert MIME types, damit sie nicht geändert und gefolgt werden können. MIME types sind Dateiformat-Standards: Sie funktionieren mit Text, Audio, Video, Image usw. Dieser Header hält bösartige Akteure von Content Sniffing der Dateien ab sowie vor dem Versuch, Dateitypen zu ändern.
Starten Sie Apache neu, damit die Änderungen wirksam werden:
- sudo apachectl restart
Um die Sicherheitsebenen Ihrer Konfigurationseinstellungen zu überprüfen, besuchen Sie die Website Security Headers. Nach Ausführung der Schritte in diesem Tutorial wird Ihre Domäne die Note A erhalten.
Anmerkung: Wenn Sie Ihre Header auf https://securityheaders.com/
überprüfen und ein F
erhalten, könnte das daran liegen, dass in der DocumentRoot
Ihrer Website kein index.html
ist, wie am Ende von Schritt 2 beschrieben. Wenn Sie Ihre Header überprüfen und eine andere Note als A
oder F
erhalten, prüfen Sie jede Header set
-Zeile auf Tippfehler, die zu der Herabstufung geführt haben könnten.
In diesem Schritt haben Sie mit bis zu sieben Einstellungen gearbeitet, um die Sicherheit Ihrer Header und Cookies zu verbessern. Dadurch wird das Risiko von Cross-Site-Scripting, Clickjacking und anderen Arten von Angriffen verhindert.
In diesem Tutorial haben Sie sich mit verschiedenen Sicherheitsaspekten befasst, wie der Preisgabe von Informationen, dem Schutz von Sitzungen sowie mit alternativen Konfigurationseinstellungen für wichtige Funktionen.
Weitere Ressourcen zum Härten von Apache finden Sie hier:
Weitere Tools zum Schutz von Apache HTTP:
mod_evasive
ist ein nützliches Tool zur Eindämmung von DoS-Angriffen. Weitere Informationen finden Sie im Tutorial So schützen Sie gegen DoS und DDoS mit mod_evasive für Apache.
fail2ban
ist eine Eindringschutz-Software zum Blockieren von wiederholten Anmeldeversuchen von nicht autorisierten Benutzern. Weitere Informationen finden Sie im Tutorial So schützen Sie einen Apache-Server mit Fail2Ban.
ModSecurity
ist eine Web Application Firewall (oder WAF) und bietet eine Vielzahl von Möglichkeiten auf der Grundlage von vordefinierten Regeln, die von SpyderLabs und Community-Mitgliedern geschrieben wurden. Weitere Informationen dazu finden Sie im Tutorial So richten Sie ModSecurity mit Apache ein.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!