So konfigurieren Sie einen OpenVPN Client Router

12

Ich versuche einen OpenVPN Router einzurichten, so dass ich mein Tablet (drahtlos) und Blu-Ray (kabelgebunden) 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) gemacht.

Ich bin neu in Linux, aber ich bin zu 90% mit diesem Projekt fertig. Die Hardware besteht aus 2 verdrahteten Ethernet-Ports, von denen einer mit einem herkömmlichen Heim-Router und einer Wireless-Karte verbunden ist.

Bisher habe ich ..

  1. Richten Sie mein WLAN ein, um mit hostapd
  2. als echter Master Access Point zu fungieren
  3. Ich habe eine Brücke (denke ich) zwischen dem drahtlosen und dem lokalen LAN erstellt
  4. Richten Sie einen DHCP-Server ein, der der Bridge erfolgreich Adressen zuweist - sowohl drahtlos als auch verdrahtet bekommen sie.
  5. Richten Sie OpenVPN so ein, dass es beim Booten erfolgreich eine getunnelte Verbindung erstellt.

Das aktuelle Verhalten routet den gesamten Datenverkehr von meinem Ubuntu-Rechner zum VPN-Server. 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 Datenverkehr von meiner Bridge (Geräte unter 192.168.10.x) durch den VPN-Tunnel und NICHT Datenverkehr vom eigentlichen Ubuntu-Computer leitet?

OpenVPN richtet einige Routen automatisch ein, aber es scheint die Bridge zu ignorieren, die ich eingerichtet habe.

Ich habe eine Menge Dokumentation über iptables und route gelesen, aber das macht für mich wenig Sinn. Trotz mehrerer Tutorials verstehe ich immer noch nicht, wie man die Ergebnisse vom route -Befehl liest. Ich vermute auch, dass dies mit route-noexec und route-up in der OpenVPN-Konfigurationsdatei erreicht werden kann, aber nichts war erfolgreich.

Mein Wissen darüber, wo Konfigurationsdateien und Einstellungen sind, ist begrenzt. Die oben genannten Aufgaben haben mich mindestens 30 Stunden zum Basteln gebracht, also bitte schont mich:)

Danke!

Bearbeiten

Ich habe unten eine Lösung gepostet, die den Bridge-Verkehr leitet, aber es verhindert nicht, dass der Verkehr auf dem Ubuntu-Computer durch das VPN geht.

    
jbrookover 19.12.2012, 13:25
quelle

2 Antworten

1

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

In der Datei openvpn.conf

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

In der Datei /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

Oben ist tun0 der von OpenVPN erstellte Tunnel, br0 ist die Brücke zwischen meinem lokalen WLAN und lokalem LAN und 192.168.10.0/24 ist der Subnetz / DHCP-Pool für mein lokales LAN.

Ich habe keine Ahnung, was das Skript macht, aber ich habe es zusammen von einigen Seiten auf der Internetverbindungsfreigabe zusammengebaut.

Ich lasse diese Antwort unkontrolliert, falls jemand ein besseres zur Verfügung stellen möchte, oder erkläre, wie verhindert werden kann, dass der Datenverkehr auf dem Ubuntu-Computer durch das VPN geht.

    
jbrookover 04.01.2013, 13:13
quelle
0

Es ist einfacher, den Router selbst so zu konfigurieren, dass er sich mit dem VPN-Server verbindet, sodass alle Geräte in Ihrem Netzwerk ihn durchlaufen. Sie können dies über die Software-Weboberfläche des Routers tun.

Damit die an Ihren PC angeschlossenen Geräte auf das Internet zugreifen können, müssen Sie die Internetfreigabe von diesem PC für andere freigeben.

    
Islam 27.12.2012 01:23
quelle