Dieser Artikel ist Teil der Apache Server Guide-Reihe:

  • Sicherung von Apache auf Ubuntu - Teil 1
  • Sicherung von Apache auf Ubuntu - Teil 2
  • Apache-Performance optimieren - Teil 1
  • Apache Performance optimieren - Teil 2
  • Einrichten von namensbasiertem Virtualhost Apache
  • Einrichten von IP und Port-Based Virtualhost in Apache
  • So richten Sie das Kennwortschutz-Webverzeichnis in Apache ein
  • Einrichten von Apache Server mit SSL-Unterstützung unter Ubuntu
  • Einrichten von Fail2ban, um Apache vor einem DDOS-Angriff zu schützen
  • Wie man Webdav mit Apache auf Ubuntu einrichtet
  • Überwachen Sie Apache Web Server mit Mod_status
  • So schützen Sie sich gegen DDoS mit Mod_evasive auf Apache Server

Apache ist einer der am häufigsten verwendeten und beliebtesten Webserver der Welt und versorgt fast 40% aller Server der Welt. Wenn Sie als Webmaster oder Administrator einen Apache-Server betreiben, ist es wichtig, dass Sie wissen, wie Sie Apache schützen und verhindern, dass es gehackt wird. In diesem Artikel werden einige Tipps und Tricks beschrieben, mit denen Sie Ihren Apache-Server schützen können.

Hinweis : Wir verwenden Ubuntu 14.04 für dieses Tutorial.

Installieren und aktualisieren Sie Apache

Zuerst müssen Sie Apache auf Ihrem System aktualisieren und installieren.

Führen Sie dazu den folgenden Befehl aus:

 sudo apt-get Aktualisierung sudo apt-get install apache2 

Apache-Version ausblenden

Standardmäßig zeigt Apache die Version Ihres Apache-Webservers an, die auf Ihrem System mit dem Namen des Betriebssystems Ihres Servers installiert ist.

Im obigen Screenshot sehen Sie die Apache-Version und das auf Ihrem Server installierte Betriebssystem. Dies kann ein großes Sicherheitsproblem für Ihren Webserver darstellen. Um diese Informationen zu verbergen, müssen Sie die Hauptkonfigurationsdatei von Apache bearbeiten ("/etc/apache2/conf-enabled/security.conf").

 sudo nano /etc/apache2/conf-enabled/security.conf 

Hinzufügen / bearbeiten Sie die folgende Zeile:

 ServerSignature Aus ServerTokens Prod 

Speichern Sie die Datei und starten Sie den Apache-Dienst neu.

 sudo /etc/init.d/apache2 neustarten 

Deaktivieren Sie das Durchsuchen von Verzeichnissen und deaktivieren Sie symbolische Links

Standardmäßig ist die Verzeichnisliste auf dem Apache-Server aktiviert. Die Verzeichnisliste zeigt das gesamte Verzeichnis mit allen Dateien vom Apache-Server an. Wenn dies aktiviert ist, kann ein Angreifer problemlos jede Datei anzeigen, analysieren und sensible Informationen zu einer Anwendung abrufen.

Sie können die Standardverzeichnisliste im Bild unten sehen.

Sie können diese Einstellung deaktivieren, indem Sie die Apache-Konfigurationsdatei bearbeiten.

 sudo nano /etc/apache2/apache2.conf 

Hinzufügen / bearbeiten Sie die folgende Zeile:

 Optionen -FollowSymLinks AllowOverride None Erfordert alle gewährt 

Hinweis : Der obige Code setzt voraus, dass Ihre Webseiten aus dem Ordner "/ var / www / html" bereitgestellt werden. Wenn Sie den öffentlichen Ordner in einen benutzerdefinierten Speicherort geändert haben, ändern Sie den Directory im obigen Code.

Die Zeile Options -FollowSymLinks deaktiviert auch symbolische Links. Wenn Sie symbolische Links aktivieren möchten, entfernen Sie das Zeichen "-" vor FollowSymLinks, sodass es zu Options FollowSymLinks.

Speichern Sie die Datei und starten Sie den Apache-Server neu.

Versuchen Sie anschließend, das Web in einem Browser zu besuchen, und Sie erhalten einen verbotenen Fehler, der im folgenden Bild angezeigt wird.

Deaktivieren Sie nicht benötigte Module

Standardmäßig enthält Apache mehrere installierte Module, die für den normalen Gebrauch nicht benötigt werden. Es wird empfohlen, das Fett zu trimmen und alle unnötigen Module zu deaktivieren. Sie können alle aktivierten Module auf Ihrem Server mit dem folgenden Befehl auflisten:

 sudo ls / etc / apache2 / mods-aktiviert / 

Dies zeigt die Ausgabe wie im folgenden Bild gezeigt.

Von den oben aufgeführten Modulen sind einige Module wie "Status" und "Autoindex" aktiviert, werden aber nicht benötigt.

Sie können diese Module mit dem folgenden Befehl deaktivieren:

 sudo a2dismod autoindex sudo a2dismode status sudo /etc/init.d/apach2 neu starten 

Verwenden Sie ModSecurity

Mod Security ist ein kostenloses Apache-Modul, das Ihren Webserver vor verschiedenen Angriffen wie SQL-Injection, Cross-Site-Scripting, Session-Hijacking, Brute-Force und vielen anderen Exploits schützt. Außerdem können Sie den Datenverkehr in Echtzeit überwachen.

