Cliente Openvpn, forzar servidor DNS


9

Nuestra configuración Linux Ubuntu tiene un servidor DNS (Bind 9).
Y resolv.conftiene su

  nameserver 127.0.0.1

Cuando openvpnutilizo el cliente en ese Linux, el servidor de nombres no cambia (por el servidor VPN) pero me gustaría configurarlo, solo durante la sesión VPN, en otro servidor DNS específico x.y.z.t, cambiando la configuración del cliente openvpn.

Luego, cuando openvpnfinaliza la sesión, el servidor de nombres debería volver a 127.0.0.1.

¿Hay una forma "limpia" (es decir, una línea en el archivo de configuración del cliente openvpn) para hacer eso?

(Nota: la configuración del servidor VPN no se puede cambiar)

Respuestas:


17

Después de buscar más en Google, podría encontrar la respuesta, a continuación, si puede ayudar a alguien.

  • instale resolvconf que puede guardar y restaurar el resolv.confarchivo de configuración
  • agregue un script para que lo ejecute openvpn , in /usr/share/openvpn, named update-resolv-conf. El script determina cuál debería ser el nuevo resolv.confy cómo restaurarlo (ver el enlace a continuación)
  • añadir

Estas líneas

  script-security 2
  up /usr/share/openvpn/update-resolv-conf
  down /usr/share/openvpn/update-resolv-conf

en el archivo de configuración del cliente openvpn.

Lea en este wiki para más información.


55
Las nuevas instalaciones de OpenVPN incluyen este script con la instalación. En lugar de descargar e instalar manualmente en /usr/share/openvpn/update-resolv-conf, puede encontrarlo preinstalado en /etc/openvpn/update-resolv-conf.
Nate Lampton

¿Qué versión de OpenVPN comenzó a incluir este archivo?
lanoxx

1
Llegué un poco tarde a la fiesta, pero la estoy usando 2.4.6y me la han instalado
Roshan Bhumbra

1

Considere usar route-up/ route-downscripts en su cliente para alterar su configuración en la configuración de la conexión como mejor le parezca. Consulte los documentos de OpenVPN para obtener detalles sobre cómo configurar esto y qué variables puede usar en estos scripts.


+1, interesante y útil. El resolvconf solución a través de arriba y abajo (encima o por debajo de dep. De calificación ..) es sin embargo más al punto, y, imo, más limpio.
Anillo Ø

@ ring0 Aconsejaría usar en route-uplugar de upminimizar las condiciones de carrera. Cuando upse ejecuta el script, la conexión aún no está configurada y no tiene la posibilidad de consultar la resolución remota que está configurando. Si inicia el cliente OpenVPN en una situación en la que la configuración de la conexión no se completaría, está poniendo su solucionador en un estado posiblemente no funcional durante un período prolongado de tiempo. Consulte la sección "Orden de ejecución del script" en la página de manual de OpenVPN para obtener más detalles.
the-wabbit

Hice algunas pruebas, y el script up se llama justo cuando se alcanza "Secuencia de inicialización completada", no antes. BTW no puede encontrar "ruta hacia abajo" en el hombre.
Anillo Ø

1

Esta fue información útil para ayudarme a solucionar este problema.

Soy un usuario de Arch Linux y lo que vi es que cuando se usa un cliente Linux con Access Server, este no puede alterar la configuración de DNS en el cliente en cuestión y no resuelve el host, ya que se encuentra en la documentación de OPEN VPN

Creé un script que soluciona el problema y con un par de parámetros adicionales maneja las conexiones openvpn a través de la línea de comandos.

https://gist.github.com/android10/ee5c3e93dbcf9b7b31e6ee768cbfd477

Aquí está el comando principal que se ejecuta para la conexión:

  nohup openvpn --config $OVPN_FILE_PATH --askpass $OVPN_PRIVATE_KEY_FILE_PATH \
  --script-security 2 \
  --setenv PATH '/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin' \
  --up /etc/openvpn/scripts/update-systemd-resolved \
  --down /etc/openvpn/scripts/update-systemd-resolved \
  --down-pre \
  &>/dev/null &

Cualquier comentario es más que apreciado.


-2

echo "servidor de nombres = wxyz"> /etc/resolv.conf
echo "servidor de nombres = 127.0.0.1" >> /etc/resolv.conf


2
Eso parece inexacto (piense en la ruta de búsqueda de DNS y la persistencia del servidor de nombres VPN), pero tampoco está claro dónde quiere que coloque esto.
Falcon Momot

Debe haber un espacio entre el 'servidor de nombres' y la IP.
lorenzog
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.