Die sichere Kon­fi­gu­ra­ti­on des eigenen Servers zählt zu den es­sen­zi­el­len Aufgaben in der Ad­mi­nis­tra­ti­on. Das betrifft sowohl Server in Ei­gen­re­gie als auch gemietete Hardware. Mit Maßnahmen wie Pass­wort­schutz, op­ti­mier­ten SSH-Ein­stel­lun­gen und laufenden Updates schnürst du ein lü­cken­lo­ses Si­cher­heits­pa­ket.

Server sicher kon­fi­gu­rie­ren: Wer trägt die Ver­ant­wor­tung?

Wenn du bei der Kon­fi­gu­ra­ti­on maximale Freiheit genießen willst, ist das Hosting eines eigenen Servers der ideale Weg. Eine starke Al­ter­na­ti­ve sind Server, die du bei Providern mietest und die dir vollen Zugriff auf das Root-Konto bieten. In beiden Szenarien liegen die ad­mi­nis­tra­ti­ven Schritte – von der In­stal­la­ti­on über die Struktur bis zur Wartung – komplett in deiner Ver­ant­wor­tung. Hier ist Ge­nau­ig­keit gefragt: Fehler im Root-Bereich können weit­rei­chen­de Folgen haben. Gehst du jedoch struk­tu­riert vor, schaffst du das Fundament für einen stabilen, per­for­man­ten und sicheren Server.

So sicherst du deinen Server ab: Schritt-für-Schritt-Anleitung

Egal, ob du einen Windows-, Ubuntu- oder Debian-Server härten möchtest – bestimmte Maßnahmen bilden immer die Basis für ein sicheres System. Wir haben die ent­schei­den­den Schritte für dich zu­sam­men­ge­fasst.

Schritt 1: Minimal-In­stal­la­ti­on wählen

Schon bevor du mit den Si­cher­heits­de­tails startest, legst du den Grund­stein für den Schutz deines Web­pro­jekts. Dabei ist es ne­ben­säch­lich, ob du ein Windows- oder Linux-Be­triebs­sys­tem ver­wen­dest. Nutze bei der In­stal­la­ti­on folgendes Prinzip: Dein Server sollte nur jene Software enthalten, die er für den tat­säch­li­chen Betrieb braucht.

Der Grund dafür: Jedes in­stal­lier­te Programm ist ein po­ten­zi­el­les Ein­falls­tor und kann die Per­for­mance drücken. Um die An­griffs­flä­che klein zu halten, aktiviere nur not­wen­di­ge Sys­tem­kom­po­nen­ten und nutze aus­schließ­lich geprüfte Dritt­an­bie­ter­soft­ware.

Schritt 2: Sicheres Passwort festlegen

Direkt nach der In­stal­la­ti­on solltest du ein starkes Admin- (Windows) bzw. Root-Passwort (Linux) vergeben. Im Stan­dard­zu­stand ist oft kein Wert hin­ter­legt, wodurch das Konto blockiert bleibt, bis du eine Eingabe tätigst. Meist fordert dich das System direkt auf, einen Account inklusive Passwort zu erstellen, der als Ad­mi­nis­tra­tor- oder Root-Zugang dient.

Hast du einen Linux-Server gemietet und Zu­gangs­da­ten erhalten, ändere das Passwort sofort. Melde dich dazu via SSH an und nutze diesen Befehl im Terminal:

passwd
bash

Definiere nun dein sicheres Passwort und bestätige es. Wähle ein langes Kennwort mit Buch­sta­ben, Son­der­zei­chen und Ziffern. Am besten spei­cherst du es in einem Passwort-Manager, damit du es jederzeit griff­be­reit hast.

Schritt 3: SSH-Port anpassen

Der Standard für den SSH-Zugriff ist der TCP-/UDP-Port 22. Da dieser Port allgemein bekannt ist, zielen au­to­ma­ti­sier­te An­griffs­ver­su­che meist genau darauf ab. Wenn du einen in­di­vi­du­el­len Port für deine ver­schlüs­sel­ten Remote-Ver­bin­dun­gen festlegst, re­du­zierst du das Risiko für un­er­laub­te Zugriffe deutlich.

Bearbeite dazu die Kon­fi­gu­ra­ti­ons­da­tei sshd_config mit einem Text-Editor. Mit diesem Befehl öffnest du die Datei etwa im Editor nano:

nano /etc/ssh/sshd_config
bash

Suche die Zeile „Port“ und tausche die 22 gegen eine Nummer deiner Wahl aus. Achte darauf, keine anderen Standard-Ports (wie Port 80 für HTTP) zu belegen.

Hinweis

Damit die Än­de­run­gen in der sshd_config greifen, musst du den SSH-Dienst neu starten. Bei Debian nutzt du etc/init.d/ssh restart, unter Ubuntu hilft der Befehl service ssh restart.

Schritt 4: Root-Login via SSH de­ak­ti­vie­ren

Zur weiteren Ab­si­che­rung solltest du den direkten SSH-Login für das Root- bzw. Ad­mi­nis­tra­tor-Konto un­ter­bin­den. So ver­hin­derst du, dass sich jemand bei einem Pass­wort­dieb­stahl via Remote Access volle Kontrolle ver­schafft.

Bevor du das tust, erstelle min­des­tens einen zu­sätz­li­chen Account, damit du dich nicht selbst aus­sperrst. Unter Linux geht das so:

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

Damit erstellst du den User „nutzer1“ und vergibst ein sicheres Kennwort:

passwd nutzer1
bash

