ver consultas de DNS mientras usa OpenVPN.-

0

Quiero monitorear / oler las consultas de DNS que hago mientras estoy usando una conexión VPN con mi cliente OpenVPN. Mi motivación inicial fue comprobar si estoy filtrando consultas de DNS; luego, al usar esta , parece que no me estoy escapando, pero todavía quiero entender la tubería de la "dinámica" de mi red.

Estoy ejecutando el cliente OpenVPN en un contenedor de Docker, y establezco estas reglas de firewall justo antes de establecer la conexión vpn:

iptables -F OUTPUT
iptables -P OUTPUT DROP

iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -o tap0 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT 

iptables -A OUTPUT -d ${docker_network} -o eth0 -j ACCEPT 
iptables -A OUTPUT -d ${vpn_ip} -p tcp -m tcp --dport $port -j ACCEPT
iptables -A OUTPUT -p udp -m udp --dport $port -j ACCEPT

donde: vpn_ip es la IP del servidor vpn, port el puerto UDP para la conexión vpn y docker_network es la red local del contenedor (por ejemplo, 172.17.0.2/16). Todo lo que está debajo se ejecuta dentro del contenedor.

Leí en todas partes que las consultas de DNS se realizan en los servidores DNS del proveedor de VPN, por lo que me gustaría "ver" eso de alguna manera. Así que hice un ping:

ping -c1 hotmail.com

y responde normalmente. En este punto, el /etc/resolv.conf contiene:

nameserver 8.8.8.8

A continuación, limpio el /etc/resolv.conf para ver si la consulta lo necesita, así que repito el comando ping y obtengo:

ping: hotmail.com: Temporary failure in name resolution

Además, si trato de usar un navegador en la parte superior de este contenedor, no carga ninguna página como normalmente lo haría.

También "olí" mis paquetes mientras el resolv.conf estaba usando 8.8.8.8 así:

tcpdump -i tun0 -vv "host 8.8.8.8"

y obtengo líneas como:

10.8.8.7.39209 > google-public-dns-a.google.com.domain: [udp sum ok] 17379+ PTR? ...

También probé esto con la interfaz -i eth0 y obtengo un silencio completo.

Haciendo un sniff sin filtro, también verifiqué que eth0 solo ve paquetes UDP, mientras que tun0 ve paquetes TCP y UDP.

¿Por qué necesito un /etc/resolv.conf válido si se supone que la consulta DNS debe enviarse a través del cliente vpn? ¿Las consultas de DNS se envían directamente a 8.8.8.8 oa través de mi conexión vpn?

    
pregunta issrc 30.10.2018 - 01:45
fuente

1 respuesta

0
  

¿Por qué necesito un /etc/resolv.conf válido si se supone que la consulta de DNS debe enviarse a través del cliente vpn?

/etc/resolv.conf es la configuración para las bibliotecas de resolución en las que se debe usar el servidor DNS. Incluso si está utilizando una VPN, todavía necesita un servidor DNS. Solo que, la comunicación con el servidor DNS dado debe realizarse a través de la VPN.

Por ejemplo, si usa 8.8.8.8 como servidor DNS, debería ver que la consulta de DNS pasa a través de su interfaz VPN (tun0 en su caso), que también ve allí de acuerdo con su pregunta:

tcpdump -i tun0 -vv "host 8.8.8.8"
10.8.8.7.39209 > google-public-dns-a.google.com.domain: [udp sum ok] 17379+ PTR? ...

Si en su lugar utilizaría un servidor DNS en la red local (como 172.17.0.1), la consulta de DNS no pasará por la interfaz VPN, ya que la ruta a la red local no se establece a través de la interfaz VPN (ver netstat -rn o ip route para detalles). En su lugar, vería pasar la consulta a través de otra interfaz (posiblemente eth0 , dependiendo de su configuración exacta). En este caso, tendría una pérdida de DNS ya que la consulta de DNS está omitiendo la VPN.

    
respondido por el Steffen Ullrich 30.10.2018 - 07:07
fuente

Lea otras preguntas en las etiquetas