DNS over TCP opvragen via een lokale SSH-doorsturing
Stuur een lokale onbevoorrechte TCP-poort door naar een externe DNS-server en vraag expliciet DNS over TCP aan met dig.
De lokale doorsturing van OpenSSH vervoert TCP. DNS kan ook TCP gebruiken, mits het opvraaghulpmiddel en de externe DNS-dienst dat transport gebruiken.
Open voor een DNS-server die vanaf de SSH-host bereikbaar is een doorsturing die alleen op loopback luistert:
ssh -N -L 127.0.0.1:1053:dns.internal:53 [email protected]
Stuur daarna een expliciete TCP-DNS-query vanaf de lokale machine:
dig +tcp @127.0.0.1 -p 1053 app.internal A
Vervang de DNS-server, de SSH-host en de opgevraagde naam door de bedoelde waarden. De SSH-serverkant moet dns.internal:53 kunnen bereiken, en het doorsturingsbeleid moet dat toestaan.
De lokale poort ligt boven het bereik van bevoorrechte poorten. Een query naar een lokale poort 1053 vereist niet dat de systeem-DNS-poort 53 wordt gebonden.
Dit leidt gewone UDP-DNS-query's niet automatisch om. Een ruwe UDP-naar-TCP-bytpijp is niet genoeg, omdat DNS over TCP een lengteveld en stream-framing toevoegt. Integratie met de systeemresolver vereist een geschikte DNS-forwarder of een expliciet ondersteunde TCP-configuratie.
Ten slotte: een adres via deze route verkrijgen leidt de volgende webverbinding niet via SSH. DNS-opzoeking en transport naar de bestemming blijven aparte keuzes.