Server Hardening Checkliste: Was muss ich nach der Installation absichern?
Server Hardening Checkliste: Was muss ich nach der Installation absichern?
Ein frisch installierter Linux-Server ist wie ein neues Büro ohne Schlösser. Die Türen stehen offen, die Standardkonfiguration ist für Bequemlichkeit gebaut — nicht für Sicherheit. Das folgende ist keine akademische Übung, sondern eine praktische Checkliste für Debian/Ubuntu-Server.
1. System aktualisieren
Bevor irgendetwas anderes passiert:
apt update && apt upgrade -y
apt install unattended-upgrades -y
dpkg-reconfigure unattended-upgrades
Automatische Sicherheitsupdates aktivieren. Kein Administrator hat Zeit jeden Patch manuell einzuspielen — und vergessene Updates sind eine der häufigsten Einfalltore.
2. SSH absichern
SSH ist der wichtigste Zugang zum Server — und der meistangegriffene.
Root-Login deaktivieren
# /etc/ssh/sshd_config
PermitRootLogin no
Kein direkter Root-Zugang. Erst als normaler User einloggen, dann sudo verwenden.
Passwort-Authentifizierung deaktivieren
# /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
Nur noch SSH-Keys. Passwörter können erraten werden — Keys nicht.
Standard-Port ändern (optional, aber sinnvoll)
# /etc/ssh/sshd_config
Port 2222 # beliebiger Port über 1024
Reduziert automatisiertes Scanning erheblich. Kein Sicherheitsgewinn gegen gezielten Angriff, aber weniger Lärm in den Logs.
SSH nach Änderungen neu starten
systemctl restart sshd
Wichtig: Vor dem Neustart in einer zweiten Session testen ob der Key-Login funktioniert.
3. Firewall einrichten (UFW)
apt install ufw -y
# Standardmäßig alles ablehnen
ufw default deny incoming
ufw default allow outgoing
# Nur notwendige Ports öffnen
ufw allow 2222/tcp # SSH (angepasster Port)
ufw allow 80/tcp # HTTP
ufw allow 443/tcp # HTTPS
ufw enable
ufw status verbose
Prinzip: Alles was nicht explizit erlaubt ist, ist verboten. Nicht umgekehrt.
4. Fail2Ban installieren
Fail2Ban erkennt wiederholte fehlgeschlagene Login-Versuche und blockiert die Quell-IP automatisch.
apt install fail2ban -y
# /etc/fail2ban/jail.local
[sshd]
enabled = true
port = 2222
maxretry = 5
bantime = 3600
findtime = 600
Nach 5 fehlgeschlagenen Versuchen in 10 Minuten: IP für eine Stunde gesperrt.
5. Nicht benötigte Dienste deaktivieren
# Welche Dienste laufen?
systemctl list-units --type=service --state=running
# Nicht benötigte Dienste deaktivieren (Beispiel: Bluetooth auf Server sinnlos)
systemctl disable bluetooth
systemctl stop bluetooth
Jeder laufende Dienst ist eine potenzielle Angriffsfläche. Was nicht läuft, kann nicht kompromittiert werden.
6. Benutzer und Berechtigungen
# Neuen Admin-User anlegen
adduser stefan
usermod -aG sudo stefan
# SSH-Key für neuen User einrichten
mkdir /home/stefan/.ssh
chmod 700 /home/stefan/.ssh
# Public Key einfügen:
nano /home/stefan/.ssh/authorized_keys
chmod 600 /home/stefan/.ssh/authorized_keys
chown -R stefan:stefan /home/stefan/.ssh
Kein gemeinsamer Root-Account. Jede Person mit Serverzugang hat einen eigenen Account. So ist nachvollziehbar wer wann was gemacht hat.
7. Wichtige Verzeichnisse überwachen (AIDE)
apt install aide -y
aideinit
mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
# Täglicher Check via Cron:
echo "0 3 * * * root /usr/bin/aide --check" >> /etc/crontab
AIDE (Advanced Intrusion Detection Environment) erstellt einen Fingerabdruck des Dateisystems und warnt bei unerwarteten Änderungen.
8. Logs im Blick behalten
# Aktuelle Auth-Logs prüfen
tail -f /var/log/auth.log
# Fehlgeschlagene Logins
grep "Failed password" /var/log/auth.log | tail -20
# Fail2Ban-Status
fail2ban-client status sshd
Oder besser: Monitoring-Lösung einrichten die bei Auffälligkeiten automatisch Alarm schlägt (Grafana + Loki, oder einfach logwatch per Mail).
9. Regelmäßige Backups
# Einfaches Beispiel mit rsync auf externen Server
rsync -avz --delete /var/www/ backup-user@backup-server:/backups/$(hostname)/www/
Das 3-2-1-Prinzip: 3 Kopien, auf 2 verschiedenen Medien, 1 davon außerhalb des Standorts. Backups sind wertlos wenn sie nie getestet wurden — regelmäßig einen Restore durchführen.
10. Kurz-Checkliste zum Abhaken
- [ ] System aktualisiert, automatische Sicherheitsupdates aktiv
- [ ] Root-SSH-Login deaktiviert
- [ ] Passwort-Authentifizierung für SSH deaktiviert
- [ ] SSH-Port geändert (optional)
- [ ] UFW Firewall aktiv, nur notwendige Ports offen
- [ ] Fail2Ban installiert und konfiguriert
- [ ] Nicht benötigte Dienste deaktiviert
- [ ] Eigener Admin-User angelegt, Root nicht direkt nutzbar
- [ ] Backup-Konzept vorhanden und getestet
- [ ] Monitoring aktiv
Du willst die Absicherung nicht selbst durchführen? Rapid Conversion IT übernimmt Server Hardening, Dokumentation und laufendes Patch-Management. Anfragen →