GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Sichern Sie Ihren Apache-Webserver Best Practice

Einführung

Apache ist der beliebteste Webserver im Internet. Und es ist ideal für die meisten Situationen und ermöglicht Flexibilität für gemeinsam genutzte Umgebungen. In diesem Tutorial erfahren Sie, wie Sie einen Apache sichern Webserver. Für dieses Tutorial verwenden wir Centos 8. Das Apache-Installations-Tutorial finden Sie hier. Wir werden sehen, wie man Apache ändert Konfiguration auch auf Ubuntu/Debian-Systemen.

1. Halten Sie Apache auf dem Laufenden

Melden Sie sich mit einem root- oder sudo-privilegierten Benutzerkonto beim System an. Überprüfen Sie den Apache Version, indem Sie den folgenden Befehl ausführen.
httpd -v

2. Informationen zur Apache-Version und zum Serverbetriebssystem ausblenden .

Das erste, was wir berücksichtigen müssen, da wir nicht offenlegen möchten, welche Webserver-Version wir in unserem System verwenden. Das Offenlegen von Versions- und Betriebssysteminformationen bedeutet, dass wir Hackern dabei helfen, den Angriffsprozess schnell zu gestalten. Im Bild unten sehen wir diesen Apache zeigt seine Version mit dem installierten Betriebssystem auf unserem Server.

Um Apache zu verhindern Um seine Versions- und Betriebssysteminformationen nicht preiszugeben, müssen wir Apache ändern 's Hauptkonfigurationsdatei. Öffnen Sie die Konfigurationsdatei, indem Sie den folgenden Befehl ausführen-

nano /etc/httpd/conf/httpd.conf
nano /etc/apache2/apache.conf (Ubuntu / Debian)

Fügen Sie nun die beiden folgenden Anweisungen zur Hauptkonfigurationsdatei hinzu und speichern Sie sie.

ServerTokens Prod
ServerSignature Off

Und starten Sie Apache neu Server durch Ausführen des folgenden Befehls-

systemctl restart httpd.service

Wie wir im Bild unten sehen können, ist der Apache Version wird nicht angezeigt, und Betriebsinformationen sind ebenfalls nicht sichtbar.

3. Deaktivieren Sie die Verzeichnisindizierung

Standardmäßig Apache zeigt den gesamten Inhalt des Webroot-Verzeichnisses an, wenn keine Indexdatei vorhanden ist. Wie das Bild unten,

Um die Verzeichnisindizierung in einem Browser zu verhindern, müssen wir die Optionsdirektive im Apache ändern Konfigurationsdatei. Öffnen Sie die Konfiguration und ändern Sie den Eintrag wie folgt.

<Directory /var/www/html>
    Options -Indexes
</Directory>

Öffnen Sie nun den Browser und geben Sie IP oder URL in die Adressleiste ein. Und wir sehen ein Bild wie unten

4. ETag deaktivieren

Tag wird in HTTP-Headern verwendet, um das Web-Caching-Verhalten zu verwalten. Allerdings Etag kann Sicherheitsprobleme verursachen. Es ermöglicht entfernten Angreifern, vertrauliche Informationen wie Inode-Nummer, MIME-Typ und Verarbeitung über ETag abzurufen Header. Um Angriffe und Informationslecks zu verhindern, fügen Sie Apache die folgende Anweisung hinzu Aufbau.

Um dies zu erreichen, fügen Sie einfach die folgende Zeile zu Apache hinzu Konfigurationsdatei und starten Sie den Apache neu .

FileEtag None

5. Deaktivieren Sie CGI und SSI

SSIs (Server-Side Includes) sind Anweisungen, die verwendet werden, um eine HTML-Seite mit dynamischen Inhalten zu schreiben, und CGI wird verwendet, um schädliche Skripte in Ihren Webcode einzufügen. Schränken Sie CGI und SSI ein, indem Sie die folgenden Optionsanweisungen zur Apache-Konfiguration hinzufügen:

Options -Includes -ExecCGI

6. Beschränken Sie den Verzeichniszugriff

Es ist ein bewährtes Sicherheitsverfahren, den Zugriff auf das Webroot-Verzeichnis mithilfe von Zulassen und Verweigern einzuschränken Syntax. Nehmen Sie dazu die folgenden Änderungen im Apache vor Konfigurationsdatei. Öffnen Sie die Konfigurationsdatei und den Server für Verzeichnis block und schreiben Sie die Verzeichnisdirektive wie folgt und speichern Sie sie. Starten Sie jetzt den Apache neu, um die Effekte zu ändern

<Directory />
   Options None
   Order deny,allow
   Deny from all
</Directory>

Die obige Einstellung verweigert Anfragen von jedem an das Stammverzeichnis. Niemand kann auf das Stammverzeichnis zugreifen.

7. Sichern Sie Apache mit Mod_Security

Mod_security ist ein Sicherheitstool, das als Firewall für Websites oder Anwendungen fungiert. Es hilft, Websites oder Anwendungen vor UN-autorisiertem Zugriff und auch vor Brute-Force-Angriffen zu schützen. Installieren Sie mod_security, indem Sie den folgenden Befehl ausführen, und starten Sie Apache neu, um mit mod_security zu arbeiten.

