Я настроил сервер OpenVPN (VPN ip=10.8.0.1) на сервере с публичным ip. И у меня есть рабочая станция (Ubuntu) в моей лаборатории со школьным ip, которая может получить доступ к интрасетевым ресурсам школы.
Я хочу, чтобы мой Android-телефон и Windows-компьютер могли получить доступ к этим ресурсам. Поэтому я:
Конфигурация сервера OpenVPN:
dev tun
топология подсеть
сервер 10.8.0.0 255.255.255.0
client-config-dir /etc/openvpn/server/ccd
push "route 10.8.0.0 255.255.255.0"
push "route-gateway 10.8.0.3"Подключаю свою рабочую станцию к серверу и получаю IP 10.8.0.3, его конфигурация ccd (эквивалент конфигурации клиента) следующая:
ifconfig-push 10.8.0.3 255.255.255.0
На рабочей станции использовал iptables и добавил некоторые элементы:
$ sudo iptables -t filter -S
-P ВХОД ПРИНЯТЬ
-P ПЕРЕСЫЛКА ПРИНЯТЬ
-P ВЫХОД ПРИНЯТЬ
$ sudo iptables -t nat -S
-P ПРЕДВАРИТЕЛЬНАЯ МАРШРУТИЗАЦИЯ ПРИНЯТЬ
-P ВХОД ПРИНЯТЬ
-P ВЫХОД ПРИНЯТЬ
-P ПОСЛЕДУЮЩАЯ МАРШРУТИЗАЦИЯ ПРИНЯТЬ -A ПОСЛЕДУЮЩАЯ МАРШРУТИЗАЦИЯ
-s 10.8.0.0/24 -o wlx0810752b55c9 -j МАСКАРАДКонфигурация CCD моего домашнего ПК такова:
ifconfig-push 10.8.0.5 255.255.255.0
push "маршрут-шлюз 10.8.0.3"
push "перенаправление-шлюз def1 обход-dhcp"
push "dhcp-option DNS 8.8.8.8"Результат1 ПК не может подключиться к интернету. Таблица маршрутизации этого ПК:
маршрут печать -4
0.0.0.0 0.0.0.0 192.168.1.254 192.168.1.21 35
0.0.0.0 128.0.0.0 10.8.0.3 10.8.0.5 291
128.0.0.0 128.0.0.0 10.8.0.3 10.8.0.5 291
последние два пункта - это то, что добавил "redirect-gateway def1", не удаляя исходный шлюз по умолчанию. Мне интересно, почему def1 работает для перенаправления трафика? Потому что исходный шлюз по умолчанию все еще там и с лучшей метрикой, поэтому никакой трафик не будет проходить через VPN.
Результат 2 Мой телефон на Android тоже не может.
$ busybox ip route show table all
default via 10.183.93.203 dev ccmni0 table 1002
default dev tun0 src 10.8.0.4
10.8.0.0/24 dev tun0 table 1015
10.8.0.0/24 dev tun0 src 10.8.0.4 ...
Я убедился, что рабочая станция не получает трафик:
$ sudo tcpdump -i tun0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tun0, link-type RAW (Raw IP), capture size 262144 bytes
^C
0 packets captured
0 packets received by filter
0 packets dropped by kernel
$
Я прошел через множество тем по этому поводу, но не нашел рабочего решения. Так что, кто-нибудь может мне помочь, любые предложения приветствуются!
решение1
В каталоге ccd на сервере файл рабочей станции должен содержать iroute. Попробуйте это, пожалуйста. Я пытаюсь сделать то же самое, не используя сервер доступа и используя клиент Linux в качестве шлюза, как показано здесь. https://www.youtube.com/watch?v=b7qr0laM8kA