Назад | Перейти на главную страницу

Клиент openvpn, принудительный DNS-сервер

В нашей конфигурации Linux Ubuntu есть DNS-сервер (Bind 9).
И resolv.conf имеет свой

  nameserver 127.0.0.1

Когда используешь openvpn клиент на этом Linux, сервер имен не изменяется (сервером VPN), но я хотел бы установить его - только во время сеанса VPN - на другой конкретный DNS-сервер x.y.z.t, изменив конфигурацию клиента openvpn.

Затем, когда openvpn сессия заканчивается, сервер имен должен вернуться к 127.0.0.1.

Есть ли «чистый» способ (например, строка в файле конфигурации клиента openvpn) для этого?

(Примечание: конфигурацию VPN-сервера изменить нельзя)

После большего количества поисков в Google можно было найти ответ - ниже, если это может кому-то помочь.

  • установить resolvconf который может сохранить и восстановить resolv.conf файл конфигурации
  • добавить скрипт для запуска openvpn, в /usr/share/openvpn, названный update-resolv-conf. Скрипт определяет, что должно быть новым resolv.conf, и как его восстановить (см. ссылку ниже)
  • Добавить

эти строки

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

в файле конфигурации клиента openvpn.

Читай дальше эта вики Чтобы получить больше информации.

Это была полезная информация, которая помогла мне решить эту проблему.

Я пользователь Arch Linux, и я увидел, что когда клиент Linux используется с сервером доступа, он не может изменить настройки DNS на рассматриваемом клиенте, не разрешая хост, поскольку он стоит на Документация по OPEN VPN

Я создал сценарий, который устраняет проблему и с парой дополнительных параметров обрабатывает соединения openvpn через командную строку.

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

Вот основная команда, выполняемая для подключения:

  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 &

Любая обратная связь более чем признательна.

Рассмотрите возможность использования route-up / route-down сценарии на вашем клиенте, чтобы изменить вашу конфигурацию при настройке соединения по вашему усмотрению. Увидеть Документы OpenVPN о деталях того, как это настроить и какие переменные вы можете использовать в этих скриптах.

echo "nameserver = w.x.y.z"> /etc/resolv.conf
echo "nameserver = 127.0.0.1" >> /etc/resolv.conf