Den eigenen Server sicher zu kon­fi­gu­rie­ren, ist eine der wich­tigs­ten Aufgaben von Ad­mi­nis­tra­to­rin­nen und Ad­mi­nis­tra­to­ren. Das gilt nicht nur für Server in Ei­gen­re­gie, sondern auch für gemietete Hardware. Maßnahmen wie Pass­wort­schutz, gute SSH-Ein­stel­lun­gen und re­gel­mä­ßi­ge Ak­tua­li­sie­run­gen sorgen für ein um­fas­sen­des Si­cher­heits­pa­ket.

Server sicher kon­fi­gu­rie­ren: Wer ist in der Ver­ant­wor­tung?

Um maximale Freiheit bei der Kon­fi­gu­ra­ti­on zu genießen, ist das Hosting eines eigenen Servers die optimale Lösung. Eine adäquate Al­ter­na­ti­ve 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 ele­men­ta­re Ver­wal­tungs­schrit­te wie In­stal­la­ti­on, Struk­tu­rie­rung und In­stand­hal­tung des Servers aus­schließ­lich im Ver­ant­wor­tungs­be­reich des Mieters bzw. der Mieterin. Dabei ist Vorsicht geboten: Ein feh­ler­haf­tes Vorgehen im Root-Bereich wirkt sich besonders schwer aus. Al­ler­dings lässt sich bei korrekter Vor­ge­hens­wei­se die perfekte Basis für einen stabilen, leis­tungs­star­ken und sicheren Server schaffen.

Dedicated Server
De­di­zier­te Server mit mo­derns­ten Pro­zes­so­ren
  • 100 % En­ter­pri­se-Hardware
  • Kon­fi­gu­rier­ba­re Hardware-Aus­stat­tung
  • ISO-zer­ti­fi­zier­te Re­chen­zen­tren

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

Un­ab­hän­gig davon, ob Sie einen Windows-, einen Ubuntu- oder einen Debian-Server absichern möchten – es gibt einige all­ge­mein­gül­ti­ge Maßnahmen, mit denen Sie eine solide Si­cher­heits­grund­la­ge schaffen. Wir haben die wich­tigs­ten Schritte zu­sam­men­ge­fasst.

Schritt 1: Minimal-In­stal­la­ti­on durch­füh­ren

Bereits bevor Sie mit den ei­gent­li­chen Vor­keh­run­gen beginnen und Ihren Server sicher kon­fi­gu­rie­ren, können Sie das spätere Si­cher­heits­po­ten­zi­al Ihres Web­pro­jekts be­ein­flus­sen. Es spielt keine Rolle, ob Sie ein Windows- oder ein Linux-Be­triebs­sys­tem nutzen möchten. Bei der In­stal­la­ti­on sollten Sie folgenden Grundsatz anwenden: Ihr Server sollte nur die Software enthalten, die er zur Erfüllung seiner Aufgaben benötigt.

Hin­ter­grund ist, dass jede in­stal­lier­te Anwendung ein po­ten­zi­el­les Si­cher­heits­ri­si­ko bedeutet und sich auch negativ auf die Per­for­mance auswirken kann. Um möglichst wenig An­griffs­flä­che zu bieten, sollten Sie daher lediglich die not­wen­di­gen Sys­tem­kom­po­nen­ten in­stal­lie­ren bzw. ak­ti­vie­ren und nur auf ve­ri­fi­zier­te Dritts­oft­ware zu­rück­grei­fen.

Schritt 2: Ein sicheres Passwort vergeben

Im Anschluss an die In­stal­la­ti­on sollten Sie zu­al­ler­erst ein sicheres Admin- (Windows) bzw. Root-Passwort (Linux) setzen. Stan­dard­mä­ßig ist hierfür kein Wert definiert und damit auch das Ad­mi­nis­tra­to­ren-Konto blockiert, bis Sie eine ent­spre­chen­de Eingabe machen. In der Regel fordert Sie das jeweilige Be­triebs­sys­tem nach der In­stal­la­ti­on au­to­ma­tisch auf, einen Account inklusive Passwort anzulegen, der fortan als Ad­mi­nis­tra­to­ren- bzw. Root-Zugang fungiert.

