Comment configurer OpenVPN pour permettre aux clients VPN d'accéder à tous les serveurs à l'intérieur du LAN du serveur?

12

L'IP de mon serveur LAN est 192.168.1.1 et il y a un serveur Web intranet sur 192.168.1.2 Le démon OpenVPN est configuré pour donner aux clients des adresses 192.168.2. *.

Il y a une push "route 192.168.1.0 255.255.255.0"ligne dans la configuration qui devrait permettre aux clients VPN d'accéder à l'intégralité du réseau 192.168.1.0, mais ils ne peuvent accéder qu'à 192.168.1.1 - le serveur VPN lui-même.

J'ai essayé permettant net.ipv4.ip_forward = 1à , /etc/sysctl.confmais cela ne suffit pas.

Des idées?

PS: le serveur exécute Ubuntu 12.04.
PPS: OpenVPN fonctionne en tunmode sur UDP.

Ivan
la source
Cher @FrandsHansen, je n'accepte que les réponses qui en même temps 1. sont des réponses logiquement correctes aux questions, 2. ont été testées par mes soins pour fonctionner.
Ivan

Réponses:

19

Assurez-vous que le transfert IP est bien activé

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

De plus, pour que la transmission d'itinéraire fonctionne, les serveurs à l'intérieur doivent également connaître l'itinéraire vers l'adresse IP de votre client OpenVPN. Ils devront donc connaître l'itinéraire vers 192.168.2.0/24

Vous pouvez très probablement faire iptables faire le routage via la mascarade en utilisant

/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
la source
echo 1 > /proc/sys/net/ipv4/ip_forwarddonne -bash: /proc/sys/net/ipv4/ip_forward: Permission denied- qu'est-ce que cela signifie dans ce cas?
Ivan
Cela signifie très probablement que vous ne le faites pas en tant que root. Essayez de le faire en tant que root
Frands Hansen
C'est juste le même effet avec sudo. Quel est le résultat prévu?
Ivan
1
Mettre sudo devant la commande n'ajoutera pas les privilèges au fichier (après le>), vous devez donc élever à root puis le faire.
Frands Hansen
1
ou utilisezecho 1 | sudo tee
ygrek
2

Si votre réseau LAN est vraiment 192.168.1.0/24, vous pouvez rencontrer de nombreux problèmes. Parce que la plupart des routeurs ont ce réseau par défaut. Ainsi, lorsque vous êtes sur un réseau invité, votre ordinateur peut obtenir une adresse IP à partir du réseau 192.168.1.0/24. Vous ne pouvez donc pas accéder à votre réseau distant, mais au réseau invité. Je suggère de choisir un autre réseau pour votre LAN et VPN. par exemple 192.170.15.0/24 pour LAN et 10.0.5.0/xx pour vpn. xx dépend de la quantité de clients vpn qui se connectent au LAN.

voici mon script fw pour 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
la source
Non, ce n'est pas 192.168.1.0 en fait, juste 2 différents réseaux 192.168. #. 0. Merci pour la réponse.
Ivan
Si vous en avez besoin, je peux partager ma configuration de serveur openvpn et ma configuration client.
Guntis