Du hast gerade einen frischen Linux-Server aufgesetzt –
ob als KVM-Server, VPS oder Dedicated Server. Doch bevor du mit der eigentlichen
Einrichtung deiner Dienste beginnst, solltest du deinen Server
unbedingt absichern.
Ein ungeschützter Server ist ein leichtes Ziel für automatisierte
Angriffe, die innerhalb von Minuten nach der Bereitstellung beginnen können.
In diesem Beitrag zeigen wir dir die wichtigsten Schritte, um
deinen Linux-Server zu härten.
1. System aktualisieren
Der allererste Schritt auf jedem neuen Server: Bringe das Betriebssystem und alle installierten Pakete auf den neuesten Stand. Sicherheitslücken in veralteter Software sind eines der häufigsten Einfallstore für Angreifer.
Für Debian / Ubuntu:
Für CentOS / AlmaLinux / Rocky Linux:
Tipp: Aktiviere automatische Sicherheitsupdates,
damit kritische Patches zeitnah eingespielt werden. Unter Debian/Ubuntu geht das
mit dem Paket unattended-upgrades:
sudo dpkg-reconfigure -plow unattended-upgrades
2. Neuen Benutzer anlegen & Root-Login deaktivieren
Standardmäßig verbindest du dich als root mit deinem Server. Das ist gefährlich, da der Root-Benutzer uneingeschränkte Rechte hat und der Benutzername jedem Angreifer bekannt ist.
Neuen Benutzer erstellen:
Benutzer zur sudo-Gruppe hinzufügen:
Ab jetzt kannst du dich mit deinem neuen Benutzer anmelden und bei Bedarf
mit sudo Befehle mit Root-Rechten ausführen. Den
direkten Root-Login deaktivieren wir im nächsten
Schritt über die SSH-Konfiguration.
3. SSH absichern
SSH ist das Haupttor zu deinem Server. Daher ist es besonders wichtig,
diesen Dienst bestmöglich abzusichern. Die
Konfiguration findest du unter /etc/ssh/sshd_config.
SSH-Port ändern
Der Standard-SSH-Port 22 wird von automatisierten Scannern als erstes geprüft. Durch das Ändern des Ports reduzierst du die Anzahl der Brute-Force-Versuche erheblich:
Ersetze 2222 durch einen beliebigen Port zwischen 1024 und 65535. Merke dir den Port gut!
Root-Login verbieten
Passwort-Authentifizierung deaktivieren
Verwende stattdessen SSH-Keys – diese sind deutlich sicherer als Passwörter:
PubkeyAuthentication yes
SSH-Dienst neu starten
Nachdem du alle Änderungen vorgenommen hast, starte den SSH-Dienst neu:
Wichtig: Bevor du die aktuelle SSH-Sitzung schließt, öffne ein zweites Terminal und teste, ob du dich mit dem neuen Benutzer und den neuen Einstellungen erfolgreich verbinden kannst. So sperrst du dich nicht versehentlich aus!
4. SSH-Keys einrichten
SSH-Keys bestehen aus einem Schlüsselpaar: einem privaten Schlüssel (bleibt auf deinem Computer) und einem öffentlichen Schlüssel (wird auf dem Server hinterlegt).
Schlüsselpaar erzeugen (auf deinem lokalen Rechner):
Öffentlichen Schlüssel auf den Server kopieren:
Danach kannst du dich ohne Passwort anmelden – die
Authentifizierung läuft über dein Schlüsselpaar. In
Kombination mit PasswordAuthentication no ist dein SSH-Zugang
nun deutlich besser geschützt.
5. Firewall einrichten (UFW)
Eine Firewall sorgt dafür, dass nur erlaubter Netzwerkverkehr deinen Server erreicht. Unter Debian und Ubuntu empfehlen wir UFW (Uncomplicated Firewall) – eine einfache Oberfläche für iptables.
UFW installieren und einrichten:
# SSH-Port erlauben (wichtig: deinen geänderten Port verwenden!)
sudo ufw allow 2222/tcp
# Webserver-Ports erlauben (falls benötigt)
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# Firewall aktivieren
sudo ufw enable
Status prüfen:
Wichtig: Stelle immer sicher, dass dein SSH-Port freigegeben ist, bevor du die Firewall aktivierst. Andernfalls sperrst du dich sofort aus deinem Server aus!
Das Prinzip ist einfach: Alles verbieten, was nicht explizit erlaubt ist. Öffne nur die Ports, die du tatsächlich benötigst.
6. Fail2Ban installieren
Fail2Ban überwacht Log-Dateien und sperrt IP-Adressen automatisch, die durch zu viele fehlgeschlagene Login-Versuche auffallen. Das schützt effektiv vor Brute-Force-Angriffen.
Installation:
Konfiguration anlegen:
Erstelle eine lokale Konfigurationsdatei, damit deine Einstellungen bei Updates nicht überschrieben werden:
Wichtige Einstellungen in /etc/fail2ban/jail.local:
enabled = true
port = 2222
filter = sshd
maxretry = 3
findtime = 600
bantime = 3600
Diese Konfiguration bedeutet:
- maxretry = 3 – Nach 3 fehlgeschlagenen Versuchen wird die IP gesperrt
- findtime = 600 – Die Versuche werden innerhalb von 10 Minuten gezählt
- bantime = 3600 – Die Sperre dauert 1 Stunde
Fail2Ban starten und aktivieren:
sudo systemctl start fail2ban
Gesperrte IPs anzeigen:
7. Unnötige Dienste deaktivieren
Jeder laufende Dienst ist eine potenzielle Angriffsfläche. Prüfe, welche Dienste auf deinem Server laufen, und deaktiviere alles, was du nicht benötigst.
Laufende Dienste anzeigen:
Offene Ports anzeigen:
Dienst deaktivieren und stoppen:
sudo systemctl stop dienstname
Faustregel: Wenn du nicht weißt, wofür ein Dienst da ist, recherchiere kurz, bevor du ihn deaktivierst. Einige Systemdienste sind für den Betrieb essenziell.
Checkliste: Server-Absicherung auf einen Blick
Hier ist eine Übersicht aller Maßnahmen, die du nach der Ersteinrichtung durchführen solltest:
-
System aktualisieren – Alle Pakete auf den neuesten Stand bringen und automatische Updates einrichten
-
Eigenen Benutzer anlegen – Nicht mehr als root arbeiten, sudo verwenden
-
SSH härten – Port ändern, Root-Login verbieten, Passwort-Auth deaktivieren
-
SSH-Keys einrichten – Sichere Schlüsselauthentifizierung statt Passwörter
-
Firewall aktivieren – Nur benötigte Ports freigeben
-
Fail2Ban installieren – Automatischer Schutz gegen Brute-Force-Angriffe
-
Unnötige Dienste deaktivieren – Angriffsfläche minimieren
Fazit
Die hier beschriebenen Maßnahmen bilden das Grundgerüst einer soliden Server-Absicherung. Sie schützen deinen Server vor den häufigsten Angriffsszenarien und sollten auf jedem Linux-Server umgesetzt werden – unabhängig davon, welche Dienste du darauf betreibst.
Sicherheit ist kein einmaliges Setup, sondern ein fortlaufender Prozess. Halte dein System regelmäßig aktuell, überprüfe deine Konfiguration und behalte die Logs im Blick.
Bei Fragen zur Server-Absicherung steht dir unser Support-Team jederzeit gerne zur Verfügung!