Wenn Sie Ihren Linux-Server bei einem Provider gemietet und einen be­stehen­den 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

Nach­fol­gend können Sie Ihr sicheres Passwort de­fi­nie­ren, das Sie an­schlie­ßend noch ve­ri­fi­zie­ren müssen. Achten Sie darauf, ein möglichst langes Kennwort zu wählen und dabei nicht nur auf Buch­sta­ben, sondern auch auf Son­der­zei­chen und Zahlen zu­rück­zu­grei­fen. Zudem ist es emp­feh­lens­wert, das Passwort mithilfe eines Passwort-Managers zu speichern, um es im Zwei­fels­fall 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“-Ein­ga­be­auf­for­de­rung, in der Sie au­to­ma­tisch als Ad­mi­nis­tra­tor operieren und die ge­wünsch­te Kennwort-Änderung vornehmen können.

Schritt 3: SSH-Port ändern

Für den Server-Zugriff via SSH ist stan­dard­mä­ßig TCP-/UDP-Port 22 vor­ge­se­hen. Dieser Port wird daher auch au­to­ma­tisch ein­ge­tra­gen, wenn Sie Ihr System neu in­stal­lie­ren. Kri­mi­nel­le, die auf der Suche nach undichten Systemen sind, werden ihre An­griffs­ver­su­che – haupt­säch­lich au­to­ma­ti­sier­te Login-Versuche – folglich vor allem über diesen Port laufen lassen. Indem Sie einen anderen Port für die ver­schlüs­sel­ten Remote-Ver­bin­dun­gen de­fi­nie­ren, mi­ni­mie­ren Sie das Risiko eines un­er­wünsch­ten Zugriffs erheblich.

Hierfür müssen Sie lediglich die SSH-Kon­fi­gu­ra­ti­ons­da­tei sshd_config mit einem be­lie­bi­gen Text-Editor be­ar­bei­ten. 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 Port­num­mer 22 durch die Nummer Ihrer Wahl. Behalten Sie dabei jedoch im Hin­ter­kopf, dass es diverse weitere Standard-Ports für andere Dienste gibt (bei­spiels­wei­se Port 80 für HTTP).

Hinweis

Bevor die Än­de­run­gen 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 de­ak­ti­vie­ren

Um Ihren Server ab­zu­si­chern, ist es darüber hinaus emp­feh­lens­wert, die SSH-Anmeldung für das Root- bzw. Ad­mi­nis­tra­to­ren-Konto zu sperren. An­dern­falls könnte ein Angreifer oder eine An­grei­fe­rin, 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 durch­füh­ren können, benötigen Sie jedoch min­des­tens einen weiteren Account, der sich mit dem Server verbinden kann, um an­schlie­ßend nicht komplett vom System aus­ge­sperrt zu sein. In Linux-Systemen legen Sie ein solches mit dem nach­fol­gen­den Befehl an:

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

Auf diese Weise erzeugen Sie den ex­em­pla­ri­schen Benutzer-Account „nutzer1“, für den Sie im Anschluss ein sicheres Kennwort de­fi­nie­ren:

passwd nutzer1
bash

Testen Sie, ob die Anmeldung mit dem er­stell­ten Be­nut­zer­kon­to funk­tio­niert, und fahren Sie im Er­folgs­fall mit dem ei­gent­li­chen Vorhaben – dem Aus­sper­ren des Root-Kontos – fort. Für dieses benötigen Sie erneut die SSH-Kon­fi­gu­ra­ti­ons­da­tei 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 Kon­fi­gu­ra­ti­ons­da­tei außerdem festlegen, welche Nutzer und Nut­ze­rin­nen sich via SSH mit dem Server verbinden dürfen. Zu diesem Zweck erstellen Sie einfach eine Gruppe (addgroup) und fügen dieser die ge­wünsch­ten User hinzu (adduser). An­schlie­ßend ergänzen Sie den gewählten Grup­pen­na­men in der sshd_config (z. B. AllowGroups ssh_nutzer).

Hinweis

