Tutorial

Empfohlene Schritte zum Härten von Apache unter FreeBSD 12.0

Published on April 24, 2020
Deutsch
Empfohlene Schritte zum Härten von Apache unter FreeBSD 12.0

Der Autor wählte den Free and Open Source Fund, um eine Spende im Rahmen des Programms Write for DOnations zu erhalten.

Einführung

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.

Voraussetzungen

Bevor Sie diese Anleitung beginnen, benötigen Sie Folgendes:

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.

Reduzieren der Serverinformationen

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:

  1. sudo pkg install nmap

Um die IP-Adresse Ihres Servers zu erhalten, können Sie den folgenden Befehl ausführen:

  1. ifconfig vtnet0 | awk '/inet / {print $2}'

Sie können die Antwort des Webservers mit dem folgenden Befehl überprüfen:

  1. 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:

Output
Starting 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:

  1. grep -n 'ServerName' /usr/local/etc/apache24/httpd.conf

Danach können Sie die Zeilennummer mit vi suchen:

Output
226 #ServerName www.example.com:80

Führen Sie den folgenden Befehl aus:

  1. sudo vi +226 /usr/local/etc/apache24/httpd.conf

Fügen Sie die folgende hervorgehobene Zeile hinzu:

/usr/local/etc/apache24/httpd.conf
. . .
#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:

  1. sudo apachectl restart

Um die Änderungen zu testen, führen Sie den folgenden Befehl aus:

  1. nmap -sV -p 80 your-server-ip

Sie sehen eine ähnliche Ausgabe wie die folgende, mit weniger Informationen über Ihren Apache-Webserver:

Output
Starting 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.

Verwalten von Verzeichnislisten

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:

  1. grep -n 'Options Indexes FollowSymLinks' /usr/local/etc/apache24/httpd.conf

Sie werden eine Ausgabe ähnlich der folgenden sehen:

Output
263 : Options Indexes FollowSymLinks

Führen Sie diesen Befehl aus, um direkt auf die Zeile zur Bearbeitung zuzugreifen:

  1. sudo vi +263 /usr/local/etc/apache24/httpd.conf

Bearbeiten Sie nun die Zeile gemäß der Konfiguration:

/usr/local/etc/apache24/httpd.conf
. . .
#
Options -Indexes +FollowSymLinks

#
. . .

Speichern und schließen Sie die Datei mit :wq und der EINGABETASTE.

Starten Sie Apache HTTP zur Implementierung dieser Änderungen neu:

  1. 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.

/usr/local/etc/apache24/extra/httpd-vhosts.conf
<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:

  1. 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.

Den Wert der Timeout-Anweisung verringern

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:

  1. 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:

  1. sudo vi +10 /usr/local/etc/apache24/extra/httpd-default.conf

Stellen Sie ihn zum Beispiel auf 30 Sekunden ein, wie nachfolgend gezeigt:

/usr/local/etc/apache24/extra/httpd-default.conf
#
# 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:

  1. sudo apachectl restart

Sie haben den Standardwert der Timeout-Anweisung geändert, um das Risiko von DoS-Angriffen teilweise zu reduzieren.

Deaktivieren der TRACE-Methode

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:

  1. sudo vi /usr/local/etc/apache24/httpd.conf

Fügen Sie am Ende der Datei folgenden Einstiegspfad hinzu:

/usr/local/etc/apache24/httpd.conf
. . .
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:

/usr/local/etc/apache24/httpd.conf
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.

  • Die GET-Methode ist Teil des HTTP-Protokolls und dient zum Abrufen von Daten.
  • Die POST-Methode ist auch Teil des HTTP-Protokolls und dient dazu, Daten an den Server zu senden.
  • Die 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:

  1. 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:

/usr/local/etc/apache24/httpd.conf
. . .
<LimitExcept GET POST HEAD>
   deny from all
</LimitExcept>
. . .

Starten Sie Apache HTTP neu, damit die Änderungen übernommen werden:

  1. 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.

Header und Cookies sichern

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:

  1. sudo apachectl -M | grep 'headers'

Sie sehen die folgende Ausgabe:

Output
headers_module (shared)

Wenn Sie keine Ausgabe sehen, überprüfen Sie, ob das Modul in der Apache-Datei httpd.conf aktiviert ist:

  1. 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:

/usr/local/etc/apache24/httpd.conf
. . .
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:

  1. sudo vi /usr/local/etc/apache24/httpd.conf

Legen Sie den folgenden Block am Ende der Datei ab:

/usr/local/etc/apache24/httpd.conf
. . .
<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:

  1. 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.

Zusammenfassung

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:

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
Leave a comment


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!

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel