Назад | Перейти на главную страницу

Совместное использование сети OpenVPN

В течение нескольких часов я уже пытаюсь настроить виртуальную частную сеть между двумя физическими местоположениями (Местоположение A, 192.168.1.0/24) и (Местоположение B, 192.168.2.0/24). Я вынужден использовать туннель вместо мостовой сети. 192.168.4.0/24 - это сеть VPN. Соединение между двумя местоположениями работает нормально, сервер имеет 192.168.4.1, а клиент - 192.168.4.6. Но теперь я хочу, чтобы сервер имел доступ к серверу в сети на стороне клиента, адрес которого 192.168.1.44.

Как мне добиться этого с помощью маршрутов и записей iptable (предположительно, постмаршрутизация NAT?)?

Попробуй это.

На сервере:

route add -net 192.168.1.0/24 gw 192.168.4.6

На клиенте:

iptables -t nat -I POSTROUTING -s 192.168.4.1 -t 192.168.1.44 -j SNAT --to 192.168.4.1

Одно это, вероятно, должно сработать. Продолжайте читать, если хотите рассмотреть другие варианты.

Вы сможете обойтись без правила iptables, если клиент окажется шлюзом по умолчанию для сети 192.168.1.0/24, если вы добавите этот маршрут либо на целевой сервер, либо на его шлюз по умолчанию:

route add -net 192.168.2.0/24 gw <IP_of_client_on_this_network>

Вы также можете заменить net 192.168.1.0/24 с просто 192.168.1.44 (и т. д.), если вы хотите, чтобы был доступен только этот сервер, но если вы имеете в виду фильтрацию, вам, вероятно, следует добавить отдельное правило фильтрации на сервере и / или клиенте.

Если вы уже фильтруете на клиенте (я имею в виду, если у вас есть правила FORWARD, см. iptables -nvL) вам нужно добавить туда еще одно правило:

iptables -I FORWARD -i tun+ -s 192.168.4.1 -d 192.168.1.44 -j ACCEPT

Изменить: удалил -i из правила POSTROUTING, это было ошибкой.