Server absichern: Die wichtigsten Schritte

Den eigenen Server sicher zu konfigurieren, ist eine der wichtigsten Aufgaben von Administratorinnen und Administratoren. Das gilt nicht nur für Server in Eigenregie, sondern auch für gemietete Hardware. Maßnahmen wie Passwortschutz, gute SSH-Einstellungen und regelmäßige Aktualisierungen sorgen für ein umfassendes Sicherheitspaket.

Server sicher konfigurieren: Wer ist in der Verantwortung?

Um maximale Freiheit bei der Konfiguration zu genießen, ist das Hosting eines eigenen Servers die optimale Lösung. Eine adäquate Alternative stellen Root Server dar, die bei vielen Anbietern gemietet werden können und Zugriff auf das Root-Konto gewähren. In beiden Fällen liegen elementare Verwaltungsschritte wie Installation, Strukturierung und Instandhaltung des Servers ausschließlich im Verantwortungsbereich des Mieters bzw. der Mieterin. Dabei ist Vorsicht geboten: Ein fehlerhaftes Vorgehen im Root-Bereich wirkt sich besonders schwer aus. Allerdings lässt sich bei korrekter Vorgehensweise die perfekte Basis für einen stabilen, leistungsstarken und sicheren Server schaffen.

Dedicated Server
Dedizierte Server mit modernsten Prozessoren
  • 100 % Enterprise-Hardware
  • Minutengenaue Abrechnung
  • Nur bei uns: Cloud-Funktionen

So sichern Sie Ihren Server ab: Schritt-für-Schritt-Anleitung

Unabhängig davon, ob Sie einen Windows-, einen Ubuntu- oder einen Debian-Server absichern möchten – es gibt einige allgemeingültige Maßnahmen, mit denen Sie eine solide Sicherheitsgrundlage schaffen. Wir haben die wichtigsten Schritte zusammengefasst.

Schritt 1: Minimal-Installation durchführen

Bereits bevor Sie mit den eigentlichen Vorkehrungen beginnen und Ihren Server sicher konfigurieren, können Sie das spätere Sicherheitspotenzial Ihres Webprojekts beeinflussen. Es spielt keine Rolle, ob Sie ein Windows- oder ein Linux-Betriebssystem nutzen möchten. Bei der Installation sollten Sie folgenden Grundsatz anwenden: Ihr Server sollte nur die Software enthalten, die er zur Erfüllung seiner Aufgaben benötigt.

Hintergrund ist, dass jede installierte Anwendung ein potenzielles Sicherheitsrisiko bedeutet und sich auch negativ auf die Performance auswirken kann. Um möglichst wenig Angriffsfläche zu bieten, sollten Sie daher lediglich die notwendigen Systemkomponenten installieren bzw. aktivieren und nur auf verifizierte Drittsoftware zurückgreifen.

Schritt 2: Ein sicheres Passwort vergeben

Im Anschluss an die Installation sollten Sie zuallererst ein sicheres Admin- (Windows) bzw. Root-Passwort (Linux) setzen. Standardmäßig ist hierfür kein Wert definiert und damit auch das Administratoren-Konto blockiert, bis Sie eine entsprechende Eingabe machen. In der Regel fordert Sie das jeweilige Betriebssystem nach der Installation automatisch auf, einen Account inklusive Passwort anzulegen, der fortan als Administratoren- bzw. Root-Zugang fungiert.

Wenn Sie Ihren Linux-Server bei einem Provider gemietet und einen bestehenden Root-Login erhalten haben, sollten Sie das Passwort umgehend ändern. Zu diesem Zweck melden Sie sich per SSH auf Ihrem Server an und geben den folgenden Befehl in das jeweilige Terminal ein:

passwd
bash

Nachfolgend können Sie Ihr sicheres Passwort definieren, das Sie anschließend noch verifizieren müssen. Achten Sie darauf, ein möglichst langes Kennwort zu wählen und dabei nicht nur auf Buchstaben, sondern auch auf Sonderzeichen und Zahlen zurückzugreifen. Zudem ist es empfehlenswert, das Passwort mithilfe eines Passwort-Managers zu speichern, um es im Zweifelsfall jederzeit parat zu haben.

Tipp

Falls für Ihr Linux-System bereits ein Root-Passwort gesetzt wurde, das Sie nicht kennen, können Sie es im Recovery-Modus ändern. Sie starten diesen, indem Sie während des Boot-Prozesses die Shift-Taste gedrückt halten. Über den Menü-Eintrag „root“ starten Sie die „Root“-Eingabeaufforderung, in der Sie automatisch als Administrator operieren und die gewünschte Kennwort-Änderung vornehmen können.

Schritt 3: SSH-Port ändern

