Comment configurer un routeur client OpenVPN

13

J'essaie de configurer un routeur OpenVPN afin de pouvoir connecter ma tablette (sans fil) et Blu-Ray (filaire) à un service VPN payant dans un autre pays sur Ubuntu 12.10. J'ai réussi cela en utilisant DD-WRT (trop lent) et une instance virtuelle de PFSense (trop limitée).

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

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

  1. Configurer mon réseau sans fil pour agir comme un véritable point d'accès maître à l'aide de hostapd
  2. J'ai créé un pont (je pense) entre le LAN sans fil et le LAN local
  3. Configurez un serveur DHCP qui attribue avec succès des adresses au pont - à la fois sans fil et câblé les obtiennent.
  4. Configurez OpenVPN pour qu'il crée avec succès une connexion tunnelée 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 pour qu'OpenVPN ne dirige que le trafic de mon pont (appareils sous 192.168.10.x) via le tunnel VPN et NON le trafic de l'ordinateur Ubuntu réel?

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

Je l' ai lu beaucoup de documents sur iptableset routemais il me fait très peu de sens. Malgré plusieurs didacticiels, je ne comprends toujours pas comment lire les résultats de la routecommande. Je soupçonne également que cela peut être accompli avec route-noexecet route-updans le fichier de configuration OpenVPN, mais rien n'a 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 s'il vous plaît allez-y doucement avec moi :)

Merci!

Éditer

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

jbrookover
la source

Réponses:

1

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

Dans le openvpn.confdossier

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

Dans le /path/to/external/script.shdossier

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, tun0est le tunnel créé par OpenVPN, br0est le pont entre mon réseau local sans fil et local, et 192.168.10.0/24est le pool de 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 bricolé à partir de quelques sites sur le partage de connexion Internet.

Je laisserai cette réponse non coché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.

jbrookover
la source
0

Plus facile à configurer le routeur lui-même pour se connecter au serveur VPN afin que tous les appareils de votre réseau le traversent. Vous pouvez le faire à partir de l'interface Web du logiciel du routeur.

Afin de permettre aux appareils connectés à votre PC d'accéder à Internet, vous devez effectuer le partage Internet de ce PC avec d'autres.

Islam
la source
Plus facile, oui. Mais je l'ai déjà fait et c'était trop lent.
jbrookover