Zum Hauptinhalt springen
Zurück zur Kategorie

VPS Ersteinrichtung: Sicherer Server-Checklist

Schritt-für-Schritt VPS-Ersteinrichtung: erster SSH-Login, Systemaktualisierung, Nicht-Root-Benutzer, SSH-Härtung, Firewall und Fail2Ban-Installation für einen sicheren Server.

Lesezeit: 14 min VPS Einstieg
vpsersteinrichtungsshsicherheitfirewallfail2banlinuxchecklist

Inhaltsverzeichnis

VPS Ersteinrichtung: Sicherer Server-Checklist

Sie haben gerade einen VPS gekauft und verbinden sich zum ersten Mal. Was sollten Sie jetzt tun? Die Standardkonfiguration ist nicht sicherheitsoptimiert: SSH ist mit Root-Passwort offen, keine Firewall, und das System ist nicht aktuell. Diese Anleitung bietet eine Schritt-für-Schritt-Checkliste für die Einrichtung eines sicheren Servers von Grund auf.

Befolgen Sie alle Schritte der Reihe nach. Schließen Sie Ihre bestehende SSH-Verbindung nicht, während Sie die SSH-Konfiguration ändern — testen Sie jede Änderung in einem neuen Terminal-Tab.

Schritt 1: Erste SSH-Verbindung

Holen Sie sich die IP-Adresse und das Root-Passwort Ihres Servers aus dem REXE-Panel. Verbinden Sie sich dann von Ihrem Terminal:

hljs bash
ssh root@SERVER_IP

Überprüfen Sie nach der Verbindung Ihre Systeminformationen:

hljs bash
# Betriebssystem-Informationen
cat /etc/os-release

# Systemressourcen
free -h
df -h
nproc

# Betriebszeit
uptime

Schritt 2: System aktualisieren

Das Erste, was Sie tun sollten, ist das System zu aktualisieren. Veraltete Pakete können Sicherheitslücken enthalten.

hljs bash
# Für Ubuntu/Debian
apt update && apt upgrade -y

# Unnötige Pakete bereinigen
apt autoremove -y
apt autoclean

# Für AlmaLinux/Rocky Linux
dnf update -y
dnf autoremove -y

Wenn während des Upgrades ein Kernel-Update eintrifft, müssen Sie den Server möglicherweise neu starten: reboot

Schritt 3: Nicht-Root-Benutzer erstellen

Direkt als Root zu arbeiten ist gefährlich. Erstellen Sie einen normalen Benutzer mit sudo-Rechten:

hljs bash
# Neuen Benutzer erstellen
adduser admin

# Zur sudo-Gruppe hinzufügen (Ubuntu/Debian)
usermod -aG sudo admin

# Zur wheel-Gruppe hinzufügen (AlmaLinux/Rocky)
usermod -aG wheel admin

# Zum Benutzer wechseln und testen
su - admin
sudo whoami  # Sollte "root" ausgeben
exit

SSH-Schlüssel einrichten

Die Verwendung von SSH-Schlüsseln statt Passwörtern ist viel sicherer:

hljs bash
# Auf Ihrem lokalen Rechner ein Schlüsselpaar generieren
ssh-keygen -t ed25519 -C "vps-admin"

# Den öffentlichen Schlüssel auf den Server kopieren
ssh-copy-id admin@SERVER_IP

# Oder manuell:
cat ~/.ssh/id_ed25519.pub
# Fügen Sie die Ausgabe auf dem Server ein:
mkdir -p /home/admin/.ssh
nano /home/admin/.ssh/authorized_keys
chmod 700 /home/admin/.ssh
chmod 600 /home/admin/.ssh/authorized_keys
chown -R admin:admin /home/admin/.ssh

Schritt 4: SSH-Konfiguration härten

Bearbeiten Sie die SSH-Konfigurationsdatei:

hljs bash
nano /etc/ssh/sshd_config

Wenden Sie folgende Einstellungen an:

# Root-Login deaktivieren
PermitRootLogin no

# Passwort-Authentifizierung deaktivieren (nach SSH-Schlüssel-Einrichtung)
PasswordAuthentication no

# Leere Passwörter nicht erlauben
PermitEmptyPasswords no

# Maximale Anmeldeversuche
MaxAuthTries 3

