Místní SOCKS listener je na některých sítích užitečný a na jiných chybí. OpenSSH umí zvolit proxy příkaz podmíněně, aniž by se tato volba vztahovala na každého hostitele.

Pro OpenSSH s openbsdskou podobou nc vypadá ilustrativní konfigurace klienta takto:

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 omezuje kontrolu na jméno zadané na příkazovém řádku SSH. exec odpovídá, když jeho příkaz skončí úspěšně. Závěrečný Match all ukončuje tento podmíněný rozsah pro následující nastavení.

To předpokládá, že žádné dřívější platné nastavení už nezvolilo konfliktní proxy příkaz nebo trasu přeskočení. SSH obvykle používá první získanou hodnotu volby, takže široká výchozí hodnota nahoře může pozdější podmínce zabránit v očekávaném účinku.

Naslouchající socket je skromný slib

Kontrola testuje přístup TCP k místnímu portu. Nedokončuje vyjednávání SOCKS, nenavazuje požadované spojení s cílem ani neprokazuje, který program port vlastní. Listener může po kontrole také zmizet.

Časový limit drží neúspěšnou kontrolu v mezích. Zobrazené volby patří rozhraní nc z OpenBSD; jiné programy se stejným názvem souboru mohou nabízet odlišné volby.

Když podmínka neodpovídá, tento příklad ponechá spojení bez tohoto ProxyCommand, a umožní tak jeho obvyklou trasu. To je vhodné jen tehdy, je-li povolen přímý přístup. Povinná proxy politika by neměla kontrolu dostupnosti používat jako svolení k úniku na jinou trasu.

Cílové jméno hostitele SSH a kontroly klíče hostitele stále určují cílový server. Volba transportního pomocníka není důvodem přijmout neočekávaný klíč hostitele.

Související články