Den Standard-Port ändern
Am besten zuerst mal den Standard-Port 22 auf einen beliebigen höheren Port ändern (z.B. mal 2222 oder 666). Dies in der /etc/ssh/sshd_config eintragen. Damit werden schon einige 0815-Angriffe verhindert, die nur auf den Standard-Ports laufen. Natürlich ist das nur "Security by obscurity", aber es reduziert das Grundrauschen etwas ;-)
Authentifizierung über Zertifikate
Passwörter sind einfacher zu knacken als Private-Keys. Stellt sicher das sich eure User nur einloggen können wenn sie über den korrekten Private-Key verfügen. Passwort-Authentifizierung kann über die /etc/ssh/sshd_config deaktiviert werden:
PasswordAuthentifaction no
Verbindungen limitieren
Über die Firewall könnt ihr die Anzahl der SYN-Pakete (Verbindungsaufbau) limitieren. Normale User sollten davon nichts merken, aber es ist sichergestellt das nicht hunderte von Anfragen pro Minute von irgendwelchen Crackern durchgeführt werden können. In diesem Beispiel sind es max. 3 Verbindungen/Minute
iptables -A INPUT -p tcp –dport 2222 –syn -m limit –limit 1/m –limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp –dport 2222 –syn -j DROP
Kein Root-Zugang erlauben
Der Root-User sollte sich nie per SSH einloggen können. Dies kann über die /etc/ssh/sshd_config eingestellt werden:
PermitRootLogin no
Anti-Brute-Force-Tools installieren:
Da wären z.B.:
- Fail2Ban
- SSHDFilter
- pam_abl
- SSHBanIP
- Tables Recent Module
- DenyHost
- Brute-Force Detection
- sshd_sentry
- SSHGuard