Prüfe die Anmeldung mit dem neuen Account. Klappt alles, sperre das Root-Konto in der sshd_config. Ändere den Eintrag PermitRootLogin yes auf PermitRootLogin no. Nach dem Dienst-Neustart ist der Remote-Zugriff für Root gesperrt.

Über AllowGroups kannst du zudem festlegen, wer sich generell via SSH verbinden darf. Erstelle eine Gruppe (addgroup), füge User hinzu (adduser) und trage den Grup­pen­na­men in der sshd_config ein (z. B. AllowGroups ssh_nutzer).

Schritt 5: E-Mail-Info bei SSH-Logins ein­rich­ten

Egal welche Methode du wählst, behalte die Remote-Zugriffe im Blick. So siehst du sofort, ob dein SSH-Schutz greift. Ein aktives Mo­ni­to­ring der Ver­bin­dun­gen warnt dich bei un­be­fug­ten Zugriffen recht­zei­tig. Ein simples Shell-Skript reicht aus, um dir bei jedem er­folg­rei­chen Login eine Info-Mail zu senden.

Ein Skript wie /opt/shell-login.sh für Linux benötigt lediglich diesen Code:

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

Ergänze in der Datei /etc/profile diese Zeile:

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

So wird das Skript bei jedem Login ge­trig­gert. Stelle sicher, dass das Skript die Be­rech­ti­gung 755 besitzt, damit es korrekt aus­ge­führt werden kann:

chmod 755 /opt/shell-login.sh
bash

Schritt 6: Unnötige Ports schließen

Offene Ports sind per se kein Risiko, da sie für Dienste wie HTTP (80) oder HTTPS (443) nötig sind. Ge­fähr­lich wird es erst, wenn die da­hin­ter­lie­gen­den Programme Si­cher­heits­lü­cken haben.

Bei einer Minimal-In­stal­la­ti­on ist die Anzahl der genutzten Ports gering. Blockiere zur Si­cher­heit alle nicht be­nö­tig­ten Schnitt­stel­len in deiner Firewall. Linux-Systeme nutzen dafür meist iptables. Damit de­fi­nierst du präzise Regeln für den Da­ten­ver­kehr und erlaubst nur ge­wünsch­te Ports.

Schritt 7: Software aktuell halten

Si­cher­heits­lü­cken werden meist schnell durch Updates ge­schlos­sen. Wenn du dein Be­triebs­sys­tem und die Apps re­gel­mä­ßig ak­tua­li­sierst, schützt du deinen Server effektiv. Viele Systeme können Si­cher­heits-Updates au­to­ma­tisch im Hin­ter­grund in­stal­lie­ren.

Bei Windows Server legst du unter „Windows Update“ fest, wann nach Ak­tua­li­sie­run­gen gesucht wird und ob diese sofort in­stal­liert werden sollen. Für Linux gibt es Tools wie apt-list­ch­an­ges oder apticron, die dich in­for­mie­ren. Skripte wie un­at­ten­ded-upgrades erledigen die In­stal­la­ti­on dann ganz von selbst.

Hinweis

Behalte trotz Au­to­ma­ti­sie­rung den Überblick über in­stal­lier­te Patches. So kannst du bei even­tu­el­len Fehlern nach dem Update schneller ein­grei­fen.

Schritt 8: Schutz gegen Brute-Force-Attacken

Eine der häu­figs­ten Methoden ist der Brute-Force-Angriff, bei dem Pass­wör­ter au­to­ma­ti­siert durch­pro­biert werden. Je stärker dein Passwort, desto geringer die Er­folgs­chan­ce.

Bietest du Dienste für andere an, helfen Analyse-Tools: Programme wie Fail2ban (Linux) oder RdpGuard (Windows) prüfen die Log-Files und sperren ver­däch­ti­ge IP-Adressen nach einer fest­ge­leg­ten Anzahl an Fehl­ver­su­chen.

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

Ein sicherer Server erfordert ein rei­bungs­lo­ses Zu­sam­men­spiel von Hard- und Software. Das ist eine Dau­er­auf­ga­be. Da man unmöglich jeden Prozess manuell prüfen kann, helfen Mo­ni­to­ring-Tools. Sie über­wa­chen den Server und schlagen bei Un­re­gel­mä­ßig­kei­ten Alarm.

Ein Tool wie Monit lässt sich unter Linux leicht ein­rich­ten und überwacht Prozesse, Files, Res­sour­cen oder Skripte. Für tie­fer­ge­hen­de Analysen ist Nagios eine Top-Emp­feh­lung. Es ist Open Source und lässt sich durch Nagios-Plugins flexibel erweitern.

Schritt 10: Backups au­to­ma­ti­sie­ren

Trotz bester Kon­fi­gu­ra­ti­on gibt es keinen hun­dert­pro­zen­ti­gen Schutz. Eine solide Backup-Strategie ist daher un­ver­zicht­bar, um Daten im Ernstfall schnell wie­der­her­zu­stel­len.

Ein bewährtes Tool ist rsync. Das Programm ist für Linux, macOS und Windows verfügbar und hält deine Da­ten­ko­pien durch Echtzeit-Abgleich aktuell. Vergiss neben dem all­ge­mei­nen Backup auch nicht die Sicherung deiner Da­ten­ban­ken.

Hinweis

Lagere deine Backups am besten auf einem externen Spei­cher­me­di­um oder einem separaten Server, damit sie bei einem Problem am Haupt­sys­tem sicher sind.

Zum Hauptmenü