Praxis: Linux Web-Server einrichten (LAMP)

Für alle die einen eigenen Webserver mit Linux (kurz LAMP) einrichten wollen, habe ich die Einrichtung meines neuen vServers mal dokumentiert. Dieser Bericht dient als Praxisbericht und kann ruhig zum nachmachen genutzt werden. Wer Fehler bei der Einrichtung findet, der kann dies ruhig anmerken. Ich bin über jede Art von Kritik offen und freue mich über jede Form von Feedback.

Ich gehe hierbei davon aus, dass man ein komplett nacktes Linux hat, lediglich der SSH-Dienst und ein VI oder vergleichbarer Texteditor sollte bereits installiert sein. Die meisten vServer werden von den Hostern in dieser Form geliefert. Punkte die Ihr jedoch nicht für notwendig haltet, können übersprungen werden.

Für den Bericht verwende ich Debian Linux. Die Installation unter Ubuntu ist ähnlich einfach (wie auch unter Kubuntu und Xubuntu). Es ist jedoch möglich auch andere Linux-Varianten zu verwenden. Bitte beachtet jedoch, dass dann nicht alle Schritte identisch abgearbeitet werden können. Der Webserver besteht nach erfolgreicher Installation aus den klassischen Bestandteilen einer LAMP Installation, also Linux, Apache, PHP und MySQL. Am Ende erkläre ich außerdem die Installation von PHPMyAdmin, einem Datenbankverwaltungstool für MySQL.

Benutzer anlegen und root SSH-Login deaktivieren

Da bei den meisten vServern lediglich der root-Account von Linux existiert, sollte als erstes ein normaler User erstellt werden. Mit diesem kann am Server normal gearbeitet werden. Den User kann man nutzen um Logfiles auszuwerten, Applikationsspezifische Konfigurationen vorzunehmen oder um Housekeeping-Aufgaben zu erledigen.
Den root-Account des Linux-Systems sollte man nicht für normale Arbeiten am Linux nutzen. Falls man dies tut, gefährdet man das System zu zerstören. Eine Neuinstallation wäre dann notwendig.

Um den User zu erstellen wird das Kommando useradd verwendet. Mit passwd kann man anschließend das Kennwort für den User anpassen.

useradd -m nico
passwd nico

Anschließend sollte man testen ob man sich von extern mit dem neuen User am Server anmelden kann. Wenn das geklappt hat, dann sollte der root Zugang über SSH gesperrt werden. Es ist vermutlich eine der wahrscheinlichsten Möglichkeiten, weswegen Server durch Eindringlinge gekapert werden.
Um den SSH Zugang für den Root Account zu sperren sind lediglich zwei Schritt notwendig. Zum einen, muss man in der Konfiguration den SSH-Root-Login verbieten, zum anderen den SSH-Dienst von Linux neu laden.
Der Wert PermitRootLogin muss in der Datei /etc/ssh/sshd_config auf “no” gestellt werden. (Siehe Screenshot)

Anschließend muss der SSH-Dienst neu geladen werden.

/etc/init.d/sshd reload

Wenn ihr das gemacht habt, dann kann getestet werden, ob der root Login noch möglich ist. Das sollte dann nicht mehr der Fall sein. Wenn es mal doch notwendig wird den root-User zu verwenden, zum Beispiel bei Installation von Software, dann könnt ihr zum root werden, indem ihr das Kommando su verwendet. Dabei muss dann das Kennwort des root-Users eingegeben werden.


shell> su
Password:

So “werdet” ihr zum root. Mit exit verlasst ihr diesen Modus wieder.

Theoretisch könnte man bei der Absicherung des Systems noch mehr Einstellungen vornehmen. Es können beispielsweise nur bestimmte User für die Anmeldung über SSH freigeschaltet werden. Die Option hierzu lautet AllowUsers und ist ebenfalls in der /etc/ssh/sshd_config vorzunehmen.

Webserver installieren

Den eigentlichen Webserver installieren wir in den folgenden Schritten. Zu aller erst sollten sämtliche Paketlisten aktualisiert werden. Das wird mit folgendem Kommando durchgeführt:

apt-get update

