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

Как настроить OpenVPN, чтобы клиенты VPN могли получить доступ ко всем серверам в локальной сети сервера?

IP-адрес моего сервера в локальной сети - 192.168.1.1, а на 192.168.1.2 - веб-сервер интрасети. Демон OpenVPN настроен на предоставление клиентам адресов 192.168.2. *.

Там есть push "route 192.168.1.0 255.255.255.0" в строке конфигурации, которая, как я ожидаю, позволит VPN-клиентам получить доступ ко всей сети 192.168.1.0, но они могут получить доступ только к 192.168.1.1 - самому VPN-серверу.

Я пробовал включить net.ipv4.ip_forward = 1 в /etc/sysctl.conf но это не помогает.

Любые идеи?

PS: Сервер работает под управлением Ubuntu 12.04.
PPS: OpenVPN работает в tun режим по UDP.

Убедитесь, что IP-переадресация включена.

echo 1 > /proc/sys/net/ipv4/ip_forward

Кроме того, для того, чтобы проталкивание маршрута работало, внутренние серверы также должны знать маршрут к IP-адресу вашего клиента OpenVPN. Поэтому им нужно будет знать маршрут до 192.168.2.0/24.

Скорее всего, вы можете заставить iptables выполнять маршрутизацию через маскарад, используя

/sbin/iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
/sbin/iptables -A FORWARD -i eth0 -o tun0 -m state --state RELATED,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT

Если ваша сеть LAN действительно 192.168.1.0/24, то у вас может возникнуть много проблем. Потому что большинство маршрутизаторов имеют эту сеть по умолчанию. Итак, когда вы находитесь в гостевой сети, ваш компьютер может получить IP-адрес из сети 192.168.1.0/24. Итак, вы не можете получить доступ к своей удаленной сети, кроме гостевой сети. Я предлагаю выбрать другую сеть для вашей LAN и VPN. например 192.170.15.0/24 для LAN и 10.0.5.0/xx для vpn. xx зависит от того, сколько vpn-клиентов подключается к LAN.

вот мой fw скрипт для openvpn

#!/bin/sh

iptables -A INPUT -i tun+ -j ACCEPT
iptables -A FORWARD -i tun+ -j ACCEPT
iptables -A INPUT -i tap+ -j ACCEPT
iptables -A FORWARD -i tap+ -j ACCEPT

# Allow packets from private subnets
iptables -A INPUT -i eth1 -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT

# i have multiple vpn networks
# 192.123.123.0/24 = LAN
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.0.0/30 -o eth1 -j MASQUERADE
iptables -t nat -A POSTROUTING -s 10.9.1.0/30 -o eth1 -d 192.123.123.39 -j MASQUERADE # to single server access only

echo 1 > /proc/sys/net/ipv4/ip_forward