Apache HTTP

So sichern Sie Ihren Apache-Server

So sichern Sie Ihren Apache-Server
Apache ist ein beliebter Open-Source-Webserver, der sowohl für Linux- als auch für Windows-Systeme verfügbar ist. Es ermöglicht die Konfiguration für eine Vielzahl von Anwendungsfällen, von HTML-Webseiten bis hin zu dynamischen Webanwendungsinhalten von HyperText Preprocessor (PHP).Apache bietet eine sichere und robuste Plattform für die Bereitstellung Ihrer Webanwendungen. Es ist jedoch weiterhin wichtig, die neuesten Sicherheitspatches zu installieren und den Server richtig zu konfigurieren, um eine sichere Umgebung für Ihre Webanwendungen zu schaffen.
In diesem Artikel finden Sie einige Tipps und Tricks, um Ihre Apache-Webserver-Konfigurationen zu stärken und die allgemeine Sicherheit zu verbessern.

Nicht privilegiertes Benutzerkonto

Der Zweck eines nicht-root oder unprivilegierten Benutzerkontos besteht darin, den Benutzer am unnötigen Zugriff auf bestimmte Aufgaben innerhalb eines Systems zu hindern. Im Kontext eines Apache-Webservers bedeutet dies, dass dieser in einer eingeschränkten Umgebung nur mit den erforderlichen Berechtigungen arbeiten sollte. Standardmäßig läuft Apache mit Daemon-Kontoberechtigungen. Sie können ein separates Nicht-Root-Benutzerkonto erstellen, um Bedrohungen im Falle von Sicherheitslücken zu vermeiden.

Wenn Apache2 und MySQL dieselben Benutzeranmeldeinformationen verwenden, wirkt sich jedes Problem im Prozess eines Dienstes auf den anderen aus. Um die Benutzer- und Gruppenberechtigungen für den Webserver zu ändern, gehen Sie zu /etc/apache2, öffnen Sie die Datei envvars und setzen Sie den Benutzer und die Gruppe auf einen neuen nicht privilegierten Kontobenutzer, sagen wir „apache“, und speichern Sie die Datei.

ubuntu@ubuntu~:$ sudo vim /etc/apache2/envvars
… schnippel…
export APACHE_RUN_USER= Apache
export APACHE_RUN_GROUP= Apache
… schnippel…

Sie können auch den folgenden Befehl verwenden, um den Besitz des Installationsverzeichnisses auf den neuen Nicht-Root-Benutzer zu ändern.

ubuntu@ubuntu~:$ sudo chown -R apache:apache /etc/apache2
Geben Sie den folgenden Befehl aus, um die Änderungen zu speichern:
ubuntu@ubuntu~:$ sudo service Apache2 Neustart

Apache auf dem neuesten Stand halten

Apache ist dafür bekannt, eine sichere Plattform mit einer sehr besorgten Entwickler-Community bereitzustellen, die selten mit Sicherheitsfehlern konfrontiert ist. Trotzdem ist es normal, dass nach der Veröffentlichung der Software Probleme auftreten. Daher ist es wichtig, den Webserver auf dem neuesten Stand zu halten, um die neuesten Sicherheitsfunktionen nutzen zu können. Es wird auch empfohlen, die Ankündigungslisten für Apache Server zu befolgen, um sich über neue Ankündigungen, Releases und Sicherheitsupdates der Apache-Entwicklungsgemeinschaft auf dem Laufenden zu halten.

Geben Sie Folgendes ein, um Ihren Apache mit apt zu aktualisieren:

ubuntu@ubuntu~:$ sudo apt-get update
ubuntu@ubuntu~:$ sudo apt-get upgrade

Serversignatur deaktivieren