Sie können die Mod-Sicherheit mit dem folgenden Befehl installieren:

 sudo apt-get installieren libapache2-modsecurity 

Verwenden Sie den folgenden Befehl, um zu überprüfen, ob das mod_security-Modul ausgeführt wird:

 sudo apachectl -M | Grep - Farbsicherheit 

Das Bild unten zeigt an, dass das Modul geladen wurde.

Um die mod_security-Regeln zu aktivieren, müssen Sie die empfohlene Konfigurationsdatei für mod-Sicherheit umbenennen und bearbeiten und die Option SecRuleEngine auf On .

Führen Sie dazu den folgenden Befehl aus:

 sudo mv /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf sudo nano /etc/modsecurity/modsecurity.conf 

Hinzufügen / bearbeiten Sie die folgende Zeile:

 SecRuleEngine Ein 

Starten Sie Apache neu, damit die Änderungen wirksam werden.

Es gibt viele Sicherheitsregeln, die mit Modesecurity (Core Rule Set) geliefert werden und sich im Verzeichnis "/ usr / share / modsecurity-crs" befinden. Jetzt müssen Sie diese Regeln aktivieren, damit Apache funktioniert.

Sie können dies tun, indem Sie die Datei "/etc/apache2/mods-enabled/security2.conf" bearbeiten.

 sudo nano /etc/apache2/mods-enabled/security2.conf 

Hinzufügen / bearbeiten Sie die folgende Zeile:

 IncludeOptional /etc/modsecurity/*.conf IncludeOptional "/usr/share/modsecurity-crs/*.conf" IncludeOptional "/usr/share/modsecurity-crs/base_rules/*.conf 

Speichern Sie die Datei und starten Sie Apache neu.

Deaktivieren Sie Server Side Includes und CGI-Ausführung.

Es wird empfohlen, serverseitige Includes und CGI-Ausführung zu deaktivieren, wenn sie nicht benötigt werden.

Um dies zu tun, müssen Sie die Hauptkonfigurationsdatei von Apache bearbeiten.

 sudo nano /etc/apache2/apache2.conf 

Hinzufügen / bearbeiten Sie die folgende Zeile:

 Optionen -FollowSymLinks -Include -ExecCGI AllowOverride None Erfordert alle gewährt 

Speichern Sie die Datei und starten Sie Apache neu.

Sie können dies auch für ein bestimmtes Verzeichnis tun. Um beispielsweise serverseitige Includes und CGI-Dateiausführungen für das Verzeichnis "/ var / www / html / webdir1" zu deaktivieren, bearbeiten Sie ddd / die folgende Zeile:

 Optionen -Inklusive -ExecCGI 

Speichern Sie die Datei und starten Sie Apache neu.

Große Anfragen beschränken

Standardmäßig hat Apache kein Limit für die Größe der HTTP-Anfrage. Dadurch kann ein Angreifer eine große Datenmenge senden. Apache verfügt über mehrere Direktiven, mit denen Sie eine korrekte Anforderungsgröße festlegen können. Dies schützt Ihren Webserver vor einem Denial-of-Service-Angriff.

Sie können den Wert von 0 (unbegrenzt) bis 2147483647 (2GB) in der Hauptkonfigurationsdatei von Apache einstellen.

Beschränken Sie beispielsweise die Anforderungsgröße des Verzeichnisses "/ var / www / html / webdir1" auf 200 KB.

 sudo nano /etc/apache2/apache2.conf 

Hinzufügen / bearbeiten Sie die folgende Zeile:

 LimitRequestBody 204800 

Speichern Sie die Datei und starten Sie Apache neu.

Deaktivieren Sie das Browsen außerhalb des Dokumentstamms

Es wird empfohlen, dass Apache nur auf das Dokumentenstammverzeichnis zugreifen kann. Sie können das Stammverzeichnis (/) sichern, indem Sie folgende Zeile setzen:

 sudo nano /etc/apache2/apache2.conf 

Hinzufügen / bearbeiten Sie die folgende Zeile:

 Optionen Keine Reihenfolge verweigern, Ablehnen von allen zulassen 

Dies ist, was der Code tut:

  • Options None : Dadurch werden alle Optionen deaktiviert.
  • Order deny, allow : Die Reihenfolge, in der die Befehle allow und deny angewendet werden.
  • Deny from all verweigern: Dies verweigert eine Anfrage von allen an das Stammverzeichnis.

Speichern Sie die Datei und starten Sie Apache neu.

Halte Apache auf dem Laufenden

Neue Apache-Updates enthalten neue Fixes und Patches, die die Sicherheitslücke Ihres Apache-Servers verringern. Daher wird empfohlen, die neueste Version des Apache-Servers zu verwenden.

Sie können Ihren Apache mit dem folgenden Befehl auf die neueste Version aktualisieren:

 sudo apt-get installieren apache2 --install 

Fazit

Ich hoffe, dieser Beitrag wird Ihnen helfen, Ihren Apache Server zu sichern. In meinem nächsten Beitrag finden Sie weitere Tipps und Tricks zur Sicherheit des Apache-Servers. Fühlen Sie sich frei zu kommentieren, wenn Sie irgendwelche Fragen haben.