Eine kom­for­ta­ble Al­ter­na­ti­ve zur Sperrung des SSH-Logins ist die Option, die Nut­zer­an­mel­dung mit Passwort gänzlich zu verbieten und statt­des­sen auf Public-Key-Au­then­ti­fi­zie­rung mit SSH-Keys zu­rück­zu­grei­fen.

Schritt 5: E-Mail-Be­nach­rich­ti­gung über SSH-Logins ein­rich­ten

Wie auch immer Sie im Detail bei der Ab­si­che­rung des SSH-Zugangs vorgehen, sollten Sie im Nach­hin­ein unbedingt alle Remote-Ak­ti­vi­tä­ten im Auge behalten. Auf diese Weise können Sie fest­stel­len, ob Sie den SSH-Service Ihres Servers korrekt ab­ge­si­chert haben. Gleich­zei­tig sind Sie durch ein gutes Mo­ni­to­ring der auf­ge­bau­ten Ver­bin­dun­gen im Fall eines un­be­fug­ten Zugriffs früh­zei­tig gewarnt und in der Lage, ent­spre­chen­de Ge­gen­maß­nah­men zu ergreifen. Dafür reicht bereits ein einfaches Shell-Skript aus, das au­to­ma­tisch bei jeder er­folg­rei­chen Remote-Anmeldung auf Ihrem Server eine Be­nach­rich­ti­gungs-E-Mail an Ihre Adresse versendet.

Ein bei­spiel­haf­tes Skript /opt/shell-login.sh für Linux, das Sie pro­blem­los selbst erstellen können, muss zu diesem Zweck lediglich folgenden Code be­inhal­ten:

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

An­schlie­ßend gilt es, in der Datei /etc/profile folgende Zeile hin­zu­zu­fü­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 aus­ge­führt wird und im Fall eines Logins via SSH mit der Be­nach­rich­ti­gungs­mail an die ge­wünsch­te Adresse reagiert. Vor­aus­set­zung ist, dass dem Skript das Recht 755 (Lese- und Aus­füh­rungs­recht für alle User, Schreib­zu­griff für Ei­gen­tü­mer bzw. Ei­gen­tü­me­rin) zu­ge­wie­sen ist, was Sie mit dem nach­fol­gen­den Kommando erreichen:

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

Wenn ein Nutzer bzw. eine Nutzerin eine SSH-Ver­bin­dung mithilfe eines Programms wie WinSCP aufbaut, das keinen voll­stän­di­gen Login durch­führt, versendet das hier be­schrie­be­ne Shell-Skript keine E-Mail!

Schritt 6: Un­ge­nutz­te Ports sperren

Offene Ports stellen im All­ge­mei­nen kein be­son­de­res Si­cher­heits­ri­si­ko dar. Da sie für die Kom­mu­ni­ka­ti­on mit den einzelnen Diensten und An­wen­dun­gen benötigt werden, ist es sogar zwingend notwendig, dass gewisse Ports stan­dard­mä­ßig frei­ge­ge­ben sind – etwa Port 80 und 443 für HTTP- bzw. HTTPS-Ver­bin­dun­gen oder der von Ihnen gewählte SSH-Port. Zum Risiko werden diese offenen Schnitt­stel­len nur dann, wenn die ant­wor­ten­den Programme Si­cher­heits­lü­cken aufweisen und sich Kri­mi­nel­le diesen Umstand zunutze machen.

Tipp

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

Haben Sie eine minimale Sys­tem­in­stal­la­ti­on durch­ge­führt und nur eine geringe Anzahl an Dritt­an­wen­dun­gen in­stal­liert, ist die Zahl weiterer be­nö­tig­ter Ports über­schau­bar. Um Ihren Server gegen Angriffe ab­zu­si­chern, sollten Sie daher sämtliche nicht be­nö­tig­ten offenen Ports in den Ein­stel­lun­gen Ihrer Firewall blo­ckie­ren. Alle wichtigen Be­triebs­sys­te­me haben hierfür mit der Pa­ket­fil­ter-Software iptables das passende Werkzeug bereits stan­dard­mä­ßig in­stal­liert. Mithilfe des Tools erstellen Sie feste Regeln zur Re­gu­lie­rung des Da­ten­ver­kehrs, wobei unter anderem auch die benötigte De­fi­ni­ti­on er­wünsch­ter bzw. un­er­wünsch­ter Ports möglich ist.

