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

Заменить DNS на клиенте Openvpn без перенаправления-шлюза

Я пытаюсь подтолкнуть DNS к клиенту с сервером OpenVPN с конфигурацией:

 push "dhcp-option DNS 192.168.x.x"

Он работает хорошо, но мне действительно нужно, чтобы во время VPN-соединения я не хотел использовать свои основные преобразователи, клиенты должны использовать только DNS, предоставленный сервером. Это можно сделать с помощью push редирект-шлюз, но я не хочу туннелировать все соединения от клиента через VPN, только определенные сети.

А можно как-нибудь?
Клиенты Linux в порядке со сценарием, в Windows я не уверен

Использовать redirect-private, но также добавить route для каждой сети, которую вы хотите маршрутизировать через VPN.

Кстати, обратите внимание, что настройка DNS на других интерфейсах перестанет работать, когда этот интерфейс не будет иметь маршрута к своим DNS-серверам. Вот что происходит, когда redirect-gateway удаляет шлюз по умолчанию из вашего (W) LAN-интерфейса и добавляет маршрут хоста к IP-адресу VPN-сервера через исходный GW. В зависимости от вашей настройки, возможно, нет рабочей настройки, и вам придется изменить DNS-именование, чтобы включить некоторый поддомен для внутренних сетей.

// edit: Извините, я не видел часть окон, когда размещал это. Следующее - о Linux.

Некоторое время назад у меня была эта проблема с openvpn и клиентом linux. Но resolvconf сильно усложнил мне написание заданных dhcp-параметров. прямо в локальный файл resolv.conf, и не было возможности восстановить старый сервер имен после отключения от vpn. Поэтому я сдался и сделал два небольших сценария bash, которые обрабатывают мой файл resolv.conf при подключении / отключении vpn. (Конечно, эти сценарии должны быть установлены на каждом клиенте, поэтому общего решения нет.)

Сценарий up выполняет резервное копирование ваших обычных определений серверов имен в безопасное место перед тем, как перезаписать их теми, что указаны в полученном dhcp-option. Сценарий вниз просто перемещает ваш обычный файл на место.

добавить в конфиг вашего vpn-соединения

script-security 2
up /etc/openvpn/dns.up.sh
down /etc/openvpn/dns.down.sh

dns.up.h

#!/bin/bash

        mv /etc/resolv.conf /etc/resolv.conf.novpn

        for optionname in ${!foreign_option_*} ; do
                option="${!optionname}"
                echo $option
                part1=$(echo "$option" | cut -d " " -f 1)
                if [ "$part1" == "dhcp-option" ] ; then
                        part2=$(echo "$option" | cut -d " " -f 2)
                        part3=$(echo "$option" | cut -d " " -f 3)
                        if [ "$part2" == "DNS" ] ; then
                                IF_DNS_NAMESERVERS="$IF_DNS_NAMESERVERS $part3"
                        fi
                        if [ "$part2" == "DOMAIN" ] ; then
                                IF_DNS_SEARCH="$IF_DNS_SEARCH $part3"
                        fi
                fi
        done
        R=""
        for SS in $IF_DNS_SEARCH ; do
                R="${R}search $SS
"
        done
        for NS in $IF_DNS_NAMESERVERS ; do
                R="${R}nameserver $NS
"
        done
        echo -n "$R" > /etc/resolv.conf

dns.down.sh

#!/bin/sh

mv /etc/resolv.conf.novpn /etc/resolv.conf

Karma Fusebox. Это разобрало меня семь лет и девять месяцев спустя.

OpenVPN 2.4.7 в Linux raspberrypi 5.4.51-v7l + # 1333

Та