Server absichern: Die wichtigsten Schritte
Die sichere Konfiguration des eigenen Servers zählt zu den essenziellen Aufgaben in der Administration. Das betrifft sowohl Server in Eigenregie als auch gemietete Hardware. Mit Maßnahmen wie Passwortschutz, optimierten SSH-Einstellungen und laufenden Updates schnürst du ein lückenloses Sicherheitspaket.
Server sicher konfigurieren: Wer trägt die Verantwortung?
Wenn du bei der Konfiguration maximale Freiheit genießen willst, ist das Hosting eines eigenen Servers der ideale Weg. Eine starke Alternative sind Server, die du bei Providern mietest und die dir vollen Zugriff auf das Root-Konto bieten. In beiden Szenarien liegen die administrativen Schritte – von der Installation über die Struktur bis zur Wartung – komplett in deiner Verantwortung. Hier ist Genauigkeit gefragt: Fehler im Root-Bereich können weitreichende Folgen haben. Gehst du jedoch strukturiert vor, schaffst du das Fundament für einen stabilen, performanten 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 entscheidenden Schritte für dich zusammengefasst.
Schritt 1: Minimal-Installation wählen
Schon bevor du mit den Sicherheitsdetails startest, legst du den Grundstein für den Schutz deines Webprojekts. Dabei ist es nebensächlich, ob du ein Windows- oder Linux-Betriebssystem verwendest. Nutze bei der Installation folgendes Prinzip: Dein Server sollte nur jene Software enthalten, die er für den tatsächlichen Betrieb braucht.
Der Grund dafür: Jedes installierte Programm ist ein potenzielles Einfallstor und kann die Performance drücken. Um die Angriffsfläche klein zu halten, aktiviere nur notwendige Systemkomponenten und nutze ausschließlich geprüfte Drittanbietersoftware.
Schritt 2: Sicheres Passwort festlegen
Direkt nach der Installation solltest du ein starkes Admin- (Windows) bzw. Root-Passwort (Linux) vergeben. Im Standardzustand ist oft kein Wert hinterlegt, 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 Administrator- oder Root-Zugang dient.
Hast du einen Linux-Server gemietet und Zugangsdaten erhalten, ändere das Passwort sofort. Melde dich dazu via SSH an und nutze diesen Befehl im Terminal:
passwdbashDefiniere nun dein sicheres Passwort und bestätige es. Wähle ein langes Kennwort mit Buchstaben, Sonderzeichen und Ziffern. Am besten speicherst du es in einem Passwort-Manager, damit du es jederzeit griffbereit 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 automatisierte Angriffsversuche meist genau darauf ab. Wenn du einen individuellen Port für deine verschlüsselten Remote-Verbindungen festlegst, reduzierst du das Risiko für unerlaubte Zugriffe deutlich.
Bearbeite dazu die Konfigurationsdatei sshd_config mit einem Text-Editor. Mit diesem Befehl öffnest du die Datei etwa im Editor nano:
nano /etc/ssh/sshd_configbashSuche 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.
Damit die Änderungen 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 deaktivieren
Zur weiteren Absicherung solltest du den direkten SSH-Login für das Root- bzw. Administrator-Konto unterbinden. So verhinderst du, dass sich jemand bei einem Passwortdiebstahl via Remote Access volle Kontrolle verschafft.
Bevor du das tust, erstelle mindestens einen zusätzlichen Account, damit du dich nicht selbst aussperrst. Unter Linux geht das so:
useradd -g users -d /home/nutzer1 -m -s /bin/bash nutzer1bashDamit erstellst du den User „nutzer1“ und vergibst ein sicheres Kennwort:
passwd nutzer1bashPrü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 Gruppennamen in der sshd_config ein (z. B. AllowGroups ssh_nutzer).
Schritt 5: E-Mail-Info bei SSH-Logins einrichten
Egal welche Methode du wählst, behalte die Remote-Zugriffe im Blick. So siehst du sofort, ob dein SSH-Schutz greift. Ein aktives Monitoring der Verbindungen warnt dich bei unbefugten Zugriffen rechtzeitig. Ein simples Shell-Skript reicht aus, um dir bei jedem erfolgreichen 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
fingertxtErgänze in der Datei /etc/profile diese Zeile:
/opt/shell-login.sh | mailx -s "SSH-Login auf dem Server" mailadresse@example.comtxtSo wird das Skript bei jedem Login getriggert. Stelle sicher, dass das Skript die Berechtigung 755 besitzt, damit es korrekt ausgeführt werden kann:
chmod 755 /opt/shell-login.shbashSchritt 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. Gefährlich wird es erst, wenn die dahinterliegenden Programme Sicherheitslücken haben.
Bei einer Minimal-Installation ist die Anzahl der genutzten Ports gering. Blockiere zur Sicherheit alle nicht benötigten Schnittstellen in deiner Firewall. Linux-Systeme nutzen dafür meist iptables. Damit definierst du präzise Regeln für den Datenverkehr und erlaubst nur gewünschte Ports.
Schritt 7: Software aktuell halten
Sicherheitslücken werden meist schnell durch Updates geschlossen. Wenn du dein Betriebssystem und die Apps regelmäßig aktualisierst, schützt du deinen Server effektiv. Viele Systeme können Sicherheits-Updates automatisch im Hintergrund installieren.
Bei Windows Server legst du unter „Windows Update“ fest, wann nach Aktualisierungen gesucht wird und ob diese sofort installiert werden sollen. Für Linux gibt es Tools wie apt-listchanges oder apticron, die dich informieren. Skripte wie unattended-upgrades erledigen die Installation dann ganz von selbst.
Behalte trotz Automatisierung den Überblick über installierte Patches. So kannst du bei eventuellen Fehlern nach dem Update schneller eingreifen.
Schritt 8: Schutz gegen Brute-Force-Attacken
Eine der häufigsten Methoden ist der Brute-Force-Angriff, bei dem Passwörter automatisiert durchprobiert werden. Je stärker dein Passwort, desto geringer die Erfolgschance.
Bietest du Dienste für andere an, helfen Analyse-Tools: Programme wie Fail2ban (Linux) oder RdpGuard (Windows) prüfen die Log-Files und sperren verdächtige IP-Adressen nach einer festgelegten Anzahl an Fehlversuchen.
Schritt 9: Monitoring-Tools verwenden
Ein sicherer Server erfordert ein reibungsloses Zusammenspiel von Hard- und Software. Das ist eine Daueraufgabe. Da man unmöglich jeden Prozess manuell prüfen kann, helfen Monitoring-Tools. Sie überwachen den Server und schlagen bei Unregelmäßigkeiten Alarm.
Ein Tool wie Monit lässt sich unter Linux leicht einrichten und überwacht Prozesse, Files, Ressourcen oder Skripte. Für tiefergehende Analysen ist Nagios eine Top-Empfehlung. Es ist Open Source und lässt sich durch Nagios-Plugins flexibel erweitern.
Schritt 10: Backups automatisieren
Trotz bester Konfiguration gibt es keinen hundertprozentigen Schutz. Eine solide Backup-Strategie ist daher unverzichtbar, um Daten im Ernstfall schnell wiederherzustellen.
Ein bewährtes Tool ist rsync. Das Programm ist für Linux, macOS und Windows verfügbar und hält deine Datenkopien durch Echtzeit-Abgleich aktuell. Vergiss neben dem allgemeinen Backup auch nicht die Sicherung deiner Datenbanken.
Lagere deine Backups am besten auf einem externen Speichermedium oder einem separaten Server, damit sie bei einem Problem am Hauptsystem sicher sind.