Cómo crear un túnel DNS para saltarte el firewall al conectarte a Internet

Cómo crear un túnel DNS para saltarte el firewall al conectarte a Internet

Javier Jiménez

En este artículo vamos a explicar cómo podemos crear un túnel DNS para saltarnos un firewall al navegar. Se conoce como túnel o tunneling a esta técnica, que consiste en encapsular un protocolo de red sobre otro. Con esto logramos crear un túnel de información dentro de una red. Vamos a explicar qué necesitamos para llevar a cabo esto que explicamos. Lo que buscamos con esto es saltarse la protección de un cortafuegos. Ya hablamos anteriormente de dns2tcp para crear un túneles DNS.

Qué necesitamos para crear un túnel DNS y saltarse el firewall

Lo primero que vamos a explicar es qué necesitamos para crear un túnel DNS y poder saltarnos así el cortafuegos. Hay una serie de aspectos que debemos de controlar para llevar a cabo esta acción. Lo primero, por parte del servidor, se necesita VPS o un equipo Linux que cuente con una IP de Internet estática. Por parte del cliente necesitamos contar un equipo que tenga como sistema operativo alguna distribución de Linux. También es posible utilizarlo a través de una máquina virtual que cuente con Linux instalado. Podéis visitar nuestro tutorial para saltarme el cortafuegos en tu trabajo.

Además, se requiere un control sobre un dominio y sus entradas DNS. También hay que tener Google Chrome instalado como navegador que, como sabemos, es el más utilizado actualmente en las diferentes plataformas. La extensión SwitchyOmega tiene que estar instalada. La podemos descargar desde la tienda oficial del navegador.

Crear un túnel DNS para saltarse el firewall

Pasos a seguir para crear un túnel DNS y evitar el firewall

Según nos cuentan en Bitsdelocos hay que crear un subdominio al que se le realizan las peticiones tanto de DNS como de NS. A este último enviamos las peticiones. Hay que añadir la configuración correspondiente a nuestro DNS público que quedaría como en nuestro ejemplo:

  • Tunel.redeszone.net (NS apuntando a ns.redeszone.net)
  • Ns.redeszone.net (A apuntando a la IP del VPS)

Lo que logramos con esto es que todas las peticiones DNS se envíen a ns.redeszone.net. Posteriormente tendremos que montar un servidor que pueda resolver los paquetes generados maliciosamente que le lleguen. Nuestra fuente ha utilizado para ello iodine, que lo podemos descargar de GitHub. Tendremos que ejecutarlo como superusuario.

apt-get install gcc make autoconf libz-dev git

git clone https://github.com/yarrick/iodine.git

cd iodine

make && make install

Una vez hecho esto, iodine debería de estar instalado en el equipo. Funcionaría un túnel DNS.

Para ejecutarlo tendríamos que utilizar el siguiente comando:

iodined -c -P PASSWORD -n IP_ESTATICA 172.x.x.x tunel.redeszone.net -F /var/run/iodine.pid

El siguiente paso sería ejecutar el cliente para crear el túnel contra el NS ns.redeszone.net. Para ello utilizamos resoluciones DNS al subdominio tunel.redeszone.net. Hay que lanzar iodine en el cliente de esta manera:

iodined -P PASSWORD IP_DNS_FORWARDER tunel.redeszone.net -F /var/run/iodine.pid

La IP del forwarder sería la que use la red a la que nos conectamos. También podríamos utilizar un servidor externo. A través del comando SSH siguiente podríamos levantar un proxy SOCKS5:

ssh -fN -D *:8080 root@172.16.0.1

(la IP que se le habría asignado a la interfaz dnsX en el servidor.

Una vez hecho todo esto, si ha ido bien, podemos comprobar al abrir una página Web y con F12 poder ver la IP remota de una página abierta. Si esta IP corresponde con la de nuestro proxy quiere decir que ha ido bien.

Podemos ver todo el proceso completo y tener más información detallada en Bitsdelocos. También puedes consultar nuestro manual para SSH Tunneling y navegar seguro.

¡Sé el primero en comentar!