Linux-VPS absichern: UFW, fail2ban, SSH-Schlüssel, Root
Leitfaden zum Absichern eines Lordhosting-Linux-VPS: UFW-Firewall, Brute-Force-Schutz mit fail2ban, SSH-Schlüssel-Authentifizierung und Deaktivierung des Root-Logins.
Ein im Internet exponierter VPS wird permanent gescannt. Ohne Mindestkonfiguration riskieren Sie SSH-Brute-Force-Versuche, Einbrüche und die Kompromittierung Ihrer Dienste. Diese Anleitung legt die Grundlagen für einen abgesicherten Debian-/Ubuntu-VPS in unter 30 Minuten.
⚙️ Voraussetzungen
- Ein Lordhosting-VPS (empfohlen: Debian 11/12 oder Ubuntu 22.04/24.04)
- Ein SSH-Client (Terminal unter macOS/Linux, PowerShell oder PuTTY unter Windows)
- Ihre per E-Mail bei Lieferung erhaltenen
root-Zugangsdaten
⚙️ 1. Initiale SSH-Verbindung
Verbinden Sie sich ein letztes Mal als Root, um die nächsten Schritte vorzubereiten:
ssh root@ihre_ip
⚙️ 2. System aktualisieren
Beginnen Sie immer damit, die installierten Pakete zu patchen:
apt update && apt upgrade -y
⚙️ 3. Sudo-Benutzer anlegen
Root zu deaktivieren ist ohne Ersatzbenutzer gefährlich. Erstellen Sie einen mit Sudo-Rechten:
adduser lordadmin
usermod -aG sudo lordadmin
Ersetzen Sie lordadmin durch den Benutzernamen Ihrer Wahl.
⚙️ 4. SSH-Schlüssel-Authentifizierung konfigurieren
Auf Ihrem lokalen Rechner ein Schlüsselpaar erzeugen (falls noch nicht vorhanden):
ssh-keygen -t ed25519 -C "ihre_email@example.com"
Akzeptieren Sie den Standardpfad (~/.ssh/id_ed25519) und wählen Sie eine starke Passphrase.
Kopieren Sie dann den öffentlichen Schlüssel auf den VPS:
ssh-copy-id lordadmin@ihre_ip
Falls ssh-copy-id nicht verfügbar ist (Windows), kopieren Sie den Inhalt von ~/.ssh/id_ed25519.pub manuell in /home/lordadmin/.ssh/authorized_keys auf dem VPS.
Testen Sie die Schlüssel-Verbindung in einem neuen Fenster:
ssh lordadmin@ihre_ip
Wenn sie ohne Passwortabfrage funktioniert, fahren Sie fort. Andernfalls ändern Sie nichts und beheben Sie zuerst die Authentifizierung.
⚙️ 5. Root-Login und Passwort-Anmeldung deaktivieren
Weiterhin als lordadmin angemeldet, öffnen Sie die SSH-Konfiguration:
sudo nano /etc/ssh/sshd_config
Ändern oder ergänzen Sie folgende Zeilen:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
Speichern (Strg+O, Enter, Strg+X) und SSH neu laden:
sudo systemctl restart ssh
⚠️ Schließen Sie Ihre aktive Sitzung nicht, bevor Sie in einem neuen Fenster überprüft haben, dass die Anmeldung als
lordadminmit Ihrem Schlüssel funktioniert. Falls nicht, sind Sie noch verbunden und können zurückrollen.
⚙️ 6. UFW installieren und konfigurieren (Firewall)
UFW (Uncomplicated Firewall) ist ein einfacher Wrapper um iptables.
sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow OpenSSH
sudo ufw enable
Status prüfen:
sudo ufw status verbose
Vergessen Sie nicht, die für Ihre Dienste benötigten Ports zu öffnen. Beispiele:
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw allow 25565/tcp # Minecraft Java
sudo ufw allow 19132/udp # Minecraft Bedrock
⚙️ 7. fail2ban installieren und konfigurieren
fail2ban sperrt automatisch IPs, die mehrfache fehlgeschlagene Verbindungsversuche zeigen:
sudo apt install -y fail2ban
Erstellen Sie eine lokale Konfiguration (ändern Sie jail.conf nicht direkt):
sudo nano /etc/fail2ban/jail.local
Fügen Sie folgendes ein:
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
Service starten:
sudo systemctl enable --now fail2ban
Gesperrte IPs in Echtzeit anzeigen:
sudo fail2ban-client status sshd
⚙️ 8. Abschließende Überprüfung
- ✅ SSH-Verbindung nur per Schlüssel (kein Passwort)
- ✅ Root-Login deaktiviert
- ✅ UFW aktiv mit minimalen Regeln
- ✅ fail2ban überwacht SSH
Sie können jetzt Ihre Dienste (Web, Pterodactyl, Discord-Bots usw.) auf einem sauberen Untergrund installieren. Für ein weitergehendes Härten denken Sie an die Aktivierung der automatischen Sicherheitsupdates mit unattended-upgrades und an regelmäßige Backups Ihres VPS.

