1 votes

La station de travail VPN Gateway n'est pas accessible

Je voudrais utiliser ma station de travail linux comme passerelle VPN pour mon réseau local. La même station de travail est utilisée comme serveur web. Lorsque je connecte la station de travail au VPN, il n'est plus possible d'atteindre ce serveur Web depuis un réseau extérieur.

Ma configuration est la suivante :

Routeur ISP - ip 192.168.0.1 (passerelle par défaut, port mapping activé pour utiliser un port public non standard)

Station de travail Linux - ip fixe 192.168.0.20 (serveur dhcp car mon routeur ne permet pas de changer l'adresse de la passerelle, openvpn, apache, serveur dns)

sortie de "ip route show"

0.0.0.0/1 via 10.8.3.1 dev tun0 
default via 192.168.0.1 dev eth0 src 192.168.0.20 metric 202 
10.8.3.0/24 dev tun0 proto kernel scope link src 10.8.3.12 
37.120.143.221 via 192.168.0.1 dev eth0 (VPN external IP)
128.0.0.0/1 via 10.8.3.1 dev tun0 
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.20 metric 202 

La configuration est la suivante :

net.ipv4.ip_forward = 1
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

-P INPUT DROP
-P FORWARD DROP
-P OUTPUT ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p icmp -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 22 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i eth0 -o tun0 -j ACCEPT
-A FORWARD -i tun0 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT

J'ai remarqué que lorsque le VPN est activé sur la station de travail, le routeur de mon FAI n'affiche pas l'adresse IP locale correcte de ma station de travail linux dans la liste des clients connectés. Parfois, elle est correcte, mais parfois elle ressemble à une adresse IP aléatoire.

Si j'ajoute la route suivante : EXTERNAL_IP via 192.168.0.1 dev eth0 (où EXTERNAL_IP est l'adresse IP du réseau étendu), je peux atteindre le serveur Web sur le réseau local, mais toujours pas depuis un autre réseau.

0voto

MariusMatutiae Points 45233

Il n'y a aucun problème avec votre installation, l'erreur réside dans votre routage.

Si votre serveur fonctionne les deux comme serveur web et comme client VPN pour un serveur distant, tout utilisateur essayant d'accéder au serveur web recevra une réponse du serveur VPN distant ( no directement à partir du serveur web) parce que la table de routage de votre serveur local lui indique d'acheminer tout à travers le serveur OpenVPN distant. Toute machine envoyant une requête au site A mais recevant une réponse de B rejette automatiquement la réponse, pour des raisons évidentes de sécurité. Le serveur web devient donc inaccessible.

Il y a beaucoup, beaucoup de façons de résoudre votre problème. Ma préférée serait de ne pas toucher au serveur web, et de déplacer le client OpenVPN vers un conteneur Linux hébergé sur le même serveur, puis de modifier la configuration de votre routeur vers votre serveur DHCP/dnsmasq (peu importe) pour acheminer toutes les communications LAN via le conteneur Linux. C'est beaucoup plus facile qu'il n'y paraît.

Une autre possibilité consiste à mettre en place deux tables de routage, en laissant la principale pour les clients OpenVPN, tout en configurant la seconde en tant que identique à la table de routage que vous avez lorsque le VPN est no active, puis de demander à votre noyau de router tout le trafic provenant du serveur (lui-même !) à travers cette seconde table de routage. Le reste du trafic (celui qui provient de votre LAN, et que vous voulez faire passer par l'OpenVPN) utilisera par défaut la table de routage principale.

Cela aussi est assez facile à faire, vous pouvez trouver ici une excellente et très brève introduction à Linux politique (ou source ) de routage.

Vous pouvez aussi décider d'héberger votre serveur web sur la même machine que celle qui héberge votre serveur OpenVPN, ce qui résoudrait également votre problème. Dans ce cas, le plus simple serait de miroir votre site web local sur le serveur distant, afin que vous puissiez effectuer toute modification localement.

Le choix est vraiment le vôtre.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X