Questa piccola guida spiega come inviare il traffico UDP tramite SSH utilizzando strumenti standard (ssh, nc, mkfifo) con la maggior parte dei sistemi operativi simili a UNIX.
Esecuzione del tunneling UDP tramite una connessione SSH
Step by step Apri una porta forward TCP con la tua connessione SSH
Sul tuo computer locale (locale), connettiti al computer distante (server) tramite SSH, con l'opzione -L aggiuntiva in modo che SSH con port-forward TCP:
local# ssh -L 6667:localhost:6667 server.foo.com
Ciò consentirà di inoltrare le connessioni TCP sul numero di porta 6667 della macchina locale al numero di porta 6667 su server.foo.com attraverso il canale protetto. Imposta il forwarding da TCP a UDP sul server
Sul server, apriamo un listener sulla porta TCP 6667 che inoltrerà i dati alla porta UDP 53 di un IP specificato. Se vuoi fare l'inoltro DNS come me, puoi prendere l'IP del primo nameserver che troverai in /etc/resolv.conf. Ma prima, dobbiamo creare un fifo. Il fifo è necessario per avere comunicazioni bidirezionali tra i due canali. Una semplice shell shell comunicava solo l'input standard "output standard al processo giusto".
server# mkfifo /tmp/fifo
server# nc -l -p 6667 < /tmp/fifo | nc -u 192.168.1.1 53 > /tmp/fifo
Ciò consentirà di inoltrare il traffico TCP sulla porta 6667 del server al traffico UDP sulla porta 53 di 192.168.1.1 e di restituire le risposte. Imposta l'inoltro da UDP a TCP sul tuo computer
Ora, dobbiamo fare il contrario di ciò che è stato fatto in alto sulla macchina locale. È necessario un accesso privilegiato per associare la porta UDP 53.
local# mkfifo /tmp/fifo
local# sudo nc -l -u -p 53 < /tmp/fifo | nc localhost 6667 > /tmp/fifo
Ciò consentirà il traffico UDP sulla porta 53 della macchina locale da inoltrare al traffico TCP sulla porta 6667 della macchina locale. Goditi il tuo server DNS locale :)
Come probabilmente hai indovinato ora, quando una query DNS verrà eseguita sul computer locale, ad esempio sulla porta UDP locale 53, verrà inoltrata alla porta TCP 6667 locale, quindi alla porta TCP 6667 del server, quindi al server DNS del server , Porta UDP 53 del 192.168.1.1. Per usufruire dei servizi DNS sul tuo computer locale, inserisci la seguente riga come primo nameserver nel tuo /etc/resolv.conf:
nameserver 127.0.0.1