En lokal SOCKS-lyssnare är användbar i vissa nät och saknas i andra. OpenSSH kan välja ett proxykommando villkorligt, utan att valet gäller för varje värd.

För OpenSSH med OpenBSD-formen av nc är en illustrativ klientkonfiguration:

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 begränsar kontrollen till namnet som anges på SSH-kommandoraden. exec matchar när kommandot avslutas framgångsrikt. Det avslutande Match all avslutar det villkorade omfånget för följande inställningar.

Detta förutsätter att ingen tidigare tillämplig inställning redan har valt ett motstridigt proxykommando eller en hopprutt. SSH använder vanligtvis det första värdet som erhålls för en inställning, så en bred standard högst upp kan hindra ett senare villkor från att få den förväntade effekten.

En lyssnande socket är ett anspråkslöst löfte

Testet kontrollerar TCP-åtkomst till en lokal port. Det slutför inte SOCKS-förhandlingen, upprättar inte den önskade destinationsanslutningen och bevisar inte vilket program som äger porten. Lyssnaren kan också försvinna efter kontrollen.

Tidsgränsen håller ett misslyckat test begränsat. Alternativen som visas tillhör OpenBSD:s nc-gränssnitt; andra program med samma filnamn kan erbjuda andra alternativ.

När villkoret inte matchar lämnar exemplet anslutningen utan detta ProxyCommand, vilket tillåter dess vanliga rutt. Det är bara lämpligt när direkt åtkomst är tillåten. En obligatorisk proxypolicy bör inte använda en tillgänglighetskontroll som tillstånd att undkomma till en annan rutt.

Destinationsvärdens SSH-värdnamn och värdnyckelkontroller identifierar fortfarande målservern. Att välja en transporthjälpare är inte skäl att acceptera en oväntad värdnyckel.

Relaterade artiklar