dnf -y install mod_security

8. Definieren Sie HTTP-Anfragemethoden

Im aktuellen HTTP Protokoll sind viele Anfragen nicht erforderlich, und einige bergen ein Sicherheitsrisiko. Es ist jedoch hübsch genug für eine Webanwendung, GET zuzulassen , KOPF und POSTEN Anfragemethoden. Wir können diese Einstellung konfigurieren, indem wir die entsprechende Directory-Direktive hinzufügen. Öffnen Sie dazu den Apache Konfigurationsdatei, suchen Sie nach Directory und fügen Sie die folgende Inside-Anweisung hinzu und starten Sie Apache neu

<LimitExcept GET POST HEAD>
deny from all
</LimitExcept>

9. XSS Protection Header aktivieren

Cross-Site-Scripting wird als (XSS) bezeichnet und ist eine häufige Schwachstelle in Webanwendungen. Cross-Site Scripting (XSS)-Schutz kann in vielen Browsern überspringen. Wir können jedoch einige XSS-Angriffe verhindern, indem wir den folgenden Eintrag zu unserem Apache hinzufügen Konfigurationsdatei und speichert sie. Und starten Sie den Apache neu Server.

Header set X-XSS-Protection "1; mode=block"

Überprüfen Sie nun den Anfrage-Header im Browser-Entwicklertool, wir können im Bild unten sehen, dass dieser Header erfolgreich implementiert wurde.

10. HTTP-Anfrage TRACE deaktivieren

Standardmäßig wird Trace HTTP Request in Apache geöffnet um Cross-Site Tracing zu ermöglichen. Diese Option ermöglicht es einem Hacker, Cookie-Informationen einfach zu stehlen. Um dies zu verhindern, fügen Sie dem Apache die folgenden Parameter hinzu Konfigurationsdatei. Und starten Sie Apache neu .

TraceEnable off

11. Clickjacking-Angriffe verhindern

Clickjacking , auch bekannt als „User Interface Redress Attack“, ist eine bösartige Technik, um die Klicks eines infizierten Benutzers zu sammeln. Clickjacking verleitet das Opfer (Besucher) dazu, auf eine infizierte Website zu klicken. Um diesen Vorfall zu verhindern, müssen wir „X-FRAME-OPTION“ im Apache verwenden Konfigurationsdatei. Fügen Sie dazu in der Konfigurationsdatei die folgende Zeile hinzu.

Header set X-FRAME-OPTIONS "SAMEORIGIN"

Überprüfen Sie nun den Anforderungsheader im Browser-Entwicklertool, da wir sehen können, dass wir X-FRAME-OPTIONS erfolgreich auf dem Apache hinzugefügt haben Konfigurationsdatei.

13. Sicheres Cookie mit HTTPOnly-Flag

Ohne HttpOnly und Secure ist es möglich, Sitzungen und Cookies von Webanwendungen zu stehlen oder zu manipulieren, und es ist gefährlich. Um dies abzumildern, müssen wir sicherstellen, dass der mod_header Modul läuft serverseitig.

apachectl -M | grep header

Im obigen Bild können wir sehen, dass das mod_header-Modul in Apache geladen und aktiviert wurde . Fügen Sie nun die folgende Zeile in der Hauptkonfigurationsdatei von Apache hinzu und starten Sie den Apache neu Server.

Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure

14. Anfragegröße begrenzen

Standardmäßig ist die HTTP-Anforderung in Apache ist unbegrenzt; Daher ist der Webserver anfällig für DoS-Angriffe, indem er für die hohe Anzahl von Anfragen offen gehalten wird. Dann ist es wichtig, das Limit für die Dateianforderung festzulegen. Dies kann durch Hinzufügen des LimitRequestBody erfolgen Direktive im Apache Konfigurationsdatei.

Beispielsweise ist unixcop ein Verzeichnis, das Dateien enthält, die von Benutzern hochgeladen wurden. Jetzt begrenzen wir die Upload-Größe auf 2 KB damit der Benutzer keine Datei mehr als diese hochladen kann.

<Directory "/var/www/html/unixcop">
LimitRequestBody 20000
</Directory

Schlussfolgerung

Aus diesem Tutorial haben wir gelernt, wie wir unseren Apache-Server vor Angreifern schützen können. Ich hoffe, unser Artikel wird Ihnen helfen, Ihren Server zu schützen. Sie können auch meinen anderen Artikeln folgen.


Linux
  1. So konfigurieren Sie einen Apache-Webserver

  2. Optimieren von Apache Web Server Keepalive

  3. Installieren Sie den Apache-Webserver auf openSUSE 12

  4. Installieren Sie den Apache-Webserver auf Ubuntu 12.10

  5. So installieren Sie den Apache-Webserver unter Ubuntu

So installieren Sie den Apache-Webserver unter Linux

Die 11 besten Möglichkeiten, Ihren SSH-Server zu sichern

So hosten Sie eine Website auf einem Apache-Webserver

So installieren Sie den Apache-Webserver unter Debian 11

Apache vs. Nginx:Welcher Webserver ist der beste für Sie?

Sichern Sie Ihren Apache-Webserver mit Mod Security