Einen Apache2 Webserver unter Linux Debian einrichten.
Immer notwendig, wenn der Dienst nach „außen“ (ins Internet) kommunizieren muss. Die gängigsten Beispiele sind hier die Website, das Forum oder zB eine Cloud, welche auf einem vServer eingerichtet wurde und dessen Interface über eine http / https Verbindung erfolgt.

 

Los gehts!
Nach einem Login wird der Webserver mit dem Befehl apt install apache2 installiert.

Im Regelfall ist der Webserver selten alleine als Dienst anzutreffen.
Bei Foren, Blogs oder anderen Anwendungen, bei denen z.B. Registrierungen vorgenommen werden (zum Beispiel die Registrierung von Benutzern in einem Forum), ist meistens noch eine Datenbank installiert, in welche die entsprechenden Einträge geschrieben und verwaltet werden.

In diesem Fall wird nur ein Webserver installiert, ohne eine dahinterhängende Datenbank. Dies ist zum Beispiel dann der Fall, wenn eine Website auf reiner HTML / CSS Basis auf dem Webserver läuft.
Sobald das Paket installiert wurde, ist der Webserver bereits fertig installiert.

Zugegebenermaßen, die Installation ist recht überschaubar und ohne Linux Kenntnisse rasant durchführbar.

Wichtig ist, nach jeder Konfiguration den Apache Dienst neu zu starten. Dies geschieht mit dem Befehl service apache2 restart.

Das öffentliche Verzeichnis des Webdienstes ist unter „/var/www/html“ zu finden. Sprich, alles was in dem Verzeichnis „html“ zu finden ist, wird über den Webserver ins Internet publiziert.

Entsprechend kann eine Baumstruktur aufgebaut werden und festgelegt werden, welcher Service in welchem Verzeichnis läuft und abrufbar ist.
Eine Möglichkeit ist die Konfiguration von VirtualHosts. Hier wird darauf jedoch verzichtet.

Nach der Installation des Apache2 Webservers, wie oben beschrieben, befindet sich eine „index.html“ Datei in dem Verzeichnis „html“. Sodass, wenn nun die IP / FQDN des Servers im Browser eingegeben wird, diese Seite erscheint.

Inhalt bearbeiten
Zunächst wird die Index Datei bearbeitet, um das vorgehen zu veranschaulichen. Dazu:
nano /var/www/html/index.html als Befehl absetzen. Den Inhalt löschen und einen beliebigen Text eingeben. Anschließend die Datei abspeichern und den Webserver im Browser aufrufen:

(Bild in neuem Tab öffnen, um die volle Größe zu sehen)

In diesem Fall habe ich folgenden Inhalt (HTML) in die index.html geschrieben:

<head>
<title>MK-Hosting Webserver</title>
</head>
Wenn man das hier lesen kann, wurde bis hier alles richtig gemacht :)
<p>
<p>
<center>Dieser Text und der Banner sind mittig gesetzt.
<br>
<img src="https://www.mk-hosting.net/images/promo/banner/728x210.png"></center>
<p>
<p>
Und hier geht es wieder normal weiter

 

Tipp: Das die Verbindung als „Nicht sicher“ definiert wird, hängt damit zusammen, dass der Zugriff über Port 80 (http) und nicht über Port 443 (https) erfolgt.
Die Installation eines Zertifikates wird in einer anderen Anleitung beschrieben.

Der Webserver Dienst bietet jedoch nach der Installation ist seiner Standard Konfiguration eine große Angriffsfläche.
Im folgenden 3 grundlegende Änderungen nach der Installation des Webservers, um diesen abzusichern.

Den Header anpassen
Bei einer Anfrage einer Website stehen im Header dieser Website zahlreiche Informationen. Unter anderem den Namen, die Versionsnummer und Angaben zu Modulen.
Im folgenden dazu ein Screenshot:

Zu sehen ist der Port (80 – http), dass Protokoll (tcp), der Name des Dienstes (Apache httpd) des Webservers, die Version des Websevers (2.4.25), dass Betriebssystem (Debian), auf welchem der Webserver läuft, die Methoden und der Titel der Website, welcher bereits weiter oben konfiguriert wurde.

Zunächst mit nano /etc/apache2/conf-available/security.conf die Datei bearbeiten und den Parameter „ServerTokens OS“ zu „ServerTokens Prod“ abändern, sowie den Eintrag „ServerSignature Off“ aktivieren. Dazu lediglich die Ausklammerung (#) entfernen.

Diese beiden Parameter sind dafür da, um Informationen im Header und die Version auf generierten Seiten (z.B. einer „Not found“ Seite) anzugeben bzw. nicht anzugeben.

Modul installieren
Eine weitere effektive Art, den Webserver abzusichern, ist die Installation eines Moduls.
Mit diesem Modul werden Massenhafte Zugriffe in kurzer Zeit blockiert.

Mit dem Befehl apt install libapache2-mod-evasive wird das Modul installiert. Nach der Installation erscheint folgende Meldung:
apache2_invoke: Enable module evasive

In der Regel ist das Modul automatisch aktiviert und ohne weitere Einstellungen Einsatzbereit.
Um zu überprüfen, ob das Modul aktiviert ist, den Befehl apachectl -M eingeben. Es folgt eine Auflistung der aktivierten Module.

Modul testen
Das soeben installierte Modul lässt sich sehr einfach testen. Dazu einfach auf die Website navigieren und häufig hintereinander die Seite aktualisieren (F5). Nach wenigen malen wird die IP Adresse temporär auf eine Blacklist geschrieben, sodass der Verbindungsaufbau nicht durchgeführt werden kann. Es erscheint folgende Fehlermeldung:

Nach wenigen Sekunden ist die IP Adresse wieder freigegeben und die Seite kann wieder aufgerufen werden.

 

Nach diesen Konfigurationen sollte die Absicherung durchaus noch weiter angepasst werden, um die Sicherheit und Performance zu erhöhen! Von Modulen bis hin zu verschiedenen Einstellungen gibt es sehr viele Möglichkeiten, die optimale Konfiguration zu erstellen.

Kategorien: Anleitungen