Як автоматично отримати новий сервер імен на VPN-з'єднанні


11

Я запускаю ubuntu xenial 16.04

Ми використовуємо openvpn для підключення до віртуальної приватної хмари. Ця хмара має власний DNS-сервер (як і наш місцевий маршрут - дім чи офіс).

Коли я підключаюсь до VPN, усі IP-адреси в цій мережі доступні, але я не можу досягти жодного за іменем хоста. Причина проста: у файлі резоv.conf все ще відображається мій сервер імен місцевого офісу. Якщо я вручну перезаписую файл resv.conf, щоб мати правильний сервер імен, все добре.

Отже, як я можу змусити його автоматично налаштувати Resol.conf після підключення до VPN?

Чи можу я підключитися до системної події та виконати сценарій?


1
Зазвичай існує можливість дозволити VPN натиснути власний DNS-сервер. Якого клієнта ви використовуєте - tunnelblick?
Райдер

Я використовую офіційний клієнт openvpn. Десь я прочитав, що процес VPN не може оновити DNS.
Крістіан Бонгіорно

Ви спробували --register-dnsваріант? Крім того, є параметри на стороні клієнта, які ви можете встановити як dhcp-options (зворотний бік інструкцій тут openvpn.net/index.php/open-source/documentation/howto.html#dhcp )
Райдер

Відповіді:


8

У пакеті OpenVPN є сценарій для цього в /etc/openvpn/update-resolv-conf. Вам потрібно налаштувати його за допомогою:

script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

Це дозволить отримати адреси сервера DNS з dhcp-option DNSпараметрів, що передаються одноранговим сервером / сервером OpenVPN і налаштувати resolvconfвідповідно. Це також справляється dhcp-option DOMAIN.

Однак це не ідеально, оскільки це призведе цих серверів імен до списку існуючих серверів імен замість перезапису списку серверів імен. Якщо ви використовуєте, openresolvце -xможе бути використане для перезапис конфігурації DNS, а не попередження до неї.


Якщо ви використовуєте systemd-resolved, ви можете використовувати, /etc/openvpn/update-systemd-resolvedякі гачки systemd-revolvedзамість них resolvconf.

script-security 2 
up /etc/openvpn/update-systemd-resolved
down /etc/openvpn/update-systemd-resolved
down-pre

У Debian цей скрипт знаходиться в openvpn-systemd-resolved.


2
вище цих 2 -х ліній, вам також необхідно додати script-security 2або запустити свій openvpnз--script-security 2
32r34wgf3e

0

Ось таке рішення, яке я придумав: Є перемикач, який дозволяє запускати сценарій, коли тунель працює і працює. Я використовую перемикач, щоб перезаписати файл Resol.conf одним файлом, який я знаю, що це правильно. Я знаю, тотальний злом.

sudo openvpn --up reset-dns.sh --client client.ovpn

сценарій (reset-dns):

#!/bin/bash
cp ~/resolv.conf /etc/resolv.conf

Також для тих, хто каже: "OMG! Ти працюєш із цим тунелем як корінь!" Це не буде працювати іншим способом; ще до мого злому DNS.

Я, безумовно, відкритий для кращого шляху. Менеджер мережі для ubuntu просто не працюватиме. Я вже неодноразово скорочував квитки на ubuntu

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.