Für den Server-Zugriff via SSH ist standardmäßig TCP-/UDP-Port 22 vorgesehen. Dieser Port wird daher auch automatisch eingetragen, wenn Sie Ihr System neu installieren. Kriminelle, die auf der Suche nach undichten Systemen sind, werden ihre Angriffsversuche – hauptsächlich automatisierte Login-Versuche – folglich vor allem über diesen Port laufen lassen. Indem Sie einen anderen Port für die verschlüsselten Remote-Verbindungen definieren, minimieren Sie das Risiko eines unerwünschten Zugriffs erheblich.

Hierfür müssen Sie lediglich die SSH-Konfigurationsdatei sshd_config mit einem beliebigen Text-Editor bearbeiten. Mit folgendem Befehl öffnen Sie die Datei zum Beispiel mit dem Linux-Standard-Editor nano:

nano /etc/ssh/sshd_config
bash

Suchen Sie nach der Zeile „Port“ und ersetzen Sie die Portnummer 22 durch die Nummer Ihrer Wahl. Behalten Sie dabei jedoch im Hinterkopf, dass es diverse weitere Standard-Ports für andere Dienste gibt (beispielsweise Port 80 für HTTP).

Hinweis

Bevor die Änderungen in der sshd_config aktiv werden, ist es notwendig, den SSH-Dienst neu zu starten. Unter Debian gelingt dies mit dem Befehl etc/init.d/ssh restart. Ubuntu-User starten den Service mithilfe von service ssh restart neu.

Schritt 4: SSH-Anmeldung für Admin deaktivieren

Um Ihren Server abzusichern, ist es darüber hinaus empfehlenswert, die SSH-Anmeldung für das Root- bzw. Administratoren-Konto zu sperren. Andernfalls könnte ein Angreifer oder eine Angreiferin, der oder die in den Besitz des Passworts gelangt ist, mithilfe des Kontos per Remote Access auf den Server zugreifen.

Bevor Sie diese Maßnahme durchführen können, benötigen Sie jedoch mindestens einen weiteren Account, der sich mit dem Server verbinden kann, um anschließend nicht komplett vom System ausgesperrt zu sein. In Linux-Systemen legen Sie ein solches mit dem nachfolgenden Befehl an:

useradd -g users -d /home/nutzer1 -m -s /bin/bash nutzer1
bash

Auf diese Weise erzeugen Sie den exemplarischen Benutzer-Account „nutzer1“, für den Sie im Anschluss ein sicheres Kennwort definieren:

passwd nutzer1
bash

Testen Sie, ob die Anmeldung mit dem erstellten Benutzerkonto funktioniert, und fahren Sie im Erfolgsfall mit dem eigentlichen Vorhaben – dem Aussperren des Root-Kontos – fort. Für dieses benötigen Sie erneut die SSH-Konfigurationsdatei sshd_config, die Sie mit dem Editor Ihrer Wahl öffnen. Suchen Sie nach dem Eintrag PermitRootLogin yes und ersetzen Sie diesen durch PermitRootLogin no. Nach einem Neustart des SSH-Dienstes ist der Remote-Zugriff für den Root-Account nicht mehr möglich.

Über die Zeile AllowGroups können Sie in der Konfigurationsdatei außerdem festlegen, welche Nutzer und Nutzerinnen sich via SSH mit dem Server verbinden dürfen. Zu diesem Zweck erstellen Sie einfach eine Gruppe (addgroup) und fügen dieser die gewünschten User hinzu (adduser). Anschließend ergänzen Sie den gewählten Gruppennamen in der sshd_config (z. B. AllowGroups ssh_nutzer).

Hinweis

Eine komfortable Alternative zur Sperrung des SSH-Logins ist die Option, die Nutzeranmeldung mit Passwort gänzlich zu verbieten und stattdessen auf Public-Key-Authentifizierung mit SSH-Keys zurückzugreifen.

Schritt 5: E-Mail-Benachrichtigung über SSH-Logins einrichten

Wie auch immer Sie im Detail bei der Absicherung des SSH-Zugangs vorgehen, sollten Sie im Nachhinein unbedingt alle Remote-Aktivitäten im Auge behalten. Auf diese Weise können Sie feststellen, ob Sie den SSH-Service Ihres Servers korrekt abgesichert haben. Gleichzeitig sind Sie durch ein gutes Monitoring der aufgebauten Verbindungen im Fall eines unbefugten Zugriffs frühzeitig gewarnt und in der Lage, entsprechende Gegenmaßnahmen zu ergreifen. Dafür reicht bereits ein einfaches Shell-Skript aus, das automatisch bei jeder erfolgreichen Remote-Anmeldung auf Ihrem Server eine Benachrichtigungs-E-Mail an Ihre Adresse versendet.

