- Introduction
dns2tcp est un outils permettant d’encapsuler du trafic dans des requêtes DNS.
La partie serveur simule un serveur DNS (donc doit écouter sur le port 53) et est par exemple à installer sur sa ligne Adsl perso. Le client encapsule les données dans des requêtes DNS qui sont envoyées au serveur interne spécifié. Ce serveur DNS qui lui à le plus souvent accès au port 53 vers Internet (ou en tous cas de résoudre des domaines externes), transmet à notre faux serveur DNS les données qui sont ensuite décapsulées. Le retour des paquets ce fait de la même manière.
- Coté DNS
Il est nécessaire d’ajouter une entrée dans les DNS exemple:
dns2tcp.example.org NS 1.2.3.4
C’est en essayant de résoudre des sous domaines de ce nom que les paquets arriveront jusqu’au faux serveur DNS.
- Coté serveur
cat /etc/dns2tcpd.conf
listen = 0.0.0.0
port = 53
user=nobody
chroot = /var/empty/dns2tcp/
domain = dns2tcp.example.org
ressources = sshYop:127.0.0.1:22
Ici nous indiquons qu’une connexion vers le port 22 du même serveur sera accessible sous le nom arbitraire sshYop
Lancement du server (ici en mode debug…)
sudo dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf
- Coté client
Lister les “connexions disponibles”
dns2tcpc -z dns2tcp.example.org 192.168.1.1
Les paramètres étant le nom de domaine et le serveur DNS accessible (dans l’exemple 192.168.1.1).
La réponse doit être:
Available connection(s) :
sshYop
Pour monter la connexion “DNS”:
dns2tcpc -c -r sshYop -l 4430 -z dns2tcp.example.org 192.168.1.1
Les paquets envoyés vers le port 4430 local seront donc envoyés dans l’exemple au port 22 de la machine dns2tcp.example.org (mais tout ceci uniquement avec des requêtes DNS).
Pour monter la connexion SSH:
ssh -p 4430 127.0.0.1
Du browsing est par exemple possible avec la partie Socks de Ssh:
ssh -D 3333 -p 4430 127.0.0.1
- Résumé en image
- Conclusion
Ce programme permet donc d’accéder à Internet quand on a seulement le droit d’accéder à un serveur DNS “interne”.
Les “voyageurs” verront tout de suite l’utilité
Merci Modu ;)