OpenSSH:s lokala vidarebefordran transporterar TCP. DNS kan också använda TCP, förutsatt att frågeverktyget och den fjärranslutna DNS-tjänsten använder den transporten.

För en DNS-server som nås från SSH-värden, öppna en vidarebefordran som bara lyssnar på loopback:

ssh -N -L 127.0.0.1:1053:dns.internal:53 [email protected]

Skicka sedan en uttrycklig TCP-DNS-fråga från den lokala maskinen:

dig +tcp @127.0.0.1 -p 1053 app.internal A

Byt ut DNS-servern, SSH-värden och det efterfrågade namnet mot de avsedda värdena. SSH-serversidan måste kunna nå dns.internal:53, och vidarebefordringspolicyn måste tillåta det.

Den lokala porten ligger över intervallet för privilegierade portar. En fråga till en lokal port 1053 kräver inte att systemets DNS-port 53 binds.

Detta omdirigerar inte vanliga UDP-DNS-frågor automatiskt. Ett rått UDP-till-TCP-byterör räcker inte, eftersom DNS over TCP lägger till ett längdfält och strömindelning. Integrering med systemets resolver kräver en lämplig DNS-forwarder eller en uttryckligen stödd TCP-konfiguration.

Slutligen innebär det inte att nästa webbanslutning går via SSH bara för att adressen hämtas denna väg. DNS-slagning och transport till målet förblir separata val.

Relaterade artiklar