Ein beispielhaftes Skript /opt/shell-login.sh für Linux, das Sie problemlos selbst erstellen können, muss zu diesem Zweck lediglich folgenden Code beinhalten:

#!/bin/bash
echo "Login auf $(hostname) am $(date +%Y-%m-%d) um $(date +%H:%M)"
echo "Benutzer: $USER"
echo
finger
txt

Anschließend gilt es, in der Datei /etc/profile folgende Zeile hinzuzufügen:

/opt/shell-login.sh | mailx -s "SSH-Login auf dem Server" mailadresse@example.com
txt

Mit diesem Eintrag sorgen Sie dafür, dass das Skript ausgeführt wird und im Fall eines Logins via SSH mit der Benachrichtigungsmail an die gewünschte Adresse reagiert. Voraussetzung ist, dass dem Skript das Recht 755 (Lese- und Ausführungsrecht für alle User, Schreibzugriff für Eigentümer bzw. Eigentümerin) zugewiesen ist, was Sie mit dem nachfolgenden Kommando erreichen:

chmod 755 /opt/shell-login.sh
bash
Hinweis

Wenn ein Nutzer bzw. eine Nutzerin eine SSH-Verbindung mithilfe eines Programms wie WinSCP aufbaut, das keinen vollständigen Login durchführt, versendet das hier beschriebene Shell-Skript keine E-Mail!

Schritt 6: Ungenutzte Ports sperren

Offene Ports stellen im Allgemeinen kein besonderes Sicherheitsrisiko dar. Da sie für die Kommunikation mit den einzelnen Diensten und Anwendungen benötigt werden, ist es sogar zwingend notwendig, dass gewisse Ports standardmäßig freigegeben sind – etwa Port 80 und 443 für HTTP- bzw. HTTPS-Verbindungen oder der von Ihnen gewählte SSH-Port. Zum Risiko werden diese offenen Schnittstellen nur dann, wenn die antwortenden Programme Sicherheitslücken aufweisen und sich Kriminelle diesen Umstand zunutze machen.

Tipp

Erfahren Sie in unserem separaten Artikel, wie Sie Ihre Ports testen, um eine Übersicht über alle geöffneten Ports zu erhalten.

Haben Sie eine minimale Systeminstallation durchgeführt und nur eine geringe Anzahl an Drittanwendungen installiert, ist die Zahl weiterer benötigter Ports überschaubar. Um Ihren Server gegen Angriffe abzusichern, sollten Sie daher sämtliche nicht benötigten offenen Ports in den Einstellungen Ihrer Firewall blockieren. Alle wichtigen Betriebssysteme haben hierfür mit der Paketfilter-Software iptables das passende Werkzeug bereits standardmäßig installiert. Mithilfe des Tools erstellen Sie feste Regeln zur Regulierung des Datenverkehrs, wobei unter anderem auch die benötigte Definition erwünschter bzw. unerwünschter Ports möglich ist.

Schritt 7: Software regelmäßig aktualisieren

In der Regel werden bekannt gewordene Sicherheitslücken in Anwendungen mithilfe von veröffentlichten Updates innerhalb kürzester Zeit wieder geschlossen. Wenn Sie sich regelmäßig über Aktualisierungen für das Betriebssystem und die installierten Programme informieren und neue Updates zeitnah aufspielen, sorgen Sie diesbezüglich für den bestmöglichen Schutz Ihres Servers. Fast alle Serversysteme bieten außerdem eine Funktion, um wichtige Sicherheitsupdates automatisch im Hintergrund herunterzuladen und zu installieren.

Wenn Sie beispielsweise einen Windows-Server absichern wollen, haben Sie im „Windows Update“-Bereich die Möglichkeit, konkrete Richtlinien für den automatischen Aktualisierungsprozess festzulegen. Sie konfigurieren dort detailliert, wann und in welcher Regelmäßigkeit nach Updates gesucht werden soll, ob gefundene Aktualisierungen gleich installiert werden sollen und wann das System anschließend einen Neustart durchführen soll. Für Linux-Systeme existieren spezifische Tools wie apt-listchanges oder das Shell-Skript apticron, die Sie täglich über neue verfügbare Software-Pakete informieren und diese auch herunterladen. Weitere Skripte wie unattended-upgrades übernehmen dann im Anschluss die automatische Installation.

Hinweis

Stellen Sie sicher, dass Sie auch bei einem automatisierten Update-Prozess den Überblick über erledigte Aktualisierungen behalten. Auf diese Weise können Sie auftretende Fehler infolge des Update-Vorgangs besser nachvollziehen und entsprechend reagieren.

Schritt 8: Windows- und Linux-Server absichern gegen Brute-Force-Attacken