Schritt 7: Software re­gel­mä­ßig ak­tua­li­sie­ren

In der Regel werden bekannt gewordene Si­cher­heits­lü­cken in An­wen­dun­gen mithilfe von ver­öf­fent­lich­ten Updates innerhalb kürzester Zeit wieder ge­schlos­sen. Wenn Sie sich re­gel­mä­ßig über Ak­tua­li­sie­run­gen für das Be­triebs­sys­tem und die in­stal­lier­ten Programme in­for­mie­ren und neue Updates zeitnah auf­spie­len, sorgen Sie dies­be­züg­lich für den best­mög­li­chen Schutz Ihres Servers. Fast alle Ser­ver­sys­te­me bieten außerdem eine Funktion, um wichtige Si­cher­heits­up­dates au­to­ma­tisch im Hin­ter­grund her­un­ter­zu­la­den und zu in­stal­lie­ren.

Wenn Sie bei­spiels­wei­se einen Windows-Server absichern wollen, haben Sie im „Windows Update“-Bereich die Mög­lich­keit, konkrete Richt­li­ni­en für den au­to­ma­ti­schen Ak­tua­li­sie­rungs­pro­zess fest­zu­le­gen. Sie kon­fi­gu­rie­ren dort de­tail­liert, wann und in welcher Re­gel­mä­ßig­keit nach Updates gesucht werden soll, ob gefundene Ak­tua­li­sie­run­gen gleich in­stal­liert werden sollen und wann das System an­schlie­ßend einen Neustart durch­füh­ren soll. Für Linux-Systeme exis­tie­ren spe­zi­fi­sche Tools wie apt-list­ch­an­ges oder das Shell-Skript apticron, die Sie täglich über neue ver­füg­ba­re Software-Pakete in­for­mie­ren und diese auch her­un­ter­la­den. Weitere Skripte wie un­at­ten­ded-upgrades über­neh­men dann im Anschluss die au­to­ma­ti­sche In­stal­la­ti­on.

Hinweis

Stellen Sie sicher, dass Sie auch bei einem au­to­ma­ti­sier­ten Update-Prozess den Überblick über erledigte Ak­tua­li­sie­run­gen behalten. Auf diese Weise können Sie auf­tre­ten­de Fehler infolge des Update-Vorgangs besser nach­voll­zie­hen und ent­spre­chend reagieren.

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

Eine der ein­fachs­ten und meist­ge­nutz­ten An­griffs­ar­ten ist die so­ge­nann­te Brute-Force-Methode. Bei dieser versuchen An­grei­fen­de mithilfe eines Tools an Pass­wör­ter zu gelangen. Je sorg­fäl­ti­ger Sie bei der Vergabe Ihrer Kenn­wör­ter waren, desto un­wahr­schein­li­cher ist al­ler­dings, dass diese Methode zum Erfolg führt.

Ins­be­son­de­re, wenn Sie einen Dienst mit An­mel­de­me­cha­nis­mus anbieten, müssen Sie jedoch davon ausgehen, dass nicht alle Personen so ge­wis­sen­haft und vor­sich­tig vorgehen, wie es von Nöten wäre. Analyse-Tools schaffen Abhilfe: Lösungen wie Fail2ban (Linux-/POSIX-Systeme) oder RdpGuard (Windows) über­prü­fen die Log-Files Ihres Servers, erkennen un­ge­wöhn­li­ches Verhalten und blo­ckie­ren ver­däch­ti­ge IP-Adressen. Nach wie vielen Fehl­ver­su­chen die Sperre verhängt werden oder wie lange diese gültig sein soll, können Sie in­di­vi­du­ell ein­stel­len.

Tipp

