Jak skonfigurować OpenVPN, aby umożliwić klientom VPN dostęp do wszystkich serwerów w sieci LAN serwera?

12

Mój adres IP LAN serwera to 192.168.1.1, a na serwerze 192.168.1.2 jest intranetowy serwer WWW. Demon OpenVPN jest skonfigurowany tak, aby przekazywał klientom adresy 192.168.2. *.

W push "route 192.168.1.0 255.255.255.0"konfiguracji jest wiersz, w którym spodziewam się umożliwić klientom VPN dostęp do całej sieci 192.168.1.0, ale mogą oni uzyskać dostęp tylko do 192.168.1.1 - samego serwera VPN.

Próbowałem umożliwiając net.ipv4.ip_forward = 1w /etc/sysctl.confale to nie pomaga.

Jakieś pomysły?

PS: na serwerze działa Ubuntu 12.04.
PPS: OpenVPN działa w tuntrybie przez UDP.

Ivan
źródło
Drogi @FrandsHansen, akceptuję tylko te odpowiedzi, które jednocześnie 1. są logicznie poprawnymi odpowiedziami na pytania, 2. zostały przetestowane przeze mnie do pracy.
Ivan

Odpowiedzi:

19

Upewnij się, że przekazywanie adresu IP jest włączone

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

Ponadto, aby wypychanie trasy działało, serwery wewnątrz muszą również znać trasę do adresu IP klienta OpenVPN. Będą więc musieli znać trasę do 192.168.2.0/24

Najprawdopodobniej możesz zmusić iptables do rutowania za pomocą maskowania

/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
Frands Hansen
źródło
echo 1 > /proc/sys/net/ipv4/ip_forwarddaje -bash: /proc/sys/net/ipv4/ip_forward: Permission denied- co to znaczy w tym przypadku?
Ivan
Najprawdopodobniej oznacza to, że nie robisz tego jako root. Spróbuj zrobić to jako root
Frands Hansen
To tylko ten sam efekt z sudo. Jaki ma być wynik?
Ivan
1
Umieszczenie sudo przed poleceniem nie doda uprawnień do pliku (po>), więc musisz podnieść go do roota, a następnie to zrobić.
Frands Hansen
1
lub użyjecho 1 | sudo tee
ygrek
2

Jeśli Twoja sieć LAN to naprawdę 192.168.1.0/24, możesz mieć wiele problemów. Ponieważ większość routerów ma tę domyślną sieć. Tak więc, gdy jesteś w sieci gościa, Twój komputer może uzyskać adres IP z sieci 192.168.1.0/24. Nie możesz więc uzyskać dostępu do sieci zdalnej, ale do sieci gości. Proponuję wybrać inną sieć dla swojej sieci LAN i VPN. na przykład 192.170.15.0/24 dla LAN i 10.0.5.0/xx dla VPN. xx zależy od tego, ile klientów VPN łączy się z siecią LAN.

oto mój skrypt fw dla 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
Guntis
źródło
Nie, to nie jest 192.168.1.0, tylko 2 różne 192.168. #. 0 sieci. Dziękuję za Twoją odpowiedź.
Ivan
Jeśli potrzebujesz, mogę udostępnić moją konfigurację serwera openvpn i konfigurację klienta.
Guntis,