Eine der einfachsten und meistgenutzten Angriffsarten ist die sogenannte Brute-Force-Methode. Bei dieser versuchen Angreifende mithilfe eines Tools an Passwörter zu gelangen. Je sorgfältiger Sie bei der Vergabe Ihrer Kennwörter waren, desto unwahrscheinlicher ist allerdings, dass diese Methode zum Erfolg führt.

Insbesondere, wenn Sie einen Dienst mit Anmeldemechanismus anbieten, müssen Sie jedoch davon ausgehen, dass nicht alle Personen so gewissenhaft und vorsichtig vorgehen, wie es von Nöten wäre. Analyse-Tools schaffen Abhilfe: Lösungen wie Fail2ban (Linux-/POSIX-Systeme) oder RdpGuard (Windows) überprüfen die Log-Files Ihres Servers, erkennen ungewöhnliches Verhalten und blockieren verdächtige IP-Adressen. Nach wie vielen Fehlversuchen die Sperre verhängt werden oder wie lange diese gültig sein soll, können Sie individuell einstellen.

Tipp

Sie können auch noch einen Schritt weiter gehen und Ihren Server absichern, indem Sie eine Zwei-Faktor-Authentifizierung einrichten. Bei diesem Verfahren wird für den Login neben der Passworteingabe noch eine weitere Komponente benötigt, die sich im persönlichen Besitz des Nutzers bzw. der Nutzerin befindet (z. B. Smartphone, Smartcard, TAN-Liste).

Schritt 9: Monitoring-Tools einsetzen

Wenn Sie einen Server absichern wollen, sollten Sie außerdem dafür sorgen, dass das Zusammenspiel von Hard- und Software wie gewünscht funktioniert. Dabei handelt es sich keineswegs um eine einmalige Sache, die nach dem erfolgreichen Start Ihrer Serverumgebung beendet ist, sondern um eine langfristige Aufgabe, die Sie nicht aus den Augen verlieren sollten. Bei der hohen Zahl an verschiedenen Systemprozessen ist das natürlich leichter gesagt als getan, weshalb Sie von Beginn an auf Monitoring-Tools zurückgreifen sollten, die sämtliche Vorgänge auf Ihrem Server überwachen und bei auffälligen Vorkommnissen Alarm schlagen.

Ein schlichtes und schnell konfiguriertes Programm dieser Art ist Monit, das bei vielen Linux-Distributionen unkompliziert über die Paketverwaltung installiert werden kann. Die Open-Source-Anwendung (GNU-AGPL-Lizenz) observiert nach dem Start wahlweise Prozesse, Dateien, Clouds, Hosts, Programme oder Skripte. Auch die Systemressourcen – CPU, Arbeitsspeicher und absolute Systemauslastung – lassen sich überwachen. Wenn Sie mehr Details benötigen, ist darüber hinaus die Monitoring-Software Nagios zu empfehlen. Diese ist in der Core-Version ebenfalls Open Source, für Linux und Windows verfügbar und zudem durch diverse Nagios-Plugins erweiterbar.

Free VPS Trial
vServer kostenlos testen für 30 Tage

Lassen Sie sich von den Vorteilen überzeugen. Probieren Sie Ihren Virtual Server ganz in Ruhe 30 Tage lang aus!

Schritt 10: Backups einrichten

Mit den empfohlenen Konfigurationsvorschlägen erhöhen Sie die Server-Sicherheit erheblich. Allerdings können auch die beste Konfiguration und eine engagierte Pflege nicht für einen einhundertprozentigen Schutz des Servers sorgen. Eine weitere stützende Säule Ihres Sicherheitssystems sollte daher eine umfassende Backup-Strategie sein, die es Ihnen ermöglicht, Dateien in einem Verlustszenario wiederherzustellen.

An leistungsstarken Tools, die Sie nicht nur beim Anlegen, sondern auch beim Einspielen der Sicherheitskopie unterstützen, mangelt es in jedem Fall nicht: Eine kostenfreie Anwendung, die an dieser Stelle erwähnt werden soll, ist das quelloffene Synchronisierungs-Programm rsync, das seinen Namen von dem gleichnamigen Protokoll hat und in verschiedenen Varianten für nahezu alle gängigen Plattformen (macOS, Windows, Linux) verfügbar ist. Dieses Tool hält die Kopie Ihrer Serverdaten auf dem aktuellen Stand, indem es sämtliche Veränderungen am Original in Echtzeit übernimmt.

Neben dem allgemeinen Backup des Servers gehört auch die Datensicherung Ihrer Datenbanken zum Pflichtprogramm.

Hinweis

Für einen möglichst sicheren Backup-Schutz ist es empfehlenswert, dass sich das Backup-Verzeichnis auf einem externen Speichermedium (portable Festplatte, ein weiterer Server etc.) und nicht auf dem Server, den Sie absichern wollen, befindet.

War dieser Artikel hilfreich?
Page top