Optionen
Option | Beschreibung |
-L | Tunneln - Relay über einen ssh-Server auf einen anderen Server verbinden - zu einem beliebigen Dienst
Es wird eine Verbindung mit einem sh-Server hergestellt, dieser wiederum verbindet sich mit dem gewünschten Server und dem gewünschten Port (Dienst) und stellt diesen über die ssh-Verbindung zu Verfügung.
Lokal wir der Dienst des Zielservers dann über einen bestimmten Port zur Verfügung gestellt und kann lokal, über den Port angesprochen werden (die Verbindung läuft dann über ssh zum ssh-Server und von dort aus dann zum Zielrechner).
Syntax: ssh benutzer@ssh-server -L lokaler Port:Remoterechner:Remote-Port
benutzer@ssh-Server → Login-Daten und Adresse des ssh-Servers auf den man sich verbinden will (Relay-Server)
Lokaler Port → der Port über den der Dienst von lokal aus angesprochen werden kann
Remoterechner:Remote-Port → Port zu dem sich eigentlich verbunden werden soll und der Port auf dem der gewünschte Dienst läuft
Beispiel: ssh test@10.10.100.4 -L 5000:192.168.1.5:80
Verbinde dich auf test@10.10.100.4 per ssh
auf 10.10.100.4 stelle eine Verbindung nach 192.168.1.5 Port 80 (http) her
Verknüpfe über denn ssh-Tunnel den lokalen Port (auf dem Rechner wo der ssh-Befehl ausgeführt wird) 5000 mit dem Port 80 auf 10.10.100.4
|
Absicherung
Abschalten der Passwort-Authentifizierung
Beschränkung der Benutzer die sich per ssh anmelden können (allow_users)
Standard-Benutzer (wie root) sollten sich nicht anmelden können
das schränkt Brutforce-Angreifer ein, weil die nicht wissen welche Benutzer es gibt, außer die Standardbenutzer
Beschränkung der Zeit bis das Login erfolgt sein muss
zwischen Aufbau der Verbindung und Eingabe des Passwortes kann einige Zeit vergehen - in dieser Zeit muss die verschlüsselte Verbindung aufrecht erhalten werden → kostet Resourcen und kann für DOS-Attacken ausgenutzt werden (in dem mehrere Verbindungen aufgebaut werden und halb offen hängen gelassen werden)
Zeit zwischen Verbindungsaufbau und Disconnect bei Nicht-Eingabe eines Passwortes kann per LoginGraceTime beschränkt werden
Werkzeuge
ssh-keygen
Public Key validieren
ssh-keygen -l -f Keyfile
Erguibt entweder den Fingerprint des Schlüssels oder das es kein gültiger öffentlicher Schlüssel ist (nicht OpenSSH Format → es kann sich auch um einen Putty-formatierten Schlüssel handeln)
Keys konvertieren
ssh-keygen -i -f Keyfile > outputfile