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