Ich benutze sehr oft die Secure Shell, täglich. Da ich einfach oft in “unsicheren Netzwerken” und Firmennetzwerken unterwegs bin. Firmen haben die schlechte Angewohnheit dass sie mit ihren Proxys den SSH Port 22 sperren. Das ist so was von gemein aber nachvollziehbar.
Um das ganze zu umgehen benutze ich darum den https Port 443. Der war bisher immer offen. Ein Nachteil der ist auf meinen Servern schon für das https belegt. Darum verbinde ich mich nach hause zu meiner Fritz.box auf der freetz mit OpenSSH und Privoxy läuft. Diese Fritz.box hängt hinter einer andern Fritz.box. Auf dieser wird der Port 443 weitergereicht zum SSH Port der Freetz. (Natürlich hat die Fritzbox die am Internet hängt eine Dynamische DNS).
So sieht also meine “Umgebung” aus. Man kann sich aber auch einen Vserver mieten.Auf dem der Port 443 für SSH frei ist. Ich bin nun langjähriger und zufriedener EUserv Kunde und kann EUserv nur empfehlen.
Also gut um nun schnell und einfach sich zu seinen Servern, durch einen Proxy, verbinden zu können brauchen wir erstmal corkscrew, ein geniales Programm das vieles vereinfacht.
# pacman -S corkscrew
die einstellungen werden in der ~/.ssh/config hinterlegt hier mal ein Beispiel. In die Zeile ProxyCommand corkscrew proxy 3128 %h 443 ersetzt man proxy und 3128 mit der aufzubohrenden Proxy Adresse und Port.
Host serverA
Hostname DYNDNSDERFRITZBOX.deoderSERVERIP
User BENUTZERNAME
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
ProxyCommand corkscrew proxy 3128 %h 443
Host serverB
Hostname DOMAIN.de
User BENUTZERNAME
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
ProxyCommand corkscrew localhost 8118 %h %p
Erklärung der erste Block ist der SSH Server der auf Port 443 lauscht. Dadurch das wir den Hostname und User angeben brauchen wir nur noch
# ssh serverA
eingeben um uns mit dem definierten BENUTZERNAMEN anzumelden.
ssh -L 8118:localhost:8118 serverA
Das gleiche in grün mit Tunnel zum Privoxy Port 8118.
Durch diesen Tunnel verbinden wir uns mit serverB. Und / Oder Surfen wie es uns gefällt. Zum surfen in Firefox als Proxy localhost und Port 8118 in den Netzwerkeinstellungen für http und https angeben. Um sich jetzt zu serverB zu verbinden braucht man nur:
# ssh serverB
eingeben und eine Verbindung durch den Tunnel wird hergestellt. Hier ist die Zeile ProxyCommand corkscrew localhost 8118 %h %p des zu benutzenden Tunnel der bestehenden SSH-Verbindung.
Der teil mit
ControlMaster auto
ControlPath ~/.ssh/master-%r@%h:%p
dient dazu, dass weitere gleichzeitige Verbindungen keine erneute Anmeldung bedürfen.
Das ist jetzt alles bisschen länger als gewollt ausgefallen. Aber ich hoffe trotzdem das es Verständlich und nützlich geschrieben ist.