Überwachung und Sicherung SSH auf einem Linux-Server bedeutet kontinuierliches Beobachten SSH Protokolle für verdächtige Aktivitäten, Erzwingung schlüsselbasierter Authentifizierung, Zugriffsbeschränkung per Firewall und Optimierung der sshd_config gemäß Best Practices. Echtzeitschutz (Fail2ban/CrowdSec), Zwei-Faktor-Authentifizierung und regelmäßige Patches reduzieren das Risiko von Brute-Force-Angriffen, Kontoübernahmen und Fehlkonfigurationen.
Wenn Sie manage Linux-Server: Überwachung und Sicherung lernen SSH Auf einem Linux-Server ist dies nicht verhandelbar. SSH SSH ist die Standardmethode für den Fernzugriff und ein beliebtes Ziel für automatisierte Bots. In diesem Leitfaden zeige ich Ihnen, wie Sie die SSH-Konfiguration absichern, Echtzeitüberwachung und -warnungen einrichten und mehrschichtige Sicherheitsvorkehrungen implementieren – ohne sich selbst auszusperren.
Welche Bedrohungen zielen SSH und was man sehen sollte
SSH sieht sich ständiger roher Gewalt gegenüber Angriffe, Credential Stuffing und Privilege Escalation-Versuche. Ihre Verteidigung beginnt mit Transparenz. Wissen Sie, wo Sie suchen müssen und wie „schädliche“ Aktivitäten in Ihren Protokollen und Metriken aussehen.
Wichtige Log-Signale
- Wiederholte Eingaben von „Falsches Passwort“ oder „Ungültiger Benutzer“ von derselben IP-Adresse
- Anmeldungen zu ungewöhnlichen Zeiten, aus unbekannten Ländern oder Netzwerken
- Häufige Verbindungsabbrüche bei der Authentifizierung (Bot-Scans)
- Root-Anmeldeversuche und sudo-Authentifizierungsfehler
Wichtige Kennzahlen zur Verfolgung
- Erfolgs-/Fehlerraten und Spitzenwerte der Authentifizierung pro IP-Adresse
- Anzahl gesperrter IPs (Fail2ban/CrowdSec)
- Neue öffentliche Schlüssel hinzugefügt, Benutzeränderungen und sudoers-Bearbeitungen
- SSH Daemon-Neustarts, Konfigurationsänderungen und Kernel-Updates
Schnellen SSH Sicherheits-Checkliste
- Verwenden Sie schlüsselbasierte Authentifizierung; deaktivieren Sie Passwörter.
- Direkte Root-Anmeldung deaktivieren
- Benutzer/Gruppen einschränken, die berechtigt sind SSH
- Aktivieren Sie Fail2ban oder CrowdSec, um Brute-Force-Angriffe auf IP-Adressen zu blockieren.
- Firewall: erlauben SSH nur von vertrauenswürdigen IPs, wenn möglich
- Leerlauf-Timeouts und Sperrrichtlinien festlegen
- Aktivieren Sie die Zwei-Faktor-Authentifizierung (TOTP) für privilegierte Konten.
- Protokolle überwachen, Warnmeldungen aktivieren und Patches installierenSSH regelmäßig
So überwachen Sie SSH Zugriff in Echtzeit
Kontrolliere SSH Protokolle schnell
Die meisten Debian/Ubuntu-Systeme protokollieren in /var/log/auth.log, während RHEL/CentOS/AlmaLinux /var/log/secure verwenden. Mit systemd ist journalctl oft der schnellste Weg, um einen Einblick zu erhalten.
# See SSH activity today
sudo journalctl -u ssh -S today
# Tail SSH logs live (Debian/Ubuntu)
sudo tail -f /var/log/auth.log
# Tail SSH logs live (RHEL/CentOS/AlmaLinux)
sudo tail -f /var/log/secure
# Top failing IPs (Debian/Ubuntu)
sudo grep "Failed password" /var/log/auth.log | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head
# List recent successful and failed logins
last
lastb # failed logins (requires btmp)Blockieren Sie Brute-Force-Angriffe mit Fail2ban
Fail2ban liest Ihre Protokolle und sperrt automatisch an der Firewall gegen betreffende IP-Adressen – eine Kernkomponente von SSH Härten.
# Install
# Debian/Ubuntu
sudo apt update && sudo apt install -y fail2ban
# RHEL/CentOS/AlmaLinux
sudo dnf install -y fail2ban
# Enable and start
sudo systemctl enable --now fail2ban
# Create jail override
sudo tee /etc/fail2ban/jail.d/sshd.local >/dev/null <<'EOF'
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = %(sshd_log)s
maxretry = 4
findtime = 10m
bantime = 24h
ignoreip = 127.0.0.1/8 ::1
EOF
# Reload and check status
sudo systemctl restart fail2ban
sudo fail2ban-client status sshdTipp: Verwenden Sie ignoreip, um Ihr Büro/VPN auf die Whitelist zu setzen. Für Cloud-Server kombinieren Sie dies mit Firewalls des Anbieters, um einen umfassenden Schutz zu gewährleisten.
Audits SSH Änderungen und Anmeldungen mit auditd
Verwenden Sie Linux Audit, um kritische SSH Ereignisse (Konfigurationsänderungen, Daemon-Ausführungen, Authentifizierungsänderungen).
# Install
sudo apt install -y auditd || sudo dnf install -y audit
# Watch sshd_config changes
sudo auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config
# Track sshd execution (may vary by distro path)
sudo auditctl -a always,exit -F arch=b64 -S execve -F exe=/usr/sbin/sshd -k sshd_exec
# Query recent related events
sudo ausearch -k ssh_config
sudo ausearch -k sshd_exec | aureport -x --summaryBei größeren Flotten sollten die Protokolle an ein SIEM-System oder einen zentralen Stack (Elastic, Graylog, Wazuh) weitergeleitet und Schwellenwertwarnungen festgelegt werden.
sshd_config härten (Schritt für Schritt)
Sicher sichern und testen
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak.$(date +%F)
# Keep an existing SSH session open while reloading to avoid lockout
sudo sshd -t # syntax check
sudo systemctl reload sshdEmpfohlene Basisoptionen
Diese Einstellungen implementieren die schlüsselbasierte Authentifizierung, beschränken Konten, verringern die Angriffsfläche und verbessern die Sicherheit. Passen Sie sie an Ihre Distribution und Ihre Compliance-Richtlinien an.
# /etc/ssh/sshd_config (excerpt)
Protocol 2
# Optional: changing port reduces noise but is not a security control
# Port 22
PermitRootLogin no
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
# Restrict to known users or groups
AllowUsers deploy adminuser
# or
# AllowGroups sshusers
# Limit auth attempts and connection bursts
MaxAuthTries 3
MaxStartups 10:30:60
LoginGraceTime 20
# Disconnect idle sessions
ClientAliveInterval 300
ClientAliveCountMax 2
# Modern defaults in OpenSSH are secure; only pin ciphers if required
# Ciphers [email protected],[email protected],aes256-ctr
# MACs [email protected],[email protected]
# Log more detail
LogLevel VERBOSE
# Banner to warn unauthorized users
Banner /etc/issue.netNach der Bearbeitung mit `sshd -t` überprüfen und neu laden. Vor dem Schließen der Administratorsitzung immer in einem zweiten Terminal testen.
Firewall und Ratenbegrenzung
UFW (einfach) oder nftables/iptables (fortgeschritten)
# UFW example (Debian/Ubuntu)
sudo ufw allow 22/tcp
# or restrict to office/VPN
sudo ufw allow from 203.0.113.10 to any port 22 proto tcp
sudo ufw enable
sudo ufw status
# nftables example (policy-based)
sudo nft add table inet filter
sudo nft add chain inet filter input { type filter hook input priority 0 ; }
sudo nft add rule inet filter input ct state established,related accept
sudo nft add rule inet filter input iif lo accept
sudo nft add rule inet filter input tcp dport 22 ip saddr 203.0.113.0/24 accept
sudo nft add rule inet filter input tcp dport 22 dropKoppeln Sie Ihre Host-Firewall mit Cloud Sicherheitsgruppen. Wenn Sie die ändern SSH Port, denken Sie daran, die Regeln entsprechend zu aktualisieren.
CrowdSec vs. Fail2ban (kurzer Vergleich)
- Fail2ban: Leichtgewichtig, lokale Sperren, einfache Konfiguration, ideal für einzelne Server.
- CrowdSec: Community-basierte Reputationsfeeds, verteilte Signale, reichhaltige Szenarien; ideal für Flotten.
- Beide: Kann mit iptables/nftables integriert werden und Warnmeldungen exportieren.
Fügen Sie 2FA (TOTP) hinzu zu SSH
Die Zwei-Faktor-Authentifizierung fügt zusätzlich zu Ihren bisherigen Sicherheitsdaten einen Einmalcode (zeitbasiertes OTP) hinzu. SSH HauptDies mindert die Risiken, falls ein Schlüssel oder ein Passwort offengelegt wird. Anzuwenden auf privilegierte Benutzer und Sicherheitskonten.
# Install Google Authenticator PAM module
# Debian/Ubuntu
sudo apt install -y libpam-google-authenticator
# RHEL/CentOS/AlmaLinux
sudo dnf install -y google-authenticator
# Per-user setup (run as each user)
google-authenticator -t -d -f -r 3 -R 30 -W
# Update PAM (common path; verify on your distro)
# Add this line near the top of /etc/pam.d/sshd:
# auth required pam_google_authenticator.so nullok
# Update sshd_config to allow keyboard-interactive for 2FA
KbdInteractiveAuthentication yes
# Keep PasswordAuthentication no for key+TOTP flow
AuthenticationMethods publickey,keyboard-interactive
sudo sshd -t && sudo systemctl reload sshdTesten Sie die Änderung zunächst in einer separaten Sitzung, bevor Sie sie für alle Benutzer erzwingen. Bewahren Sie Notfallcodes sicher auf.
Benachrichtigungen und Berichte einrichten
E-Mail-Zusammenfassungen mit Logwatch
# Install and configure
sudo apt install -y logwatch || sudo dnf install -y logwatch
# On systemd servers, create a daily timer or use cron
sudo logwatch --service sshd --range today --detail Med --mailto [email protected]Für Echtzeitwarnungen integrieren Sie Fail2ban mit einem Aktionsskript, um Benachrichtigungen über Sperrungen/Entsperrungen zu senden, oder leiten Sie Protokolle an ein SIEM mit Regeln für Spitzenwerte und Anomalien weiter.
Laufende Wartung und Compliance
- Patch offenSSH und Betriebssystempakete regelmäßig aktualisieren; veraltete Kryptokonfigurationen entfernen, sobald sich die Standardeinstellungen ändern.
- Private Schlüssel regelmäßig wechseln und schützen; Hardware-Token für den Zugriff auf sensible Daten bevorzugen.
- Überprüfen Sie Benutzer, Gruppen und autorisierte Schlüssel monatlich; entfernen Sie veraltete Zugriffsrechte.
- Sichern Sie sshd_config und authorized_keys; dokumentieren Sie den Änderungsverlauf.
- Protokolle zentralisieren; mindestens 90 Tage aufbewahren, um forensische Untersuchungen zu ermöglichen.
Häufige Fehler und sichere Behebung
- Sich selbst aussperren: Bewahren Sie immer einen auf SSH Sitzung während des Neuladens geöffnet; Test von einem zweiten Terminal aus.
- Überoptimierung von Verschlüsselungsalgorithmen: Modern OpenSSH Die Standardeinstellungen sind sicher; PIN-Algorithmen sollten nur dann verwendet werden, wenn dies aufgrund Ihrer Compliance-Richtlinie erforderlich ist.
- Abhängigkeit von Portänderungen: Nicht standardmäßige Anschlüsse reduzieren zwar das Rauschen, ersetzen aber nicht die Authentifizierung und Überwachung.
- Ausgang ignorieren: Angreifer exfiltrieren häufig Daten; überwachen Sie ungewöhnliche ausgehende Verbindungen (verwenden Sie ss, nft oder ein NIDS).
Warum das funktioniert: Mehrstufige, praktische Sicherheit
In über 12 Jahren Erfahrung in der Härtung von Linux-Servern haben sich die widerstandsfähigsten Server als besonders zuverlässig erwiesen. SSH Posture kombiniert starke Authentifizierung (Schlüssel + 2FA), minimalen Zugriff (Firewall + AllowUsers), aktiven Schutz (Fail2ban/CrowdSec) und kontinuierliche Transparenz (Protokolle + Warnmeldungen). Jede Ebene kompensiert die anderen und reduziert so das Risiko, ohne die Verfügbarkeit zu beeinträchtigen.
Brauchen Sie Hilfe? Gezielte Härtung durch YouStable
Wenn Sie eine professionelle Einrichtung bevorzugen, YouStable managed-Server umfassen SSH Härtung, Firewall-Optimierung, proaktive Überwachung und Support rund um die Uhr. Wir wenden diese Best Practices vom ersten Tag an an und halten sie an die sich weiterentwickelnden Open-Source-Technologien angepasst.SSH und Linux-Sicherheit Standards.
Häufig gestellte Fragen
1. Wie überprüfe ich das? SSH Protokolle unter Linux?
Verwenden Sie heute `journalctl -u ssh -S` auf Systemd-Hosts oder `tail -f /var/log/auth.log` (Debian/Ubuntu) bzw. `tail -f /var/log/secure` (RHEL-Familie). Zusammenfassungen erhalten Sie mit `last` und `lastb`, die die letzten erfolgreichen und fehlgeschlagenen Anmeldeversuche anzeigen.
2. Ändert die Standardeinstellung SSH Ist ein Port erforderlich?
Nein. Es reduziert zwar Bot-Angriffe, ist aber keine Sicherheitsmaßnahme. Setzen Sie stattdessen auf schlüsselbasierte Authentifizierung, deaktivieren Sie Passwörter und Root-Login, erzwingen Sie Firewall-Regeln und implementieren Sie Fail2ban oder CrowdSec. Wenn Sie den Port ändern, aktualisieren Sie die Firewall-Regeln und die Überwachung.
3. Wie blockiert man am besten? SSH Brute-Force-Angriffe?
Kombinieren Sie Fail2ban oder CrowdSec mit SSH Verwenden Sie eine Authentifizierung ausschließlich mit Schlüsseln und eine Firewall, die die Quell-IP-Adressen beschränkt. Setzen Sie MaxAuthTries auf einen niedrigen Wert, aktivieren Sie LoginGraceTime und überwachen Sie die Anzahl fehlgeschlagener Anmeldeversuche mit entsprechenden Warnmeldungen.
4. Wie deaktiviere ich das? SSH Passwortanmeldung sicher?
Fügen Sie Ihren öffentlichen Schlüssel zu ~/.ssh/authorized_keys hinzu, überprüfen Sie die Anmeldung mit dem Schlüssel, setzen Sie dann PasswordAuthentication auf no in /etc/ssh/sshd_config und laden Sie sshd neu. Lassen Sie während des Tests eine bestehende Sitzung geöffnet, um eine Sperrung zu vermeiden.
5. Soll ich bestimmte Dinge erzwingen? SSH Verschlüsselungen und MACs?
Modern OpenSSH Die Standardeinstellungen sind sicher. Verschlüsselungsalgorithmen/MACs/Schlüsselaustauschalgorithmen sollten nur dann fixiert werden, wenn dies aus Compliance-Gründen erforderlich ist oder um ältere Clients gezielt auszuschließen. Zu strenge Einschränkungen können Automatisierungen und ältere Systeme beeinträchtigen; daher sollten sie vor der Implementierung gründlich getestet werden.
