LAMP Server mit Debian 10 und Virtual Box Tutorial – Teil 2
Im zweiten Teil meiner LAMP Server mit Debian 10 und Virtual Box Tutorial Artikelreihe wird die zuletzt aufgesetzte virtuelle Maschine konfiguriert. Ich zeige wie man den Webserver installiert und konfiguriert.
LAMP Server mit Debian 10 und Virtual Box Tutorial – Teil 2
Software wird unter Debian Linux idealerweise über den Paketmanager gezogen. Das ist in dieser Distribution apt. Bevor man darüber Software installiert ist es immer ratsam die Paketquellen zu aktualisieren und das System auf den aktuellen Stand zu bringen. Beides geht mit folgenden Kommandos:
1 2 | su apt update && apt upgrade |
Schritt 3 Webserver
Nach L (Linux) ist A der zweite Buchstabe in der Reihe vom LAMP. Damit ist der Apache Webserver gemeint. Diesen installiert man mit folgendem Kommando:
1 | apt install apache2 |
Bei mir war der Webserver bereits installiert, da ich ihn bereits bei der Linux Installation ausgewählt habe. Den Erfolg der Installation kann man sofort über den Browser unter Angabe der IP Adresse der virtuellen Maschine prüfen:
Sofern der Webserver läuft zeigt der Browser die Default Page mit Informationen zur Konfiguration. Auf der Kommandozeile hat man folgende Möglichkeiten die Ausführung des Webservers zu steuern:
1 2 | systemctl start apache2.service systemctl stop apache2.service |
startet oder stoppt den Webserver.
1 | systemctl restart apache2.service |
startet den Webserver neu
1 | systemctl reload apache2.service |
lädt die Konfiguration neu
1 | systemctl status apache2.service |
zeigt auf der Kommandozeile den Status des Webservers an und ist immer die erste Anlaufstelle bei einem Problem.
Die Webseite die aktuell ausgegeben wird findet man unter /var/www/html
Das ist eine simple index.html Seite die von den Besitzrechten her root gehört. Im einfachsten Fall könnten wir nun diese mit der Webseite tauschen die wir bearbeiten möchten, bräuchten da aber auch root Rechte. Das ist ganz schlecht! Üblicherweise legt man für das Hosting einer Webseite einen eigenen Benutzer an und erstellt eine Konfiguration die auf dessen Heimatverzeichnis (oder einen www Unterordner) verweist in dem dieser Benutzer dann seine Daten mit seinen Besitzrechten ablegt und bearbeitet. So kann man auf einem Webserver beliebig viele Benutzer und Webseiten anlegen und hosten. Da ich bereits einen nicht root Benutzer werner habe werde ich nun in dessen Heimatverzeichnis einen Ordner für die Webseite einrichten:
1 2 3 | mkdir www cd www nano index.html |
Der Inhalt der index.html Seite ist eine ganz einfache HTML Seite mit einem aussagekräftigen Text. Sofern wir diesen im Browser sehen haben wir die Konfiguration korrekt erledigt.
Jetzt muss die Konfiguration von Apache noch so geändert werden, damit dieser auf das neue Verzeichnis zeigt. Das geht wie folgt:
Nach der Änderung reicht ein Reload der Konfiguration:
1 | systemctl reload apache2.service |
Der Unterschied zwischen Reload und Restart ist für diesen Fall nicht groß, die Auswirkung zeigt sich aber bei einem laufenden System mit zig Webseiten in einer kurzen Downtime (Restart) oder keiner Downtime (Reload)! Der erste Test der Seite endet in einem 403 Forbidden Fehler:
Bei der Konfiguration mit Apache2 wird man als ungeübter Benutzer sehr oft auf solche Fehler treffen. Der Webserver sollte so restriktiv wie möglich konfiguriert werden, damit man nicht ein Einfallstor öffnet damit Angreifer das System infiltrieren. Im aktuellen Fall ist das Problem, dass der Apache Benutzer unter dem das Service läuft keine Berechtigungen hat das Webroot Verzeichnis zu lesen. Bei der Fehlersuche sind die Logs hilfreich, diese zeigen gute Fehlermeldungen die man im schlimmsten Fall googlen kann. In meinem Fall:
AH01630: client denied by server configuration
Das heißt das Verzeichnis ist nicht lesbar, aber nicht weil die Dateirechte nicht passen, sondern weil es die Serverkonfiguration untersagt. Zum Glück können wir diese ja anpassen:
1 | systemctl reload apache2.service |
Und damit ist das Problem behoben. HTML Seiten werden angezeigt, eventuell müssen wir später noch Anpassung für die Ausführung von PHP Script Dateien hinzufügen.
Fazit
Die Konfiguration von Apache2 ist recht simpel (nur eine Datei pro Webseite), die Möglichkeiten die man hat sind aber sehr groß. Aus dem Grund stolpert man schnell über Fehlermeldungen und nicht korrekte Konfigurationen. Den Webserver sollte man sehr umsichtig aufsetzen, denn ein Fehler führt schnell zu einem von Hackern übernommene Webseite!
Teil 1 | Teil 2 | Teil 3 | Teil 4