Lokalny nasłuch SOCKS bywa przydatny w niektórych sieciach, a w innych go nie ma. OpenSSH może warunkowo wybierać polecenie proxy, nie stosując tego wyboru do każdego hosta.

Dla OpenSSH z formą OpenBSD polecenia nc przykładowa konfiguracja klienta wygląda tak:

Host work-server
    HostName ssh.example.net
    User alex

Match originalhost work-server exec "nc -z -w 1 127.0.0.1 1080"
    ProxyCommand nc -X 5 -x 127.0.0.1:1080 %h %p

Match all

originalhost ogranicza kontrolę do nazwy podanej w wierszu poleceń SSH. exec pasuje, gdy jego polecenie zakończy się powodzeniem. Końcowe Match all zamyka ten warunkowy zakres dla kolejnych ustawień.

Zakłada to, że żadne wcześniejsze obowiązujące ustawienie nie wybrało już sprzecznego polecenia proxy ani trasy przeskoku. SSH zwykle używa pierwszej uzyskanej wartości opcji, więc szeroka wartość domyślna na górze może uniemożliwić późniejszemu warunkowi osiągnięcie oczekiwanego efektu.

Nasłuchujący socket to skromna obietnica

Próba sprawdza dostęp TCP do lokalnego portu. Nie kończy negocjacji SOCKS, nie nawiązuje pożądanego połączenia z celem i nie dowodzi, który program posiada ten port. Nasłuch może też zniknąć po sprawdzeniu.

Limit czasu utrzymuje nieudaną próbę w granicach. Pokazane opcje należą do interfejsu nc z OpenBSD; inne programy o tej samej nazwie pliku mogą udostępniać inne opcje.

Gdy warunek nie pasuje, ten przykład pozostawia połączenie bez tego ProxyCommand, zezwalając na jego zwykłą trasę. Jest to właściwe tylko wtedy, gdy dozwolony jest bezpośredni dostęp. Obowiązkowa polityka proxy nie powinna używać sprawdzania dostępności jako pozwolenia na ucieczkę inną trasą.

Docelowa nazwa hosta SSH i kontrole klucza hosta nadal identyfikują serwer docelowy. Wybór pomocnika transportu nie jest powodem do zaakceptowania nieoczekiwanego klucza hosta.

Powiązane artykuły