DNS über TCP durch eine lokale SSH-Weiterleitung abfragen
Leite einen lokalen unprivilegierten TCP-Port an einen entfernten DNS-Server weiter und fordere DNS over TCP mit dig ausdrücklich an.
Die lokale Weiterleitung von OpenSSH überträgt TCP. DNS kann ebenfalls TCP nutzen, sofern das Abfragewerkzeug und der entfernte DNS-Dienst diesen Transport verwenden.
Für einen DNS-Server, der vom SSH-Host aus erreichbar ist, öffne eine nur auf Loopback lauschende Weiterleitung:
ssh -N -L 127.0.0.1:1053:dns.internal:53 [email protected]
Sende danach eine ausdrückliche TCP-DNS-Abfrage vom lokalen Rechner:
dig +tcp @127.0.0.1 -p 1053 app.internal A
Ersetze den DNS-Server, den SSH-Host und den abgefragten Namen durch die vorgesehenen Werte. Die SSH-Serverseite muss dns.internal:53 erreichen können, und die Weiterleitungsrichtlinie muss dies erlauben.
Der lokale Port liegt oberhalb des Bereichs privilegierter Ports. Eine Abfrage an einen lokalen Port 1053 erfordert kein Binden des System-DNS-Ports 53.
Dies leitet gewöhnliche UDP-DNS-Abfragen nicht automatisch um. Eine rohe Byte-Pipe von UDP nach TCP genügt nicht, weil DNS over TCP ein Längenfeld und Stream-Framing ergänzt. Die Integration in den System-Resolver erfordert einen geeigneten DNS-Forwarder oder eine ausdrücklich unterstützte TCP-Konfiguration.
Schließlich führt eine so ermittelte Adresse nicht dazu, dass die anschließende Webverbindung über SSH läuft. DNS-Auflösung und Transport zum Ziel bleiben getrennte Entscheidungen.