Sie können auch noch einen Schritt weiter gehen und Ihren Server absichern, indem Sie eine Zwei-Faktor-Au­then­ti­fi­zie­rung ein­rich­ten. Bei diesem Verfahren wird für den Login neben der Pass­wort­ein­ga­be noch eine weitere Kom­po­nen­te benötigt, die sich im per­sön­li­chen Besitz des Nutzers bzw. der Nutzerin befindet (z. B. Smart­phone, Smartcard, TAN-Liste).

Schritt 9: Mo­ni­to­ring-Tools einsetzen

Wenn Sie einen Server absichern wollen, sollten Sie außerdem dafür sorgen, dass das Zu­sam­men­spiel von Hard- und Software wie gewünscht funk­tio­niert. Dabei handelt es sich kei­nes­wegs um eine einmalige Sache, die nach dem er­folg­rei­chen Start Ihrer Ser­ver­um­ge­bung beendet ist, sondern um eine lang­fris­ti­ge Aufgabe, die Sie nicht aus den Augen verlieren sollten. Bei der hohen Zahl an ver­schie­de­nen Sys­tem­pro­zes­sen ist das natürlich leichter gesagt als getan, weshalb Sie von Beginn an auf Mo­ni­to­ring-Tools zu­rück­grei­fen sollten, die sämtliche Vorgänge auf Ihrem Server über­wa­chen und bei auf­fäl­li­gen Vor­komm­nis­sen Alarm schlagen.

Ein schlich­tes und schnell kon­fi­gu­rier­tes Programm dieser Art ist Monit, das bei vielen Linux-Dis­tri­bu­tio­nen un­kom­pli­ziert über die Pa­ket­ver­wal­tung in­stal­liert werden kann. Die Open-Source-Anwendung (GNU-AGPL-Lizenz) ob­ser­viert nach dem Start wahlweise Prozesse, Dateien, Clouds, Hosts, Programme oder Skripte. Auch die Sys­tem­res­sour­cen – CPU, Ar­beits­spei­cher und absolute Sys­tem­aus­las­tung – lassen sich über­wa­chen. Wenn Sie mehr Details benötigen, ist darüber hinaus die Mo­ni­to­ring-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 er­wei­ter­bar.

Free VPS Trial
vServer kostenlos testen für 30 Tage

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

Schritt 10: Backups ein­rich­ten

Mit den emp­foh­le­nen Kon­fi­gu­ra­ti­ons­vor­schlä­gen erhöhen Sie die Server-Si­cher­heit erheblich. Al­ler­dings können auch die beste Kon­fi­gu­ra­ti­on und eine en­ga­gier­te Pflege nicht für einen ein­hun­dert­pro­zen­ti­gen Schutz des Servers sorgen. Eine weitere stützende Säule Ihres Si­cher­heits­sys­tems sollte daher eine um­fas­sen­de Backup-Strategie sein, die es Ihnen er­mög­licht, Dateien in einem Ver­lust­sze­na­rio wie­der­her­zu­stel­len.

An leis­tungs­star­ken Tools, die Sie nicht nur beim Anlegen, sondern auch beim Ein­spie­len der Si­cher­heits­ko­pie un­ter­stüt­zen, mangelt es in jedem Fall nicht: Eine kos­ten­freie Anwendung, die an dieser Stelle erwähnt werden soll, ist das quell­of­fe­ne Syn­chro­ni­sie­rungs-Programm rsync, das seinen Namen von dem gleich­na­mi­gen Protokoll hat und in ver­schie­de­nen Varianten für nahezu alle gängigen Platt­for­men (macOS, Windows, Linux) verfügbar ist. Dieses Tool hält die Kopie Ihrer Ser­ver­da­ten auf dem aktuellen Stand, indem es sämtliche Ver­än­de­run­gen am Original in Echtzeit übernimmt.

Neben dem all­ge­mei­nen Backup des Servers gehört auch die Da­ten­si­che­rung Ihrer Da­ten­ban­ken zum Pflicht­pro­gramm.

Hinweis

Für einen möglichst sicheren Backup-Schutz ist es emp­feh­lens­wert, dass sich das Backup-Ver­zeich­nis auf einem externen Spei­cher­me­di­um (portable Fest­plat­te, ein weiterer Server etc.) und nicht auf dem Server, den Sie absichern wollen, befindet.

Zum Hauptmenü