Instalé OpenVPN en mi servidor a través de este script de instalación automática y copié el archivo de configuración generado en mi cliente, también ejecuté OpenVPN. Quiero enrutar todo el tráfico del cliente a través de la VPN, y quiero que los nombres se resuelvan en el lado del servidor. Todo el tráfico parece enrutarse con éxito, pero los nombres se resuelven por el servidor DNS que especifique en el cliente resolv.conf
. ¿Cómo puedo hacerlo para que se resuelvan del lado del servidor? Configuración relevante del lado del servidor:
root@marius:~# cat /etc/openvpn/server.conf | grep dhcp
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
No estoy familiarizado con los servidores VPN, no estoy seguro de si ese "empuje" es necesario, ya que no uso el lado del cliente DHCP. Lado del cliente resolv.conf
(establecido manualmente, nunca cambia):
domain domain.name
search domain.name
# Local cache (dnsmasq)
nameserver 127.0.0.1
# VPN (doesn't work)
#nameserver 10.8.0.1
# ISP (doesn't work with VPN)
#nameserver 200.175.89.139
#nameserver 200.175.5.139
# Google (works with VPN)
nameserver 8.8.8.8
nameserver 8.8.4.4
Según el CÓMO oficial de OpenVPN :
Cuando se utiliza redirect-gateway, los clientes de OpenVPN enrutarán las consultas DNS a través de la VPN, y el servidor VPN deberá manejarlas. Esto se puede lograr presionando una dirección de servidor DNS para conectar clientes que reemplazarán la configuración normal de su servidor DNS durante el tiempo que la VPN esté activa. Por ejemplo:
push "dhcp-option DNS 10.8.0.1"
configurará clientes de Windows (o clientes que no sean de Windows con algunas secuencias de comandos adicionales del lado del servidor) para usar 10.8.0.1 como su servidor DNS. Cualquier dirección que sea accesible desde los clientes puede usarse como la dirección del servidor DNS.
Pero eso no parece funcionar, como se mencionó anteriormente. Supongo que debo configurar mi servidor (VPN) para que también sea un servidor DNS para que eso funcione. ¿Pero es eso necesario? ¿Por qué el servidor VPN no puede manejar consultas DNS reenviadas a través de él resolv.conf
(sin ser un servidor DNS, al igual que maneja todo lo demás sin ser un servidor todo lo demás)? Estoy un poco perdido aquí.
Puedo proporcionar cualquier archivo de configuración adicional si es necesario.
resolv.conf
, aunque lo mencioné en el OP. Dado que tengo control tanto del cliente como del servidorresolv.conf
, cualquiera de los dos está bien, siempre que la consulta DNS salga del servidor DNS desde mi VPN . Es decir, estoy de acuerdo con que la VPN solo reenvíe las consultas. Ahora, como pregunta final, ¿por qué las consultas DNS requieren un tratamiento especial? Quiero decir, no se requiere interpretación de la VPN, ¿no deberían enviarse las consultas junto con todo lo demás cuando configuro la dirección de mi clienteresolv.conf
a algún servidor DNS (no la dirección de mi VPN)?resolv.conf
a Google funcionó. De hecho, las consultas se enviaron a la VPN tal como se esperaba, pero mi ISP solo acepta consultas de sus clientes (que no es la VPN). Debería haberlo comprobado antes con Wireshark. Gracias, en realidad podría usar la VPN como caché local con dnsmasq, aunque parece funcionar bien si el caché está en el cliente (también con dnsmasq).Debe usar un script de shell adecuado para interactuar con las opciones que le pasó OpenVPN (las dos
push dhcp-options...
, que están perfectamente bien) con elresolv.conf
archivo a través delresolvconf
paquete, que debería haber instalado de manera predeterminada.Tengo, en
/etc/openvpn
el cliente, un archivo (¡no es mi trabajo!) Llamado/etc/openvpn/update-resolv-conf
, que se invoca en el archivo de configuración del cliente de la siguiente manera:Estoy seguro de que el script de shell está ampliamente disponible en línea, pero si no puede localizarlo, aquí está:
fuente