Interroger DNS sur TCP via un transfert local SSH
Transférez un port TCP local non privilégié vers un serveur DNS distant et demandez explicitement DNS sur TCP avec dig.
Le transfert local d'OpenSSH transporte TCP. DNS peut aussi utiliser TCP, à condition que l'outil d'interrogation et le service DNS distant emploient ce transport.
Pour un serveur DNS joignable depuis l'hôte SSH, ouvrez un transfert limité à la boucle locale :
ssh -N -L 127.0.0.1:1053:dns.internal:53 [email protected]
Émettez ensuite une requête DNS TCP explicite depuis la machine locale :
dig +tcp @127.0.0.1 -p 1053 app.internal A
Remplacez le serveur DNS, l'hôte SSH et le nom interrogé par les valeurs voulues. Le côté serveur SSH doit pouvoir joindre dns.internal:53, et la politique de transfert doit l'autoriser.
Le port local se situe au-dessus de la plage des ports privilégiés. Une requête vers un port local 1053 n'exige pas de lier le port DNS système 53.
Cela ne redirige pas automatiquement les requêtes DNS UDP ordinaires. Un simple tuyau d'octets UDP vers TCP ne suffit pas, car DNS sur TCP ajoute un champ de longueur et un tramage de flux. L'intégration au résolveur système demande un redirecteur DNS adapté ou une configuration TCP explicitement prise en charge.
Enfin, obtenir une adresse par ce chemin ne fait pas passer la connexion web suivante par SSH. La résolution DNS et le transport vers la destination restent deux choix distincts.