Die Standardkonfiguration eines Apache-Servers legt viele Details über den Server und seine Einstellungen offen. Zum Beispiel aktivierte ServerSignature- und ServerTokens-Direktiven in /etc/apache2/apache2.conf-Datei einen zusätzlichen Header zur HTTP-Antwort hinzufügen, der potenziell sensible Informationen preisgibt. Diese Informationen umfassen Details zu Servereinstellungen wie Serverversion und Hosting-Betriebssystem, die dem Angreifer beim Aufklärungsprozess helfen können. Sie können diese Anweisungen deaktivieren, indem Sie den Apache2 . bearbeiten.conf-Datei über vim/nano und fügen Sie die folgende Direktive hinzu:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
… schnippel…
ServerSignatur aus
… schnippel…
ServerTokens Prod
… schnippel…

Starten Sie Apache neu, um die Änderungen zu aktualisieren.

Serververzeichnislisten deaktivieren

Die Verzeichnislisten zeigen alle Inhalte an, die im Stammordner oder in Unterverzeichnissen gespeichert sind. Die Verzeichnisdateien können sensible Informationen enthalten, die nicht für die öffentliche Anzeige bestimmt sind, wie PHP-Skripte, Konfigurationsdateien, Dateien mit Passwörtern, Protokolle usw.
Um Verzeichnislisten nicht zuzulassen, ändern Sie die Konfigurationsdatei des Apache-Servers, indem Sie die Datei apache2 . bearbeiten.conf-Datei als:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
… schnippel…

Optionen -Indizes

… schnippel…

ODER

… schnippel…

Optionen -Indizes

… schnippel…

Sie können diese Direktive auch im .htaccess-Datei Ihres Hauptverzeichnisses der Website.

Systemeinstellungen schützen

Das .htaccess-Datei ist eine praktische und leistungsstarke Funktion, die eine Konfiguration außerhalb des Haupt-Apache2 ermöglicht.conf-Datei. In Fällen, in denen ein Benutzer jedoch Dateien auf den Server hochladen kann, kann dies von einem Angreifer ausgenutzt werden, um seine eigenen Dateien hochzuladen.htaccess“-Datei mit bösartigen Konfigurationen. Wenn Sie diese Funktion nicht verwenden, können Sie die .htaccess-Direktive, ich.e.:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
… schnippel…
#AccessFileName .htaccess
… schnippel…

ODER
Deaktivieren Sie die .htaccess-Datei mit Ausnahme der speziell aktivierten Verzeichnisse durch Bearbeiten von Apache2.conf-Datei und Setzen der AllowOverRide-Direktive auf None;

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
… schnippel…

AllowOverride None

… schnippel…

Sichere Verzeichnisse mit Authentifizierung

Sie können Benutzeranmeldeinformationen erstellen, um alle oder einige der Verzeichnisse mit dem Dienstprogramm htpasswd zu schützen. Gehen Sie zu Ihrem Serverordner und verwenden Sie den folgenden Befehl, um ein zu erstellen .htpasswd-Datei zum Speichern von Passwort-Hashes für die Anmeldeinformationen, die beispielsweise einem Benutzer namens dev zugewiesen wurden.

[email protected]~:$ sudo htpasswd -c /etc/apache2/-htpasswd dev

Der obige Befehl fragt nach dem neuen Passwort und der Passwortbestätigung. Sie können die Katze sehen ./htpasswd-Datei, um den Hash auf die gespeicherten Benutzeranmeldeinformationen zu überprüfen.

Jetzt können Sie die Konfigurationsdatei im Verzeichnis your_website, das Sie schützen müssen, automatisch festlegen, indem Sie die .htaccess-Datei. Verwenden Sie den folgenden Befehl und die folgenden Anweisungen, um die Authentifizierung zu aktivieren:

ubuntu@ubuntu~:$ sudo nano /var/www/ihre_website/.htaccess
… schnippel…
AuthType Basic
AuthName "Dialogaufforderung hinzufügen"
AuthUserFile /etc/apache2/user_name/domain_name/.htpasswd
Gültiger Benutzer erforderlich
… schnippel…

Denken Sie daran, den Pfad gemäß Ihrem hinzuzufügen.

Führen Sie die erforderlichen Module aus

