Estoy ejecutando ubuntu xenial 16.04
Estamos utilizando openvpn para conectarse a una nube privada virtual. Esa nube tiene su propio servidor DNS (al igual que nuestra ruta local: hogar u oficina).
Cuando me conecto a la VPN, todas las IP de esa red están disponibles, pero no puedo acceder a ninguna por nombre de host. La razón es simple: el archivo resolv.conf todavía muestra el servidor de nombres de mi oficina local. Si sobrescribo manualmente el resolv.conf para tener el servidor de nombres correcto, todo está bien.
Entonces, ¿cómo puedo hacer que reconfigure automáticamente resolv.conf al conectarse a la VPN?
¿Puedo conectarme a un evento del sistema y ejecutar un script?
--register-dns
opción? Alternativamente, hay opciones del lado del cliente que puede establecer, como dhcp-options (el otro lado de las instrucciones aquí openvpn.net/index.php/open-source/documentation/howto.html#dhcp )Respuestas:
El paquete OpenVPN tiene un script para esto en
/etc/openvpn/update-resolv-conf
. Necesita configurarlo con:Esto buscará las direcciones del servidor DNS de las
dhcp-option DNS
opciones pasadas por el par / servidor OpenVPN y se configurará enresolvconf
consecuencia. Se manejadhcp-option DOMAIN
también.Sin embargo, no es perfecto, porque esto antepondrá esos servidores de nombres a la lista de servidores de nombres existentes en lugar de sobrescribir la lista de servidores de nombres. Si está usando
openresolv
el-x
se puede utilizar para sobrescribir la configuración DNS en lugar de preprending a ella.Si está usando
systemd-resolved
, puede usar el/etc/openvpn/update-systemd-resolved
que se engancha ensystemd-revolved
lugar deresolvconf
.En Debian, este script está en el
openvpn-systemd-resolved
.fuente
script-security 2
o ejecutar suopenvpn
con--script-security 2
Aquí está la solución que se me ocurrió: hay un interruptor que le permite ejecutar un script cuando el túnel está en funcionamiento. Utilizo el interruptor para esencialmente sobrescribir el archivo resolv.conf con uno que sé que es correcto. Es un truco total, lo sé.
el script (reset-dns):
Además, para los que dicen "¡Dios mío! ¡Estás ejecutando ese túnel como root!" No funcionará de otra manera; incluso antes de mi pirateo de DNS.
Definitivamente estoy abierto a una mejor manera. El administrador de red para ubuntu simplemente no funcionará. He cortado boletos para ubuntu en esto repetidamente
fuente