🔐 SSH-Verbindung absichern

Vollständige Anleitung zum Absichern Ihrer SSH-Verbindung durch Änderung des Ports und Konfiguration zusätzlicher Sicherheitsoptionen zur Verhinderung von Brute-Force-Angriffen.

🔐 SSH-Verbindung absichern zur Verhinderung von Brute-Force-Angriffen

Der Standard-SSH-Port (22) wird häufig von automatisierten Brute-Force-Angriffen angegriffen. Diese Anleitung zeigt Ihnen, wie Sie den SSH-Port ändern und zusätzliche Sicherheitsoptionen konfigurieren, um Ihren Server zu schützen.

📋 Voraussetzungen

  • Ein VPS-Server mit Root- oder sudo-Zugriff
  • Eine aktive SSH-Verbindung
  • UFW installiert und konfiguriert (siehe das Tutorial UFW installieren)

⚠️ WICHTIG: Behalten Sie eine SSH-Sitzung offen

Öffnen Sie zwei SSH-Terminals parallel:

  • Terminal 1: Arbeits-Sitzung (für Änderungen)
  • Terminal 2: Backup-Sitzung (nur für den Fall)

🔧 SSH-Port ändern

Schritt 1: Neuen Port wählen

Wählen Sie einen Port zwischen 1024 und 65535. Zu vermeidende gebräuchliche Ports:

  • 22 (Standard-SSH-Port, stark angegriffen)
  • 80, 443 (HTTP/HTTPS)
  • 3306, 5432 (Datenbanken)

Beispiele für sichere Ports: 2222, 2200, 1022, 5000

Schritt 2: SSH-Konfiguration ändern

# SSH-Konfigurationsdatei bearbeiten sudo nano /etc/ssh/sshd_config

Schritt 3: Port ändern

Suchen Sie die Zeile #Port 22 und ändern Sie sie:

# Vorher
#Port 22

# Nachher (ersetzen Sie 2222 durch Ihren gewählten Port)
Port 2222

Tipp: Verwenden Sie Ctrl + W in nano, um nach "Port 22" zu suchen

Schritt 4: Speichern und beenden

In nano:

  • Ctrl + X zum Beenden
  • Y zum Bestätigen
  • Enter zum Speichern

Schritt 5: Syntax überprüfen

# Überprüfen, dass die Konfiguration gültig ist sudo sshd -t

Wenn dieser Befehl keine Fehler zurückgibt, ist Ihre Konfiguration korrekt.

Schritt 6: Neuen Port in UFW erlauben

# Neuen SSH-Port erlauben (ersetzen Sie 2222 durch Ihren Port) sudo ufw allow 2222/tcp # Optional: Alten Port 22 entfernen, wenn Sie ihn nicht mehr verwenden sudo ufw delete allow 22/tcp # UFW neu laden sudo ufw reload # Überprüfen, dass die Regel aktiv ist sudo ufw status | grep 2222

Schritt 7: SSH-Dienst neu starten

# SSH mit der neuen Konfiguration neu starten sudo systemctl restart sshd # Überprüfen, dass SSH noch funktioniert sudo systemctl status sshd

Schritt 8: Neue Verbindung testen

In einem neuen Terminal testen Sie die Verbindung mit dem neuen Port:

# Ersetzen Sie 2222 durch Ihren Port und benutzer@ihre-ip durch Ihre Anmeldedaten ssh -p 2222 benutzer@ihre-ip

Wenn die Verbindung funktioniert, können Sie die alte Sitzung auf Port 22 schließen.

🔒 Zusätzliche Sicherheitsoptionen

Root-Login deaktivieren

# SSH-Konfiguration bearbeiten sudo nano /etc/ssh/sshd_config # Diese Zeile finden und ändern PermitRootLogin no # Speichern und neu starten sudo sshd -t sudo systemctl restart sshd

Verbindungsversuche begrenzen

sudo nano /etc/ssh/sshd_config # Diese Zeilen hinzufügen oder ändern MaxAuthTries 3 # Maximum 3 Verbindungsversuche LoginGraceTime 30 # 30 Sekunden Timeout zum Verbinden

Passwort-Authentifizierung deaktivieren (nur SSH-Schlüssel verwenden)

sudo nano /etc/ssh/sshd_config # Diese Zeile ändern PasswordAuthentication no PubkeyAuthentication yes

Nur SSH-Protokoll Version 2 verwenden

sudo nano /etc/ssh/sshd_config # Diese Zeile hinzufügen (wenn sie nicht existiert) Protocol 2

X11-Tunnel deaktivieren (wenn Sie sie nicht benötigen)

sudo nano /etc/ssh/sshd_config # Diese Zeile ändern X11Forwarding no

Empfohlene vollständige Konfiguration

Hier ist eine vollständige sichere SSH-Konfiguration, die in /etc/ssh/sshd_config hinzugefügt werden soll:

# Benutzerdefinierter SSH-Port
Port 2222

# Root-Login deaktivieren
PermitRootLogin no

# Verbindungsgrenzen
MaxAuthTries 3
LoginGraceTime 30

# Passwort-Authentifizierung deaktivieren (wenn Sie SSH-Schlüssel verwenden)
# PasswordAuthentication no
# PubkeyAuthentication yes

