Linux Webserver einrichten und betreiben

Hier beschreibe ich eine Möglichkeit wie Ihr Euren eigen Webserver mit Linux einrichten und einigermaßen sicher betreiben könnt.

Wichtig ist, sich darüber im Klaren zu sein, dass die Installation des Servers das Wenigste ist. Wichtiger ist den Server im laufenden Betrieb regelmäßig zu überprüfen und zu warten! Wer dazu keine Lust hat, sollte am Besten gar nicht erst einen eigenen Server betreiben, weil er über kurz oder lang ein Sicherheitsrisiko für sich, seine Benutzer und alles anderen Im Internet darstellt.

Ich beschreibe im Folgenden kurz die Schritte zur Installation unseres Webservers und verweise in den entsprechenden Absätzen auf die jeweilige Detailbeschreibung. Wer es eilig hat oder schon weiß was er will, kann auch im nebenstehenden Kasten direkt auf den Artikel klicken.

Nun fangen wir aber mit der Installation an. Ich gehe davon aus, Ihr habt Euch irgendwo bei einem Hoster einen Server gemietet und bereits ein Ubuntu 16.04 oder 18.04 installieren lassen. Wollt Ihr zuhause einen Server installieren, installiert halt den Minimalen Ubuntu Server mit SSH.

Bitte nehmt für einen Server nur die geraden Ubuntu-LTS-Versionen mit Langzeitsupport!

Nun aber los!

1. ‚root‘ Passwort ändern.

Falls Ihr das Betriebssystem (hier Ubuntu Server 16.04/18.04) selber installiert habt, werdet Ihr schon ein eigenes Passwort vergeben haben. Falls Ihr den Server vorinstalliert vom Hoster übernommen habt, ist der erste Schritt die Einrichtung eines eigenen ‚root‘ Passworts. Wie das geht erfahrt Ihr im Artikel ‚Passwort für Benutzer ‚root‘ ändern

2. Administrative Benutzer einrichten.

Auch dieser Schritt ist wahrscheinlich nicht erforderlich, wenn Ihr Euren Server selber installiert habt. Dann habt Ihr bei der Installation schon einen Hauptbenutzer angelegt, der die Erlaubnis hat mittels ’sudo‘ auch mit ‚root‘ Rechten zu arbeiten. Habt Ihr den Server vom Hoster ist meist nur der Benutzer ‚root‘ vorinstalliert und Ihr solltet einen ‚Administrativen Hauptbenutzer einrichten mit dem Ihr bei Bedarf ‚root‘ Rechte mittels sudo ausüben dürft. Der direkt Zugang von außen (z. B. via SSH) wird für den Hrrn ‚root‘ später aus Sicherheitsgründen gesperrt.

Und hier erfahrt Ihr wie Ihr einen ‚administrativen Hauptbenutzer einrichtet‚.

3. Zertifkatsbasierter Login Hauptbenutzer

Einfach weil es sicherer und komfortabler ist, richten wir den Zugang des Hauptbenutzers so ein, dass ein Zertifikat (= elektronischer Ausweis) mit einem Passwort zur Anmeldung und eindeutigen Identifikation ausreicht.

Wie das im Detail funktioniert erfahrt Ihr im Artikel ‚Zertifikatsbasierten Login für Hauptbenutzer einrichten‚.

4. SSH Server konfigurieren

So, nun ist es Zeit den SSH Server so einzustellen, dass eine direkte Anmeldung des Benutzers ‚root‘ verboten wird und gleichzeitig der Login nur noch über Zertifkate erfolgen darf. Wie das geht, wird im Artikel ‚SSH Server / Deamon konfigurieren‚ beschrieben.

5. System aktualisieren

Nun haben wir ja schon eine einigermaßen sichere Ausgangskonfiguration. Zeit um das ‚System zu aktualisieren‚.

6. Rootkit-Jäger ‚rkhunter‘ installieren

Die Software ‚rkhunter‘ ist eine Art Anti-Schadsoftware-Scanner die sich spezielle auf sogenannte ‚root kits‘ und andere lokale Exploits (Exploits = Sicherheitslücken) prüft. Da die Ausgaben des Programms z. T. techn. Hintergrundwissen verlangt, ist es eigentlich eher etwas für gestandene Admins, aber wir werden uns dem Schritt für Schritt annähern. Zunächst einmal wollen aber den ‚Rootkit- & Exploit-Jäger ‚rkhunter‘‚ installieren.

7. SSH Angriffe ausbremsen mit ‚fail2ban‘

Wer Server im Internet betreibt, kennt das. Täglich hunderte (oder mehr?) Versuche sich auf dem Server per SSH anmelden. Das nervt und müllt die Logfiles voll :-). Dagegen bietet ‚fail2ban‘ das richtige Mittel!

Wird sich von einer IP-Adresse mit einem falschen Passwort angemeldet, wird dieser Versuch von ‚fail2ban‘ registriert. Finden nun 3 Versuche mit falschem Passwort statt, wird diese IP-Adresse für eine Weile gesperrt. Damit werden sogenannte ‚Brute Force Attacken‘ ( = das automatisierte Ausprobieren von vielen, vielen Passwörtern) zwar nicht verhindert aber ganz gewaltig ausgebremst und damit mehr oder minder sinnlos.

Ein schöner Nebeneffekt ist, dass auch nciht mehr soviele Einträge über falsche Anmeldeversuche in der Logdatei auftauchen.

Wie Ihr diese kleine aber feine Software installiert steht im Artikel ‚fail2ban installieren‚.

8. Die Firewall ’shorewall‘ installieren

Okay, die Sache mit der Firewall. Eigentlich ist so eine Firewall bei einem sauber konfigurierten Server nicht wirklich nötig. Wer – wie ich – grundsätzlich prüft, dass auf dem Server wirklich nur die Ports geöffnet sind die ich brauche, braucht so eine Firewall nicht wirklich. Schließĺich prüft die auch nur ob die Nutzung eines Ports erlaubt ist oder nicht.

Aber! Mir ist es schon mehrfach passiert, dass ich beim herum konfigurieren am Server doch versehentlich (und meist nur vorübergehend) einen Port freigeschaltet habe. Schließlich basteln wir hier an sehr komplexen Konfigurationen und da macht man auch schon mal Fehler….

Hier finde ich dann eine Firewall als zweiten „Schutzwall“ ganz hilfreich. Schalte ich nun versehentlich mal einen nicht benötigten Port frei, passiert gar nichts, weil die Firewall diesen Port sperrt solange ich in der Firewall nichts anderes konfiguriere.

Allerdings sollte man hier im Artikel ‚Shorewall – Firewall installieren und einrichten‚ beschrieben Firewall Konfiguration wirklich vorsichtig, langsam und gründlich arbeiten.

Leave a Reply

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>