SSH auf Linuxserver absichern
Ein wichtiger Baustein bei der Absicherung eines Linux-Servers ist die richtige Konfiguration des SSH-Servers. Ein SSH-Server wird i.d.R. immer benötigt, da über eine SSH-Verbindung ein Linux-Server von einem entfernten Rechner administriert werden kann. Mit dem Anmelden an einem Linux-Server per SSH erhält man Zugriff auf die Konsole und kann nun ganz normal auf Shell-Ebene mit dem Linux-Server arbeiten.
Daraus ergibt sich jedoch, dass man die Möglichkeit der Verbindungsaufnahme unbedingt einschränkt und absichert.
Wenn man einen OpenSSH-Server nutz, findet man die Konfiguration in der Datei /etc/ssh/sshd_config. Die meisten nachfolgenden Anweisungen können in dieser Datei definiert oder geändert werden.
Nach der Änderung muss man UNBEDINGT die vorhandene SSH-Verbindung beibehalten, den SSH-Server neustarten (/etc/init.d/ssh restart) und eine neue, zusätzliche SSH-Verbindung zum Server aufbauen. Erst wenn diese Anmeldung funktioniert, kann man sicher sein, weiterhin auf den eigenen Server zu kommen.
SSH-Protokollversion einstellen
SSH-1 hat einige Schwachstellen in der Implementierung. Aus diesem Grund sollte man auf einem Server nur SSH-2 erlauben.
Protocol 2
Port verschleiern
Der Standardport von SSH ist Port 22. Eine Möglichkeit besteht darin den Port zu ändern. Eine Einfache Verbindungsaufnahme über diesen Standard-Port ist so nicht mehr möglich. Dadurch ist es schwieriger festzustellen, ob auf dem Server ein SSH-Daemon läuft.
Durch die Änderung des Ports sichert man SSH nicht ab, aber man schützt ihn gegen automatisierte Angriffe
Port ...
Nun wird ein Verbindungsversuch per SSH über den Port 22 abgewiesen.
Nicht gesetzte Passwörter verhindern
Ohne Worte… Wer dies erlaubt muss bestraft werden.
PermitRootLogin no
Erlaubte Zeit für die Anmeldung
Nützlich ist es auch, den Zeitraum zu definieren, den ein Login per SSH erfolgen muss. Danach wird die Verbindung von ssh beendet.
LoginGraceTime 60
Maximale Anzahl nicht abgeschlossene Anmeldedialoge
Mit der Einstellung MaxStartups kann man die Anzahl der gleichzeitigen unautorisierten Verbindungen begrenzen. Per Standard ist MaxStartups mit dem Wert 10 definiert.
Mit der nachfolgenden Einstellung kann man die maximale Anzahl an unautorisierten Verbindungen steuern. Damit verhindert man, dass durch einen Angriff hunderte ssh-Task gleichzeitig gestartet werden.
MaxStartups 10:30:10
Erklärung:
MaxStartups Verbindungen:Prozent:Maximum
Diese Regelung bezieht sich nur auf nicht authentifizierte Verbindungen. Sie besagt, das ab gleichzeitige Verbindungen (Verbindungen) eingehende Verbindungen mit einer Wahrscheinlichkeit von Prozent abgelehnt werden. Wird bei einer steigenden Anzahl von nicht authentifizierten Verbindungen das Maximum erreicht, werden keine weiteren Verbindungen mehr angenommen.
Nur bestimmten Usern SSH-Zugriff erlauben
Mit nachfolgender Anweisun kann man eine Liste mit Usern definieren, die Zugriff per SSH erhalten.
AllowUsers user1 user2
Im optimalsten Fall begrenzt man den Zugang per SSH auf einen einzigen Anwender.
Dem root-User den direkten SSH-Zugang verwehren