# Anmelde-Timeout
LoginGraceTime 30

# SSH-Port ändern (optional, aber empfohlen)
Port 2222

# Nur bestimmten Benutzern erlauben
AllowUsers admin
hljs bash
# Konfiguration testen
sshd -t

# SSH-Dienst neu starten
systemctl restart sshd

# Verbindung von einem NEUEN TERMINAL testen!
ssh -p 2222 admin@SERVER_IP

Wenn Sie den SSH-Port geändert haben, überprüfen Sie, ob Sie sich über den neuen Port verbinden können, bevor Sie Firewall-Regeln aktualisieren!

Schritt 5: Firewall einrichten

Mit UFW (Ubuntu/Debian)

hljs bash
# UFW installieren
apt install ufw -y

# Standardrichtlinien
ufw default deny incoming
ufw default allow outgoing

# SSH-Port erlauben (verwenden Sie 2222, wenn Sie ihn geändert haben)
ufw allow 2222/tcp
# oder für Standard-Port:
# ufw allow ssh

# Webdienste (falls benötigt)
ufw allow 80/tcp
ufw allow 443/tcp

# UFW aktivieren
ufw enable

# Status prüfen
ufw status verbose

Mit firewalld (AlmaLinux/Rocky)

hljs bash
# firewalld starten
systemctl start firewalld
systemctl enable firewalld

# SSH-Port erlauben
firewall-cmd --permanent --add-port=2222/tcp
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reload

# Status prüfen
firewall-cmd --list-all

Schritt 6: Fail2Ban installieren

Fail2Ban bietet automatischen Schutz gegen Brute-Force-Angriffe:

hljs bash
# Fail2Ban installieren
apt install fail2ban -y  # Ubuntu/Debian
# oder
dnf install fail2ban -y  # AlmaLinux/Rocky

# Lokale Konfiguration erstellen
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
nano /etc/fail2ban/jail.local
hljs ini
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5

[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
maxretry = 3
bantime = 86400
hljs bash
# Fail2Ban starten
systemctl start fail2ban
systemctl enable fail2ban

# Status prüfen
fail2ban-client status
fail2ban-client status sshd

Schritt 7: Zeitzone konfigurieren

Die richtige Zeitzone ist wichtig für aussagekräftige Log-Dateien:

hljs bash
# Aktuelle Zeitzone prüfen
timedatectl

# Zeitzone setzen (Beispiel: Europa/Berlin)
timedatectl set-timezone Europe/Berlin

# NTP-Synchronisation aktivieren
timedatectl set-ntp true

# Überprüfen
timedatectl status
date

Schritt 8: Grundlegende Tools installieren

hljs bash
# Nützliche Tools
apt install -y \
  curl wget git vim htop \
  net-tools dnsutils \
  unzip tar \
  logwatch

Überprüfungs-Checkliste nach der Einrichtung

hljs bash
# Läuft der SSH-Dienst?
systemctl status sshd

# Ist die Firewall aktiv?
ufw status  # oder: firewall-cmd --state

# Läuft Fail2Ban?
fail2ban-client status

# Ist das System aktuell?
apt list --upgradable 2>/dev/null | head -20

# Offene Ports
ss -tlnp

# Letzte Anmeldeversuche
grep "Failed password" /var/log/auth.log | tail -10

✅ Schnell-Checkliste

  • Erste SSH-Verbindung hergestellt
  • System aktualisiert (apt update && apt upgrade)
  • Nicht-Root-Sudo-Benutzer erstellt
  • SSH-Schlüssel installiert
  • SSH-Root-Login deaktiviert (PermitRootLogin no)
  • SSH-Passwort-Login deaktiviert (PasswordAuthentication no)
  • SSH-Port geändert (optional)
  • Firewall installiert und konfiguriert
  • Fail2Ban installiert und aktiviert
  • Zeitzone konfiguriert
  • Grundlegende Tools installiert
  • SSH-Verbindung mit neuem Benutzer getestet

Fazit

Nach Abschluss dieser Schritte erfüllt Ihr Server grundlegende Sicherheitsstandards. Als nächsten Schritt empfehlen wir, unseren Leitfaden zur Server-Sicherheitshärtung zu lesen. Vergessen Sie nicht, regelmäßige Systemaktualisierungen durchzuführen und Ihre Logs zu überwachen.