Существует сервер OpenVPN, работающий на Debian, и он выдвигает DNS в файле конфигурации сервера:
нажмите "dhcp-option DNS 8.8.8.8"
Есть ли возможность разрешить пользователям изменять эти DNS-серверы на стороне клиента?
Вот подвох, сервер openvpn должен выдвигать DNS, потому что в противном случае многие клиенты OpenVPN не смогут открывать веб-страницы, пока DNS-серверы не будут установлены вручную в сетевых настройках системы.
Моя цель состоит в том, чтобы автоматически применять DNS-сервер по умолчанию для неопытных пользователей, а также позволить опытным пользователям компьютеров устанавливать свои собственные DNS-серверы.
Обратите внимание, что простое изменение настроек DNS на ПК, когда на сервере openvpn активна опция «push» dhcp-option DNS 8.8.8.8 », ничего не делает. DNS, выдаваемый сервером, остается независимо от локальных настроек DNS.
Любые идеи?
Конфигурация сервера OpenVPN:
# cat /etc/openvpn/openvpn.conf
server 10.186.35.0 255.255.255.0
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh1024.pem
ifconfig-pool-persist ipp.txt
#push "route 0.0.0.0 0.0.0.0"
#push "redirect-gateway"
push "redirect-gateway def1 bypass-dhcp"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
keepalive 10 120
comp-lzo
user nobody
group users
persist-key
persist-tun
status openvpn-status.log
verb 3
script-security 3
auth-user-pass-verify /etc/openvpn/auth-chap via-env
client-cert-not-required
duplicate-cn
management 127.0.0.1 5119
script-security 3 system
username-as-common-name
client-connect /etc/openvpn/scripts/clientconnect.sh
client-disconnect /etc/openvpn/scripts/clientdisconnect.sh
log-append /var/log/openvpn.log
log /var/log/openvpn.log
ОБНОВЛЕНИЕ: клиентские операционные системы Windows и Mac
Ответы:
С 2017 года (OpenVPN 2.4) это стало возможным. Добавьте эту строку в ваш файл конфигурации клиента:
и он будет игнорировать все заданные строки конфигурации, которые начинаются с цитируемого текста.
Опции сопоставляются сверху вниз, поэтому используется первое совпадение. Вы можете использовать это, чтобы разрешить некоторые маршруты и отклонить другие, если это соответствует вашим потребностям.
Три ключевые слова действия являются
accept
,ignore
иreject
. Я не обнаружил вариант использования дляreject
.источник
В официальной документации OpenVPN вы можете найти:
К сожалению, в дополнение к тому, что вы спрашиваете, у этого есть побочный эффект отключения также шлюза перенаправления, предоставленного вашей конфигурацией, и это может представлять проблему для вашего случая.
Я предлагаю совершенно другой подход.
Как вы прямо упомянули: « Моя цель - автоматически применять DNS-сервер по умолчанию для пользователей, не обладающих техническими знаниями, и в то же время разрешать опытным пользователям компьютеров устанавливать свои собственные DNS-серверы». Похоже, вы точно знаете, каких пользователей вы хотите предоставить DNS-конфиг и какие пользователи вы не хотите предоставлять такой конфиг.
Следовательно, вместо того, чтобы помещать вашу конфигурацию непосредственно в основной файл конфигурации OpenVpn (... и, как таковой, предоставлять такую конфигурацию ВСЕМ вашим пользователям), вы можете реализовать конфигурацию для каждого пользователя . Вы можете сделать это с:
Итак, что касается основного конфига, вы должны удалить :
и добавьте ссылку на каталог / etc / openvpn / userconf (как пример. Не стесняйтесь выбирать все, что вам нравится):
Затем в таком каталоге userconf создайте по одному файлу для каждого пользователя, которому вы хотите предоставить такой DNS, включая в этот файл две строки, удаленные выше.
Очевидно, вы можете точно настроить конфигурацию openvpn для каждого пользователя, не ограничивая настройку двумя вышеупомянутыми строками.
И последнее замечание: вас может заинтересовать параметр ccd-exclusive .
источник
Моя проблема не была точно такой же, но симптомы были достаточно похожи для того, чтобы этот вопрос появлялся в результатах поиска, поэтому на случай, если кто-то еще попадет сюда по той же причине:
Я использую Tunnelblick , графический интерфейс OpenVPN для Mac OS. Мой сервер OpenVPN не был настроен на передачу каких-либо параметров DHCP или DNS, но клиент по-прежнему использовал DNS-сервер через VPN вместо локального DNS-сервера без VPN, который я хотел использовать.
Решением было перейти на вкладку «Конфигурации» → «Настройки» Tunnelblick и установить для параметра « Установить DNS / WINS» значение « Не устанавливать сервер имен» .
источник
Спасибо за @aldaviva, он работает на моем macOS 10.11.
Прикрепите мой скриншот.
источник