Normalerweise wird SSH verwendet, um sicher auf Linux-Server zuzugreifen. Durch Benutzer manuell oder auch durch automatisierte Systeme wie Ansible. Die meisten Benutzer verwenden SSH-Verbindungen mit den Standardeinstellungen, um sich mit einem entfernten Server zu verbinden. Dennoch bergen die unsicheren Standardeinstellungen verschiedene Sicherheitsrisiken.
Das Root-Konto eines Servers mit offenem SSH-Zugriff könnte gefährdet sein. Besonders dann, wenn eine öffentliche IP-Adresse verwendet wird, ist es viel einfacher, das Root-Passwort zu knacken. Daher ist es notwendig, sich mit SSH-Sicherheit vertraut zu machen.
Root Login deaktivieren
Lege einen neuen Benutzer an. Vergib ihm root-rechte und konfiguriere /etc/ssh/sshd_config mit PermitRootLogin no
.
Ändere den standard SSH Port (22)
Wähle zunächst einen Port aus. e.g. 1022
In /etc/ssh/sshd_config musst Du nur Port 1022
Nun konfiguriere deine Firewall. Verwendest Du die UFW dann genügt:
sudo ufw allow 5022/tcp
sudo service ssh restart
Zugriff für Benutzer mit leeren Passwörtern sperren
Es kann sein, dass es auf Deinem System Benutzer ohne Passwörter gibt
Um zu verhindern, dass solche Benutzer auf die Server zugreifen, kannst Du folgendes in Deine /etc/ssh/sshd_config einsetzen
PermitEmptyPasswords no