Состояние цели: пусть трафик с одного компьютера в моей локальной сети использует настройку VPN-туннеля между моим маршрутизатором и поставщиком OpenVPN и не затрагивает весь другой трафик.
Вот некоторая соответствующая информация о моем маршрутизаторе:
- Модель: Netgear WNDR3400
- FCC ID: PY309300116
- Прошивка: DD-WRT v24-sp2 (12.08.11) мега, сборка 17990М
- По приглашению маршрутизатора (через
ssh
),
root@hermes# nvram show | grep bytes size: 33129 bytes (32407 left)
Маршрутизатор DD-WRT (hermes 10.1.1.1
) настроен как клиент OpenVPN и успешно подключается к серверу OpenVPN (torchwood 10.8.0.1
).
Я проверил это, запустив tail -f /var/log/openvpn.log
на torchwood, запустив ping 10.8.0.1
на hermes, а также проверив содержимое /tmp/var/log/openvpn.log
на hermes - могу определенно вижу, что факел получает пинг трафик от гермеса.
То , что я пытаюсь сделать , это использовать простую маршрутизацию источника политики , чтобы другой компьютер (Solomon 10.1.1.20
на моей локальной сети будет иметь весь свой трафик , проходящий через соединение VPN. Однако мои попытки настроить таблицу, как в примере, не увенчались успехом.
Вот шаги, которые я делаю:
- Используя веб-интерфейс маршрутизатора, я помещаю следующее в качестве сценария брандмауэра:
iptables -I INPUT 1 -p tcp --dport 1194 -j ACCEPT iptables -I FORWARD 1 --source 10.8.0.0/24 -j ACCEPT iptables -I FORWARD -i br0 -o tun1 -j ACCEPT iptables -I FORWARD -i tun1 -o br0 -j ACCEPT
- Я сохраняю скрипт брандмауэра и перезагружаю роутер.
- На отдельном компьютере (Ларс) я ssh в Гермес.
- На Гермесе я запускаю следующие команды:
root@hermes# mkdir /tmp/etc/iproute2 root@hermes# echo "200 ovpn" >> /tmp/etc/iproute2/rt_tables root@hermes# ip rule add from all 10.1.1.20 lookup ovpn root@hermes# ip route add default via 10.8.0.1 dev tun1 table ovpn root@hermes# ip route flush cache
В результате создается папка iproute2
, а 200 ovpn
- это содержимое файла rt_tables
в этой папке. Тем не менее, когда я бегу:
root@hermes# ip rule list 0: from all lookup local 32766: from all lookup main 32767: from all lookup default root@hermes# ip route show table ovpn root@hermes# ip route show table all 10.8.0.5 dev tun1 src 10.8.0.6 X.Y.Z.1 dev vlan2 10.8.0.0/24 via 10.8.0.5 dev tun1 10.1.10.0/24 via 10.8.0.5 dev tun1 10.1.1.0/24 dev br0 src 10.1.1.1 X.Y.Z.0/21 dev vlan2 src X.Y.Z.W 169.254.0.0/16 dev br0 src 169.254.255.1 127.0.0.0/8 dev lo default via X.Y.Z.1 dev vlan2 broadcast 127.255.255.255 dev lo src 127.0.0.1 broadcast X.Y.Z.0 dev vlan2 src X.Y.Z.W local 169.254.255.1 dev br0 src 169.254.255.1 local 10.8.0.6 dev tun1 src 10.8.0.6 broadcast X.Y.Z.255 dev vlan2 src X.Y.Z.W broadcast 169.254.0.0 dev br0 src 169.254.255.1 broadcast 10.1.1.255 dev br0 src 10.1.1.1 broadcast 169.254.255.255 dev br0 src 169.254.255.1 local X.Y.Z.W dev vlan2 src X.Y.Z.W broadcast 127.0.0.0 dev lo src 127.0.0.1 broadcast 10.1.1.0 dev br0 src 10.1.1.1 local 127.0.0.1 dev lo src 127.0.0.1 local 10.1.1.1 dev br0 src 10.1.1.1 local 127.0.0.0/8 dev lo src 127.0.0.1 root@hermes# ifconfig tun1 tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.6 P-t-P:10.8.0.5 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:3 errors:0 dropped:0 overruns:0 frame:0 TX packets:3 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:252 (252.0 B) TX bytes:252 (252.0 B)
Ни одна из команд не выводит информацию, которую я только что добавил. Я также попытался добавить команды в сценарий запуска в веб-интерфейсе маршрутизатора и в /tmp/openvpn/route-up.sh
.
- Как правильно сделать это, чтобы конфигурация сохранялась?
- Строго ли необходим скрипт брандмауэра?
- Достигнет ли эта установка цели выхода Соломона через VPN и оставления всего остального трафика без изменений?
Также: есть ли альтернатива? Например, возможно, если я пропущу настройку VPN на маршрутизаторе и вместо этого установлю ссылку OpenVPN от solomon напрямую к torchwood, то мне придется только изменить таблицу маршрутизации на solomon?