Bardzo często się zdarza, że w biurze, kawiarence internetowej czy podczas korzystania z sieci hotspot, mamy dostęp jedynie do portów HTTP oraz HTTPS. Wszystkie inne połączenia i porty są blokowane przez serwer proxy. I właśnie wtedy bardzo potrzebujemy skorzystać z SSH i połączyć się z naszą maszyną. Z pomocą przyjdzie nam prosta aplikacja o nazwie Corkscrew. Jest to małe narzędzie, które potrafi tunelować SSH po HTTP Proxy.
CorkScrew był testowany do działania z takimi serwerami proxy jak:
- Gauntlet
- CacheFlow
- JunkBuster
- Squid
- Apache’s mod_proxy
Aby rozpocząć zabawę, należy pobrać plik corkscrew-2.0.tar.gz. Rozpakowujemy go i kompilujemy. Czynności te nie powinny przysporzyć nam większych problemów.
[bash]wget http://www.agroman.net/corkscrew/corkscrew-2.0.tar.gz
tar -xzf corkscrew-2.0.tar.gz
cd corkscrew-2.0
./configure
make
make install[/bash]
Po instalacji aplikacji, przyszła kolej na skonfigurowanie klienta SSH. W tym celu edytujemy plik ~/.ssh/config
i dopisujemy w nim:
[bash]Host *
ProxyCommand corkscrew adres_proxy port_proxy %h %p[/bash]
W miejscu adres_proxy
należy podać adres serwera proxy, przez jaki się łączymy oraz jego port w miejscu port_proxy
. OpenSSH automatycznie zamieni zmienne %h %p
na host i port serwera na jaki się będziemy łączyć. Polecenie możemy również uruchamiać ręcznie:
[bash]corkscrew w3cache.tpnet.pl 8080 muszelka.org 22[/bash]
W przypadku kiedy serwer proxy wymaga autoryzacji, możemy stworzyć plik ~/.ssh/proxyauth
o składni login:hasło
, w którym podajemy dane do autoryzacji proxy. Następnie dopisujemy do ProxyCommand na końcu ścieżkę do tego pliku.