OpenSUSE 42.3/SSH haerten

Aus Hyperweb & OpenSim
(Weitergeleitet von OpenSUSE 42.1/SSH haerten)
Wechseln zu: Suche

SSH härten

Die meisten scriptgesteuerten Angriffe zielen auf bekannte Ports und bekannte User. Deshalb stellen wir hier SSH auf einen unüblichen Port um, und beschränken den Zugang auf einen einzigen (namentlich genannten) User ohne root-Rechte.

Hinweis: Generell empfiehlt es sich, diese Konfiguration nur vorzunehmen, wenn ein aktuelles Backup des Gesamtsystems vorhanden ist. Sich mit SSH-Konfigurationsfehlern aus dem System auszusperren ist endgültig!
Notanker: Die meisten Serververmieter bieten (nach Kundenlogin) auf den Webseiten zur Serverkonfiguration die Möglichkeit, von einem Rettungssystem zu booten. Von dort sind Korrekturen an der Konfigurationsdatei noch möglich, das Rettungssystem mountet den gemieteten Server als gewöhnliche Festplatte.

Achtung! Den neuen Port vorher in der Firewall freigeben, sonst sperrst du dich selber aus!

1) In /etc/ssh/sshd_config den Port auf einen willkürlich gewählten umstellen, zum Beispiel Port 12345.
=> Nach erfolgreichem Verbindungstest über den neuen Port, den alten Port 22 in der Firewall schließen. Hinweis: Wird im Gegensatz zu dieser Anleitung doch die SuseFirewall verwendet, muss dort "ssh" aus der Liste der erlaubten Dienste gestrichen werden.

Achtung! Vor dem nächsten Schritt muss bereits im System ein weiterer Benutzer (ohne root Rechte) angelegt sein, sonst sperrst du dich selber aus! Also gegebenfalls mit Yast einen neuen (gewöhnlichen) Benutzer einrichten.

2) In /etc/ssh/sshd_config folgende 5 Parameter anpassen und davor die Kommentarzeichen entfernen:
=> Parameter "LoginGraceTime" auf "2m" setzen, also 2 Minuten Zeit für Loginversuche
=> Parameter "PermitRootLogin" auf "no" setzen
=> Parameter "MaxAuthTries" auf "3" Loginversuche setzen
=> Parameter "MaxSessions" auf maximal "1" gleichzeitig eingeloggten User setzen.
=> Parameter "AllowUsers" auf den speziell eingerichteten Benutzer (ohne root Rechte) setzen

Hinweis: Der Parameter "AllowUsers" ist in der Beispieldatei nicht vorhanden, also muss die Zeile AllowUsers von Hand eingefügt werden.

Tests:
=> Den Server einmal durchbooten und schauen, ob du mit dem neuen Account einloggen kannst. Wenn nicht, Backup einspielen...
=> Versuchen, als Benutzer root einzuloggen.

Hinweise: Es ist möglich, sich mit mehreren Konsolenfenstern einzuloggen. Alle Logins des selben Users vom selben Rechner aus gelten als eine Session. Wenn du erst mal remote eingeloggt bist, kann lokal auf dem Server der User mit dem Kommando su NeuerUser gewechselt werden. (Der neue User muss auf dem System bereits einen Account haben.)



Weiter: Firewall einrichten