Die Standard-Apache-Konfiguration enthält aktivierte Module, die Sie möglicherweise nicht einmal benötigen. Diese vorinstallierten Module öffnen Türen für Apache-Sicherheitsprobleme, die entweder bereits existieren oder in Zukunft bestehen können. Um all diese Module zu deaktivieren, müssen Sie zunächst verstehen, welche Module für das reibungslose Funktionieren Ihres Webservers erforderlich sind. Sehen Sie sich dazu die Apache-Moduldokumentation an, die alle verfügbaren Module abdeckt.

Verwenden Sie als Nächstes den folgenden Befehl, um herauszufinden, welche Module auf Ihrem Server ausgeführt werden.

[email protected]~:$ sudo ls /etc/apache2/mods-enabled

Apache wird mit dem leistungsstarken a2dismod-Befehl geliefert, um das Modul zu deaktivieren. Es verhindert das Laden des Moduls und weist Sie beim Deaktivieren des Moduls mit einer Warnung darauf hin, dass sich die Aktion negativ auf Ihren Server auswirken kann.

[email protected]~:$ sudo a2dismod module_name

Sie können das Modul auch deaktivieren, indem Sie in der LoadModule-Zeile einen Kommentar abgeben.

Verhindern Sie Slow Loris- und DoS-Angriffe

Die Standardinstallation eines Apache-Servers zwingt ihn dazu, zu lange auf Anfragen von Clients zu warten, was den Server Slow Loris- und DoS-Angriffen aussetzt. Der Apache2.conf-Konfigurationsdatei enthält eine Anweisung, mit der Sie den Timeout-Wert auf wenige Sekunden senken können, um diese Art von Angriffen zu verhindern, d. h.e.:

ubuntu@ubuntu~:$ sudo vim /etc/apache2/apache2.conf
Zeitüberschreitung 60

Außerdem enthält der neue Apache-Server ein praktisches Modul mod_reqtimeout, das eine Anweisung RequestReadTimeout bereitstellt, um den Server vor illegitimen Anfragen zu schützen. Diese Anweisung enthält einige knifflige Konfigurationen, sodass Sie die entsprechenden Informationen auf der Dokumentationsseite lesen können.

Deaktivieren Sie unnötige HTTP-Anfragen

Unbegrenzte HTTP/HTTPS-Anfragen können auch zu geringer Serverleistung oder einem DoS-Angriff führen. Sie können den Empfang von HTTP-Anfragen pro Verzeichnis begrenzen, indem Sie LimitRequestBody auf weniger als 100 K . verwenden. Um beispielsweise eine Direktive für den Ordner /var/www/your_website zu erstellen, können Sie die LimitRequestBody-Direktive unter AllowOverride All hinzufügen, d.e.:

… schnippel…

Optionen -Indizes
AllowOverride All
LimitRequestBody 995367

… schnippel…

Hinweis: Denken Sie daran, Apache nach den vorgenommenen Änderungen neu zu starten, um es entsprechend zu aktualisieren.

Fazit

Die Standardinstallation des Apache-Servers kann viele sensible Informationen liefern, um Angreifern bei einem Angriff zu helfen. In der Zwischenzeit gibt es viele andere Möglichkeiten (oben nicht aufgeführt), um den Apache-Webserver ebenfalls abzusichern. Recherchiere weiter und halte dich über neue Richtlinien und Module auf dem Laufenden, um deinen Server weiter abzusichern.

So kehren Sie die Scrollrichtung von Maus und Touchpads in Windows 10 um
Maus und Touchpads machen das Rechnen nicht nur einfach, sondern auch effizienter und weniger zeitaufwendig. Wir können uns ein Leben ohne diese Gerät...
So ändern Sie Mauszeiger- und Cursorgröße, Farbe und Schema unter Windows 10
Der Mauszeiger und der Cursor in Windows 10 sind sehr wichtige Aspekte des Betriebssystems. Dies kann auch für andere Betriebssysteme gesagt werden, a...
Kostenlose und Open-Source-Spiele-Engines für die Entwicklung von Linux-Spielen
Dieser Artikel behandelt eine Liste von kostenlosen und Open-Source-Spiele-Engines, die für die Entwicklung von 2D- und 3D-Spielen unter Linux verwend...