web-dev-qa-db-fra.com

Comment configurer un routeur client OpenVPN

J'essaie de configurer un routeur OpenVPN pour pouvoir connecter ma tablette (sans fil) et mon Blu-Ray (câblé) à un service VPN payant situé dans un autre pays sous Ubuntu 12.10. J'ai réussi à utiliser DD-WRT (trop lentement) et une instance virtuelle de PFSense (trop limité).

Je suis nouveau sur Linux, mais je suis complet à 90% avec ce projet. Le matériel est constitué de 2 ports Ethernet câblés, dont l'un est connecté à un routeur domestique traditionnel et d'une carte sans fil.

Jusqu'à présent, j'ai ..

  1. Configurer mon réseau sans fil pour qu'il agisse comme un véritable point d'accès principal à l'aide de hostapd
  2. Création d'un pont (je pense) entre le réseau local sans fil et local
  3. Configurez un serveur DHCP qui attribue avec succès des adresses au pont (les connexions sans fil et câblées les reçoivent).
  4. Configurez OpenVPN afin qu’il crée avec succès une connexion en tunnel au démarrage.

Le comportement actuel achemine tout le trafic de ma machine Ubuntu vers le serveur VPN. Les autres appareils n'ont PAS de connectivité, et c'est le problème.

Ma question/objectif:

Comment configurer le routage afin qu'OpenVPN dirige uniquement le trafic de mon pont (périphériques sous 192.168.10.x) à travers le tunnel VPN et PAS le trafic de l'ordinateur Ubuntu proprement dit?

OpenVPN configure automatiquement certaines routes, mais il semble ignorer le pont que j'ai configuré.

J'ai lu beaucoup de documentation sur iptables et route mais cela n'a pas beaucoup de sens pour moi. Malgré plusieurs tutoriels, je ne comprends toujours pas comment lire les résultats de la commande route. Je pense aussi que cela peut être accompli avec route-noexec et route-up dans le fichier de configuration OpenVPN, mais rien n’a été réussi.

Ma connaissance de l'emplacement des fichiers de configuration et des paramètres est limitée. Les tâches ci-dessus m'ont pris au moins 30 heures de bricolage, alors allez-y doucement sur moi :)

Merci!

Éditer

J'ai posté ci-dessous une solution qui dirige le trafic sur le pont, mais cela n'empêche pas le trafic sur l'ordinateur Ubuntu de passer par le VPN.

12
jbrookover

Je ne suis pas sûr que ce soit l'idéal, mais ça marche au moins. Dans un monde parfait, le trafic sur l'ordinateur Ubuntu ne serait pas acheminé via le VPN, mais uniquement sur les périphériques connectés à l'ordinateur Ubuntu. Quoi qu'il en soit, voici la solution ..

Dans le fichier openvpn.conf

script-security 2
up "/path/to/external/script.sh"

Dans le fichier /path/to/external/script.sh

iptables -A FORWARD -o tun0 -i br0 -s 192.168.10.0/24 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -F POSTROUTING
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

Dans ce qui précède, tun0 est le tunnel créé par OpenVPN, br0 est le pont entre mon réseau local sans fil et mon réseau local et 192.168.10.0/24 est son pool sous-réseau/DHCP pour mon réseau local.

Je n'ai aucune idée de ce que fait ce script, mais je l'ai assemblé à partir de quelques sites sur le partage de connexion Internet.

Je laisserai cette réponse non vérifiée au cas où quelqu'un voudrait en fournir une meilleure ou expliquer comment empêcher le trafic sur l'ordinateur Ubuntu de passer par le VPN.

1
jbrookover

Il est plus facile de configurer le routeur lui-même pour qu'il se connecte au serveur VPN afin que tous les périphériques de votre réseau le passent. Vous pouvez le faire à partir de l'interface Web du logiciel du routeur.

Afin de permettre aux périphériques connectés à votre PC d'accéder à Internet, vous devez partager Internet avec d'autres personnes.

0
Islam