Оболочка openvpn с проблемами маршрутизации stunnel
Я пытаюсь настроить новый сервер OpenVPN, работающий в Ubuntu (дистрибутив не имеет значения для меня), но туннелированный внутри stunnel (чтобы избежать DPI). Моя проблема в том, что если у меня настроен клиент для маршрутизации через VPN, я получаю нулевой трафик. Та же конфигурация без stunnel работает просто отлично. Я подозреваю, что есть какая-то локальная проблема маршрутизации, и я просто не могу ее зафиксировать.
Моя конфигурация сервера OpenVPN:
[...]
topology subnet
port 1196
proto tcp
mode server
[...]
dev tun0
server 192.168.81.0 255.255.255.0
push "redirect-gateway def1 bybass-dhcp"
push "route 192.168.10.0 255.255.255.0"
push "dhcp-option DNS 192.168.10.254"
Моя конфигурация stunnel на том же сервере OpenVPN:
# Connection
[openvpn-localhost]
# Incoming connection port
accept = 8443
# Connection to local OpenVPN server
connect = 127.0.0.1:1196
Моя основная сеть - 192.168.10.0/24, а подсеть VPN - 192.168.81.0/24. Также на сервере OpenVPN у меня есть следующее правило iptables для пересылки всего:
Chain POSTROUTING (policy ACCEPT)
[...]
MASQUERADE all -- 192.168.81.0/24 anywhere
Переадресация IP также включена в ядре.
На моем клиенте OpenVPN я подключаюсь к локальному порту, который затем туннелирует трафик OpenVPN к серверу. Конфигурация stunnel на клиенте:
[openvpn-localhost]
client = yes
# Local openvpn connection
accept = 127.0.0.1:1196
# Remote tunnel
connect = <my remote target>:8443
Как только все подключено, это таблица маршрутизации на моем клиенте:
$ netstat -rn
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 192.168.81.1 0.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.43.1 0.0.0.0 UG 0 0 0 wlp2s0
127.0.0.1 192.168.43.1 255.255.255.255 UGH 0 0 0 wlp2s0
192.168.10.0 192.168.81.1 255.255.255.0 UG 0 0 0 tun0
192.168.43.0 0.0.0.0 255.255.255.0 U 0 0 0 wlp2s0
192.168.43.1 0.0.0.0 255.255.255.255 UH 0 0 0 wlp2s0
192.168.81.0 0.0.0.0 255.255.255.0 U 0 0 0 tun0
192.168.43.0/24 в данном случае это трос, к которому я подключен, чтобы проверить это. Он вообще не подключен к моей внутренней сети.
Мой клиент не может ничего пинговать по VPN. Любая помощь или вход здесь, чтобы решить эту проблему будет принята с благодарностью.
1 ответ
От вас требуется добавить следующую строку маршрутизации в файл конфигурации openvpn (на стороне сервера):
push "route [ENDPOINT_IP] 255.255.255.255 net_gateway"
ИЛИ ЖЕ
Вы можете вручную добавить этот маршрут (каждый раз, когда вы хотите его использовать - или вы можете добавить его в свой сетевой скрипт) на клиенте, набрав:
sudo route add -host (or -net) [DESTINATION-SERVER-IP aka ENDPOINT_IP] gw [YOUR-LAN-GW-IP] (e.g. 192.168.10.1) netmask 0.0.0.0 dev [Interface] (e.g. wlp2s0)
Если это не работает; Также вы можете проверить, включена ли у вас ip-v4.forwarding в файле /etc/sysctl.conf.
Всего наилучшего и удачи