So konfigurieren Sie einen OpenVPN-Client-Router


13

Ich versuche, einen OpenVPN-Router einzurichten, damit ich mein Tablet (drahtlos) und Blu-Ray (verkabelt) mit einem kostenpflichtigen VPN-Dienst in einem anderen Land unter Ubuntu 12.10 verbinden kann. Ich habe dies erfolgreich mit DD-WRT (zu langsam) und einer virtuellen Instanz von PFSense (zu begrenzt) durchgeführt.

Ich bin neu in Linux, aber ich bin zu 90% mit diesem Projekt fertig. Bei der Hardware handelt es sich um zwei verkabelte Ethernet-Ports, von denen einer mit einem herkömmlichen Heimrouter verbunden ist, und eine WLAN-Karte.

Bisher habe ich ..

  1. Richten Sie mein WLAN mit hostapd als echten Master-Zugriffspunkt ein
  2. Erstellt eine Brücke (glaube ich) zwischen dem drahtlosen und lokalen LAN
  3. Richten Sie einen DHCP-Server ein, der der Bridge erfolgreich Adressen zuweist - sowohl drahtlose als auch kabelgebundene Adressen werden abgerufen.
  4. Richten Sie OpenVPN so ein, dass beim Booten erfolgreich eine getunnelte Verbindung hergestellt wird.

Das aktuelle Verhalten leitet den gesamten Datenverkehr von meinem Ubuntu-Computer an den VPN-Server weiter. Die anderen Geräte haben KEINE Konnektivität, und das ist das Problem.

Meine Frage / Ziel:

Wie konfiguriere ich das Routing so, dass OpenVPN nur den Datenverkehr von meiner Bridge (Geräte unter 192.168.10.x) durch den VPN-Tunnel und NICHT den Datenverkehr vom tatsächlichen Ubuntu-Computer leitet?

OpenVPN richtet einige Routen automatisch ein, scheint aber die von mir eingerichtete Bridge zu ignorieren.

Ich habe viel über Dokumentation gelesen iptablesund routees macht für mich sehr wenig Sinn. Trotz mehrerer Tutorials verstehe ich immer noch nicht, wie die Ergebnisse des routeBefehls gelesen werden . Ich vermute auch, dass dies mit route-noexecund route-upin der OpenVPN-Konfigurationsdatei erreicht werden kann, aber nichts war erfolgreich.

Mein Wissen darüber, wo sich Konfigurationsdateien und -einstellungen befinden, ist begrenzt. Die oben genannten Aufgaben haben mindestens 30 Stunden gedauert, also schont mich bitte :)

Vielen Dank!

Bearbeiten

Ich habe unten eine Lösung veröffentlicht, die den Bridge-Verkehr leitet, aber nicht verhindert, dass der Verkehr auf dem Ubuntu-Computer das VPN durchläuft.

Antworten:


1

Ich bin nicht sicher, ob das ideal ist, aber es funktioniert zumindest. In einer perfekten Welt würde der Datenverkehr auf dem Ubuntu-Computer nicht über das VPN geleitet - nur die Geräte, die mit dem Ubuntu-Computer verbunden sind. Wie auch immer, hier ist die Lösung ..

In der openvpn.confDatei

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

In der /path/to/external/script.shDatei

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

In obigem, tun0 ist der Tunnel, der von OpenVPN erstellt wurde, br0die Brücke zwischen meinem lokalen drahtlosen und lokalen LAN und 192.168.10.0/24der Subnetz- / DHCP-Pool für mein lokales LAN.

Ich habe keine Ahnung, was dieses Skript bewirkt, aber ich habe es von einigen Sites in der Internetverbindungsfreigabe zusammengeschustert.

Ich werde diese Antwort deaktiviert lassen, falls jemand eine bessere Antwort bereitstellen oder erläutern möchte, wie verhindert werden kann, dass der Datenverkehr auf dem Ubuntu-Computer über das VPN geleitet wird.


0

Es ist einfacher, den Router selbst so zu konfigurieren, dass eine Verbindung zum VPN-Server hergestellt wird, damit alle Geräte in Ihrem Netzwerk diese Verbindung herstellen können. Sie können dies über die Weboberfläche der Router-Software tun.

Damit an Ihren PC angeschlossene Geräte auf das Internet zugreifen können, müssen Sie die Internetfreigabe von diesem PC an andere durchführen.


Einfacher, ja. Aber das habe ich schon gemacht und es war zu langsam.
Jbrookover
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.