LinuxForum.Fans
Тема

Заставить роутер пропускать пакеты в сеть OpenVPN

Автор: xintrea 3 сообщений 628 просмотров
07.11.2017 00:27 #426224

Имеем конфигурацию:

1. Виртуалка: VDS-виртуалка в Интернете, на которой запущен сервер OpenVPN. Для vpn-сети задано адресное пространство 192.168.2.0/24. В этой vpn-cети данная виртуалка имеет IP 192.168.2.1.
2. Роутер: Домашний роутер с прошивкой DD-WRT, на котором запущен openvpn-клиент. После соединения с сервером, роутер получает в vpn-сети IP 192.168.2.50. Его IP в локальной домашней сети 192.168.1.1.
3. Рабочая станция: домашняя рабочая станция. Ее IP, к примеру 192.168.1.5. Маршрут по-умолчанию на ней установлен, естественно, на гейтвей 192.168.1.1.
Vpn-соединение между Виртуалкой и Роутером нормальное, работает в двух направлениях. Из консоли Роутера пинги ходят до Виртуалки. В консоле Виртуалки пинги ходят до Роутера.
Для начала задача простая: достучаться до Виртуалки 192.168.2.1 с Рабочей станции 192.168.1.5.

Для этого я на Роутере сначала смотрю роутинг:

Показать
text
# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.214.221.83. 0.0.0.0         UG    0      0        0 ppp0
83.221.214.192  *               255.255.255.255 UH    0      0        0 ppp0
127.0.0.0       *               255.0.0.0       U     0      0        0 lo
169.254.0.0     *               255.255.0.0     U     0      0        0 br0
192.168.1.0     *               255.255.255.0   U     0      0        0 br0
192.168.2.0     *               255.255.255.0   U     0      0        0 tun0

Я не силен в сетях, поэтому не могу точно сказать, достаточно ли строки 192.168.2.0 для того, чтобы пакеты на сеть 192.168.2.0 заворачивались этим правилом. Поэтому добавляю такое правило (просто командой, не через WEB интерфейс):

text
# route add -net 192.168.2.0 netmask 255.255.255.0 gw 192.168.2.1 metric 1

После чего имею уже два правила:

text
# route | grep 192.168.2.0
192.168.2.0     *               255.255.255.0   U     0      0        0 tun0
192.168.2.0     192.168.2.1     255.255.255.0   UG    1      0        0 tun0

По идее, этого достаточно для того, чтобы Роутер начал пробрасывать пакеты из сети 192.168.1.0/24 в 192.168.2.0/24, отправляя пакеты на гейтвей Виртуалку 192.168.2.1.
Однако ни ping 192.168.2.1, ни traceroute 192.168.2.1, выполненные в консоли домашней Рабочей станции, не работают.
Я не пойму, почему так происходит. Может быть, пакеты пробрасываются до 192.168.2.1 из сети 192.168.1.0/24, но обратно не возвращаются, потому что нужно еще как-то маршрут возвращения прописать? Или пинги не проходят потому, что на Роутере их рубит файрвол? Вот какую информацию могу дать по файрволу:

Показать
text
# cat /proc/sys/net/ipv4/ip_forward 
1
# iptables -L -n --line-numbers
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8080 
2    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
3    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443 
4    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:69 
5    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:22 

Chain FORWARD (policy ACCEPT) num target prot opt source destination 1 ACCEPT 0 -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED 2 lan2wan 0 -- 0.0.0.0/0 0.0.0.0/0 3 ACCEPT 0 -- 0.0.0.0/0 0.0.0.0/0 4 ACCEPT udp -- 0.0.0.0/0 224.0.0.0/4 5 TRIGGER 0 -- 0.0.0.0/0 0.0.0.0/0 TRIGGER type:in match:0 relate:0 6 trigger_out 0 -- 0.0.0.0/0 0.0.0.0/0 7 ACCEPT 0 -- 0.0.0.0/0 0.0.0.0/0 state NEW

Chain OUTPUT (policy ACCEPT) num target prot opt source destination

Chain advgrp_1 (0 references) num target prot opt source destination

Chain advgrp_10 (0 references) num target prot opt source destination

Chain advgrp_2 (0 references) num target prot opt source destination

Chain advgrp_3 (0 references) num target prot opt source destination

Chain advgrp_4 (0 references) num target prot opt source destination

Chain advgrp_5 (0 references) num target prot opt source destination

Chain advgrp_6 (0 references) num target prot opt source destination

Chain advgrp_7 (0 references) num target prot opt source destination

Chain advgrp_8 (0 references) num target prot opt source destination

Chain advgrp_9 (0 references) num target prot opt source destination

Chain grp_1 (1 references) num target prot opt source destination

Chain grp_10 (0 references) num target prot opt source destination

Chain grp_2 (0 references) num target prot opt source destination

Chain grp_3 (0 references) num target prot opt source destination

Chain grp_4 (0 references) num target prot opt source destination

Chain grp_5 (0 references) num target prot opt source destination

Chain grp_6 (0 references) num target prot opt source destination

Chain grp_7 (0 references) num target prot opt source destination

Chain grp_8 (0 references) num target prot opt source destination

Chain grp_9 (0 references) num target prot opt source destination

Chain lan2wan (1 references) num target prot opt source destination 1 grp_1 0 -- 0.0.0.0/0 0.0.0.0/0

Chain logaccept (0 references) num target prot opt source destination 1 ACCEPT 0 -- 0.0.0.0/0 0.0.0.0/0

Chain logdrop (0 references) num target prot opt source destination 1 DROP 0 -- 0.0.0.0/0 0.0.0.0/0

Chain logreject (0 references) num target prot opt source destination 1 REJECT tcp -- 0.0.0.0/0 0.0.0.0/0 reject-with tcp-reset

Chain trigger_out (1 references) num target prot opt source destination

Я добавил правило на Роутере:

text
# iptables -A FORWARD -d 192.168.2.0/24 -j ACCEPT
# iptables -L -n --line-numbers | grep 192.168.2.0
8    ACCEPT     0    --  0.0.0.0/0            192.168.2.0/24

Но пинги/трейсроут с Рабочей станции до Виртуалки все равно не проходят.
Вопрос: что где надо еще настроить, чтобы начали ходить пинги от Рабочей станции до Виртуалки?
PS: Далее будет следующий вопрос: (обратная задача) как заставить ходить пинги из Виртуалки до Рабочей станции. Ради этого, в принципе, все и затевалось.

07.11.2017 06:14 #426229

xintrea, укажите маршрутизацию с домашней консоли

07.11.2017 10:51 #426236

Длинные фрагменты кода убираем под спойлер.

Войдите или зарегистрируйтесь, чтобы ответить.