Este pequeno guia explica como enviar tráfego UDP via SSH usando ferramentas que vêm de fábrica (ssh, nc, mkfifo) com a maioria dos sistemas operacionais semelhantes ao UNIX.
Realização de tunelamento UDP por meio de uma conexão SSH
Passo a passo Abra uma porta TCP forward com sua conexão SSH
Em sua máquina local (local), conecte-se à máquina distante (servidor) por SSH, com a opção -L adicional para que o SSH com a porta TCP a seguir:
local# ssh -L 6667:localhost:6667 server.foo.com
Isso permitirá que as conexões TCP no número de porta 6667 de sua máquina local sejam encaminhadas para o número de porta 6667 em server.foo.com através do canal seguro. Configure o TCP para o encaminhamento UDP no servidor
No servidor, abrimos um ouvinte na porta TCP 6667 que encaminhará dados para a porta UDP 53 de um IP especificado. Se você quiser redirecionar DNS como eu, você pode pegar o IP do primeiro servidor de nomes que você encontrará em /etc/resolv.conf. Mas primeiro precisamos criar um fifo. O fifo é necessário para ter comunicações bidirecionais entre os dois canais. Um simples pipe de shell só comunicaria a entrada padrão do processo à esquerda 'saída padrão para o processo correto'.
server# mkfifo /tmp/fifo
server# nc -l -p 6667 < /tmp/fifo | nc -u 192.168.1.1 53 > /tmp/fifo
Isso permitirá que o tráfego TCP na porta 6667 do servidor seja encaminhado para o tráfego UDP na porta 53 do 192.168.1.1 e as respostas voltem. Configure o UDP para TCP em frente em sua máquina
Agora, precisamos fazer o oposto do que foi feito na parte superior da máquina local. Você precisa de acesso privilegiado para ligar a porta UDP 53.
local# mkfifo /tmp/fifo
local# sudo nc -l -u -p 53 < /tmp/fifo | nc localhost 6667 > /tmp/fifo
Isso permitirá que o tráfego UDP na porta 53 da máquina local seja encaminhado para o tráfego TCP na porta 6667 da máquina local. Aproveite o seu servidor DNS local:)
Como você provavelmente já adivinhou agora, quando uma consulta DNS será executada na máquina local, por exemplo, na porta local UDP 53, ele será encaminhado para a porta TCP local 6667, depois para a porta TCP 6667 do servidor e, em seguida, para o servidor DNS do servidor, a porta UDP 53 de 192.168.1.1. Para desfrutar de serviços DNS em sua máquina local, coloque a seguinte linha como primeiro nameserver em seu /etc/resolv.conf:
nameserver 127.0.0.1