Als nächstes kann bereits der eigentliche Webserver installiert werden. Dieser wird nach der Installation bereits Anfragen aus dem Netzwerk bzw. Internet beantworten können.

apt-get install apache2

Auf die Frage, ob Ihr fortfahren wollt könnt ihr ruhig mit Ja (Do you want to continue [Y/n]? Y) antworten.
Sobald der Apache vollständig installiert ist, kann der neue Webserver bereits aufgerufen werden. Hier wird dann eine Standardseite, mit dem Text “It works!” angezeigt. Siehe Screenshot. Wenn das alles soweit geklappt hat kann die Installation mit der Einrichtung von PHP und MySQL forgesetzt werden. Um PHP vollständig einzurichten sind mehrere Pakete notwendig, wenn diese jedoch installiert sind, dann ist PHP bereits vollständig eingerichtet und kann verwendet werden.

apt-get install libapache2-mod-php5 php5-cli php5-common php5-cgi

Anschließend wird das Datenbank Management System MySQL installiert. Dieses wird wieder mit apt-get installiert.

apt-get install mysql-server php5-mysql

Währrend der Installation muss das root-Passwort der MySQL Datenbank festgelegt werden. Bitte beachtet, dass dieses Passwort NICHT das root Passwort des Betriebssystems ist. Da durch den root Zugang totaler Vollzugriff auf die Datenbank gewährt wird, sollte das Passwort möglichst sicher gewählt werden. Des Weiteren ist es empfehlenswert den root-User NICHT für irgendwelche Applikationen auf dem Server zu wählen.

Nach dem letzten Schritt sind grundsätzlich alle notwendigen Pakete installiert. Nun muss nur noch der Apache durchgestartet werden, so dass auch alle Installationen aktiv werden.

/etc/init.d/apache2 restart

Wenn dies installiert wird, dann kann im DocumentRoot (Standard /var/www) des Apache ein PHP File abgelegt werden. Folgenden Inhalt sollte das File haben:

<?php
phpinfo();
?>

Wenn Sie diese Datei im Browser aufrufen, dann sollte die PHP Infoseite angezeigt werden. Nun ist der Webserver voll funktionionsfähig. PHP Anwendungen können nun ausgeführt werden.

Einrichtung von PHPMyAdmin

Um die MySQL Datenbank verwalten zu können sollte neben den bereits installierten Anwendungen noch ein Datenbankverwaltungstool installiert werden.  Hierzu bietet sich in der Regel die Anwendung phpmyadmin an. Dieses kann ebenfalls über die Debian Paketverwaltung installiert werden.

apt-get install phpmyadmin

Währrend der Installation von phpmyadmin muss man den installierten Webserver auswählen. Das ist wichtig, da phpmyadmin direkt konfiguriert wird. So hat man die Möglichkeit, die Datenbanken direkt nach der Installation zu verwalten. Via http://servername/phpmyadmin kann die Anwendung aufgerufen werden. Beim Login muss als Username root und als Passwort das MySQL Root Passwort verwendet werden. Dieses wurde oben bei der MySQL Installation gesetzt.

TIPP: Verwendet im PHPMyAdmin nie den root-Account. Legt euch lieber, nach dem ersten Login, einen seperaten User an. Mit diesem könnt ihr alle Daten lesen, verwalten, löschen und erstellen. Außerdem solltet ihr für jede Anwendung, die auf den MySQL-Server zugreift, einen seperaten User mit eigener Datenbank verwenden.

Die Installation von dem LAMP System ist im Grunde genommen bereits abgeschlossen. Der Server kann nun auf die eigenen Bedürfnisse angepasst werden. Außerdem sollten noch einige Konfigurationen im Apache, PHP und MySQL vorgenommen werden. Insbesondere Sicherheitsrelevante Einstellungen sind hier teilweise noch notwendig. Bitte habt Verständnis, dass ich hier nicht auf alle Tricks und Kniffe eingehen kann. Sobald es geht werde ich allerdings seperate Artikel zu dem Thema veröffentlichen.

Wenn etwas nicht genau so funktioniert, wie in dem Artikel beschrieben, dann gebt mir bitte Feedbackt. Ich will versuchen zu unterstützen.