OpenVPN разрешает раздельное туннелирование, клиент может перегружаться через собственное интернет-соединение
Я пытаюсь включить раздельное туннелирование в моей сети VPN. Я использую OpenVPN для размещения своей VPN-сети и выполнил шаги, чтобы заставить работать раздельное туннелирование, однако мои клиенты все еще получают: 0.0.0.0 {VPN local address} push
Вот мой файл server.conf на сервере OpenVPN, который имеет реальный публичный интерфейс с реальным IP.
port 1194
proto udp
dev tun
#ssl stuff
ca /etc/openvpn/certs/ca.crt
cert /etc/openvpn/certs/server.crt
key /etc/openvpn/keys/server.key
dh /etc/openvpn/dh2048.pem
#server statement and subnet for VPN IPs /24 for simplicity
server 10.0.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt # for persistant IPing of VPN clients
push "route-nopull"
push "route 172.16.0.11 255.255.255.255 vpn_gateway" #internal node i want VPN clients to have access to
push "route 172.16.0.3 255.255.255.255 vpn_gateway" #internal node I want VPN clients to have access to
push "dhcp-option DNS 172.16.0.3" # so VPN clients use internal dns for resolution
client-to-client
[rest of config omitted]
Таблица маршрутов клиента, где: 172.16.250.10 - это VPN-адрес клиента {publicIP} = - публичный IP-адрес сети клиента; {localIP} = - это локальный IP-адрес, например 192.168.xx, в локальной сети, в которой он находится, а не VPN.
Destination Gateway Genmask Flags
0.0.0.0 10.0.0.10 0.0.0.0 UG
{publicIP} {localIP} 255.255.255.255 UGH
10.0.0.0 10.0.0.10 255.255.255.0 Ug
10.0.0.10 0.0.0.0 255.255.255.255 UH # don't really understand this statement
172.16.0.3 10.0.0.10 255.255.255.255 UGH #from push command in server.conf
172.16.0.11 10.0.0.10 255.255.255.255 UGH #from push command in server.conf
{client's localSubnet} 0.0.0.0 255.255.255.0 U
IPTables на коробке OpenVPN, у этого поля есть открытый интерфейс, используемый для приема входящих запросов OpenVPN.
Chain FORWARD (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 10.0.0.0/24 172.16.0.3 /* Allow VPN IPs to connect to the internal DNS for resolution */
ACCEPT all -- 10.0.0.0/24 172.16.0.11 /* Allows VPN IPs to connect to homeserver */
Я считаю, что это единственные конфиги, связанные с подключением VPN в моей настройке. Поэтому я немного запутался, так как мои VPN-клиенты получают операторы explicity push в свои таблицы маршрутов, однако клиент по-прежнему не может использовать свой локальный шлюз для IP-запросов, не предназначенных для сетей 10.0.0.0/24 или 172.16.0.0/24.
Спасибо за помощь и время заранее.
-Джим
0 ответов
Я недавно сделал нечто подобное.
Но так как мне приходится выбирать между перенаправлением всего трафика и только трафиком vpn.
Я настроил это в файле client.ovpn.
Итак, у меня есть 2 файла. Один для перенаправления всего трафика через VPN (незащищенные сети), а другой - для раздельного туннелирования (защищенные сети).
Я только добавляю следующие строки в client.ovpn
Способ 1:
Добавьте эту строку в файл client.conf или добавьте --route-noexec
в openvpn linecommand
route-noexec
(Таблица маршрутов клиента с этой опцией)
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 302 0 0 wlan0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.1.0 0.0.0.0 255.255.255.0 U 302 0 0 wlan0
А также curl ipinfo.io
показывает реальное местоположение клиента.
Способ 2:
Добавьте эти строки в файл client.conf
route-nopull
route 0.0.0.0 128.0.0.0 net_gateway
route 128.0.0.0 128.0.0.0 net_gateway
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 128.0.0.0 UG 0 0 0 wlan0
0.0.0.0 192.168.1.1 0.0.0.0 UG 302 0 0 wlan0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
128.0.0.0 192.168.1.1 128.0.0.0 UG 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 302 0 0 wlan0
А также curl ipinfo.io
показывает реальное местоположение клиента.
Ваш случай.
Если вы добавите эту строку в файл client.conf
route-nopull
route 172.16.0.11 255.255.255.255 vpn_gateway
route 172.16.0.3 255.255.255.255 vpn_gateway
route 0.0.0.0 128.0.0.0 net_gateway
route 128.0.0.0 128.0.0.0 net_gateway
Я проверяю это на одном из моих клиентов и:
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 128.0.0.0 UG 0 0 0 wlan0
0.0.0.0 192.168.1.1 0.0.0.0 UG 302 0 0 wlan0
10.8.0.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
128.0.0.0 192.168.1.1 128.0.0.0 UG 0 0 0 wlan0
172.16.0.3 10.8.0.1 255.255.255.255 UGH 0 0 0 tun0
172.16.0.11 10.8.0.1 255.255.255.255 UGH 0 0 0 tun0
192.168.1.0 0.0.0.0 255.255.255.0 U 302 0 0 wlan0
А также curl ipinfo.io
показывает реальное местоположение клиента.