Este tutorial explica cómo configurar un túnel DNS utilizando iodine, que permite encapsular tráfico IP dentro de consultas DNS. Esto es útil para eludir restricciones de red o para acceder a recursos cuando otros protocolos están bloqueados. Utilizaremos Privoxy como proxy HTTP para navegar por la web a través del túnel de forma eficiente.

Requisitos

1. Configuración del Servidor

Instalar dependencias e iodine

# Actualizar repositorios e instalar dependencias
sudo apt-get update && sudo apt-get install -y pkg-config zlib1g-dev

# Clonar repositorio de iodine
git clone <https://github.com/yarrick/iodine.git>
cd iodine

# Compilar e instalar
make
sudo make install

Verificar servicios en puerto DNS (53)

# Verificar si hay servicios usando el puerto 53
sudo netstat -tulpn | grep :53

Si systemd-resolved está usando el puerto 53, configuraremos iodined para usar un puerto alternativo (5353).

Configurar Firewall

Abrir los puertos necesarios en el firewall local (UFW):

# Abrir puertos en UFW
sudo ufw allow 53/udp
sudo ufw allow 53/tcp
sudo ufw allow 5353/udp
sudo ufw allow 5353/tcp
sudo ufw allow 8118/tcp  # Para Privoxy

# Verificar reglas
sudo ufw status verbose

Configurar Security Group de AWS

Si estás utilizando una instancia EC2 en AWS, solo necesitas configurar el Security Group para permitir el tráfico en el puerto 53:

  1. Ve a la consola de AWS y navega a EC2 > Instancias
  2. Selecciona tu instancia
  3. Ve a la pestaña "Seguridad"
  4. Haz clic en el enlace del Security Group