# Nur SSH-Protokoll Version 2
Protocol 2

# X11-Forwarding deaktivieren
X11Forwarding no

# TCP-Tunnel deaktivieren
AllowTcpForwarding no

# Inaktivitäts-Timeout vor Trennung
ClientAliveInterval 300
ClientAliveCountMax 2

Nach jeder Änderung vergessen Sie nicht:

# Syntax überprüfen sudo sshd -t # SSH neu starten sudo systemctl restart sshd

🔄 Benutzer mit sudo erstellen (falls erforderlich)

Wenn Sie Root-Login deaktiviert haben, stellen Sie sicher, dass Sie einen Benutzer mit sudo-Berechtigungen haben:

# Neuen Benutzer erstellen sudo adduser meinbenutzer # Benutzer zur sudo-Gruppe hinzufügen sudo usermod -aG sudo meinbenutzer # Testen, dass der Benutzer sudo verwenden kann su - meinbenutzer sudo whoami # Sollte "root" anzeigen

✅ Endgültige Überprüfung

Überprüfen, dass SSH funktioniert

# Dienststatus überprüfen sudo systemctl status sshd # Überprüfen, dass SSH auf dem richtigen Port lauscht sudo netstat -tlnp | grep ssh # oder sudo ss -tlnp | grep ssh # Konfiguration überprüfen sudo sshd -T | grep port

SSH-Logs überprüfen

# Verbindungsversuche anzeigen sudo tail -f /var/log/auth.log # Erfolgreiche Verbindungen anzeigen sudo grep "Accepted" /var/log/auth.log # Fehlgeschlagene Versuche anzeigen sudo grep "Failed" /var/log/auth.log

🛡️ Zusätzlicher Schutz mit fail2ban

fail2ban ist ein Tool, das automatisch IPs blockiert, die Brute-Force-Angriffe versuchen.

fail2ban installieren

sudo apt update sudo apt install fail2ban -y

Grundkonfiguration

# Konfigurationsdatei kopieren sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local # Konfiguration bearbeiten sudo nano /etc/fail2ban/jail.local

Empfohlene Konfiguration für SSH:

[sshd] enabled = true port = 2222 # Ihr neuer SSH-Port maxretry = 3 # Anzahl der Versuche vor Bann bantime = 3600 # Bannzeit in Sekunden (1 Stunde) findtime = 600 # Zeitfenster zum Zählen der Versuche (10 Minuten)

fail2ban aktivieren

# fail2ban starten sudo systemctl start fail2ban # Beim Start aktivieren sudo systemctl enable fail2ban # Status überprüfen sudo systemctl status fail2ban # Gebannte IPs anzeigen sudo fail2ban-client status sshd

🆘 Fehlerbehebung

Kann mich nicht mehr über SSH verbinden

Wenn Sie vom Server ausgesperrt sind:

  1. Verwenden Sie Ihre Backup-Sitzung (Terminal 2, das Sie offen gehalten haben)

  2. Wenn Sie keine Backup-Sitzung haben:

    • Kontaktieren Sie den Infrawire-Support mit Ihren Anmeldedaten
    • Verwenden Sie die VNC/KVM-Konsole aus Ihrem Control Panel
    • Verbinden Sie sich direkt und stellen Sie die alte Konfiguration wieder her:
      sudo nano /etc/ssh/sshd_config # Setzen Sie Port 22 zurück sudo systemctl restart sshd

SSH-Port antwortet nicht

# Überprüfen, dass SSH auf dem Port lauscht sudo netstat -tlnp | grep ssh # Überprüfen, dass der Port in UFW offen ist sudo ufw status | grep 2222 # SSH-Logs überprüfen sudo journalctl -u sshd -n 50

Muss mich vorübergehend mit dem alten Port verbinden

Wenn Sie sich mit dem alten Port (22) verbinden müssen, bevor Sie ihn entfernen:

# Port 22 vorübergehend erlauben sudo ufw allow 22/tcp # Verbinden ssh -p 22 benutzer@ihre-ip # Einmal verbunden, Regel entfernen sudo ufw delete allow 22/tcp

📚 Zusätzliche Ressourcen

❓ Häufig gestellte Fragen

F: Welchen Port soll ich für SSH wählen?
A: Wählen Sie einen Port zwischen 1024 und 65535. Vermeiden Sie gebräuchliche Ports (80, 443, 3306, etc.). Ports wie 2222, 2200 oder 1022 sind gute Wahlmöglichkeiten.

F: Kann ich denselben Port für mehrere Dienste verwenden?
A: Nein, jeder Dienst muss seinen eigenen eindeutigen Port haben.

F: Muss ich wirklich den SSH-Port ändern?
A: Es wird dringend empfohlen. Es reduziert automatisierte Brute-Force-Angriffe erheblich.

F: Ist fail2ban notwendig, wenn ich den Port geändert habe?
A: Nein, aber es ist eine empfohlene zusätzliche Sicherheitsschicht.

F: Wie verbinde ich mich mit dem neuen Port von einem SSH-Client aus?
A: Verwenden Sie die Option -p: ssh -p 2222 benutzer@ihre-ip


Viel Erfolg bei der Sicherung! 🚀