OpenVPN: Masq und zwei default-Gateways?

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

OpenVPN: Masq und zwei default-Gateways?

Beitrag von Cae » 31.12.2011 02:33:16

Hallo zusammen,

ich stelle gerade folgenden Setup zusammen: Ein LAN erhält die Verbindung normalerweise über ein Masqerade-NAT am Gateway. Nun soll über ein potenziell unsicheres Netz eine Backupleitung aufgestellt werden, sie soll über OpenVPN zu einem externen Server getunnelt werden. Da es sich um eine Fallstudie handelt, ist die OpenVPN-Konfiguration ohne perfect forward security, also mit statischen Schlüsseln und sehr simpel ausgelegt.

OpenVPN-Konfiguration: $extern - externe IP des Servers, $tlokal - Tunnel-IP lokal, $textern - Tunnel-IP des Gateways.

Code: Alles auswählen

# Client
remote $extern
dev tun
ifconfig $tlokal $textern
secret static.key
# Server
dev tun
ifconfig $textern $tlokal
secret static.key
Die Firewall des Servers orientiert sich weitgehend am Beispielskript in /usr/share/doc/openvpn/examples/sample-config-files/, entscheidend dürfte

Code: Alles auswählen

iptables -t nat -A POSTROUTING -s $PRIVATE -o eth0 -j MASQUERADE
sein.

Die Gateway-Firewall spannt im Normalfall das Masq-NAT auf:

Code: Alles auswählen

iptables -t nat -A POSTROUTING -s $private -d 0/0 -o eth0 -j MASQUERADE
. $private ist Netz und Subnetzmaske in CIDR-Schreibweise. Der Gateway routet korrekt (/proc/sys/net/ipv4/ip_forward).
Beim VPN kommt dieselbe Zeile zum Einsatz, allerdings mit tun0 anstatt eth0, da alles aus dem Client-Netz über das VPN geleitet werden soll.
Die Backupleitung steht in Form des Modems ppp0 zur Verfügung. Auch hier ändert sich nicht viel am Einzeiler, ppp0 anstatt eth0.

Bis hier hin verhält sich die Sache nachvollziehbar und wie geplant. Die drei Zweige funktionieren für sich, VPN über eth0 geht auch (warum?). Wo ich nun Schwierigkeiten habe, ist das korrekte Setzen der Standardgateways. Meine Überlegung ist folgende: Das VPN muss physikalisch über ppp0, also muss auch ein Standardgateway dort hin gesetzt sein. Andererseits zeigt beim VPN-Setup über eth0 der Standardgateway auf tun0 bzw. den Tunnelpartner $textern - und der nomaler Standardgateway über eth0 zum WAN-Router müsste auch noch da sein.
Beim VPN-ppp0-Setup müssten also beide Gateways gesetzt werden, mit der Wirkung, dass niemand mehr funken kann und ein tcpdump -i tun0 nichts zutage fördert. Wenn nur der nach ppp0 steht, darf der Gateway, bei nur tun0 keiner.

Woran klemmt es?

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Benutzeravatar
unitra
Beiträge: 646
Registriert: 15.06.2002 21:09:38
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.128.129.130

Re: OpenVPN: Masq und zwei default-Gateways?

Beitrag von unitra » 02.02.2012 11:42:45

Du kannst nur EINE default route haben. Die Default Route ist für alle Netze für die KEIN spezifischer Routing Eintrag gesetzt ist.
D.h wenn die Default Route auf das tunnel0 Interface zeigt, werden ALLE IP Packete dahin geroutet, auch der Traffic der richtung WAN (Internet) gehen sollte. Wenn die Default Route auf dass ppp0 Interface gesetzt ist, werden ALLE Packete, auch die die Richtung tun0 Interface (VPN) geroutet werden sollten.

Dein VPN ist ein bestimmtes Netz (z.B. 192.168.100.0/24), dein LAN ist (z.b. 192.168.200.0/24) und alles andere soll zum default Gateway also (z.B. 192.168.200.1/24).
Longest prefix match, die Routing Tabelle wird immer vom kleinsten zum größten Netz abgearbeitet.
http://en.wikipedia.org/wiki/Longest_prefix_match

d.h.
192.168.100.0/24 müsste auf tun0 geroutet werden oder die IP 192.168.100.1
Alles andere geht zum default gateway

Pseudocode

Code: Alles auswählen

192.168.200.0/24 routen zu tun0
0.0.0.0/0 zum defaut gateway

Cae
Beiträge: 6349
Registriert: 17.07.2011 23:36:39
Wohnort: 2130706433

Re: OpenVPN: Masq und zwei default-Gateways?

Beitrag von Cae » 02.02.2012 12:24:41

unitra hat geschrieben:Du kannst nur EINE default route haben.
Das war mir latent bewusst, aber…
unitra hat geschrieben:Die Default Route ist für alle Netze für die KEIN spezifischer Routing Eintrag gesetzt ist.
das hab' ich als Tatsache ignoriert.

Also schiebt iptables das Subnetz in's tun0, welches wiederum eine Route zum ppp0 braucht, das ist dann die default route, die auf den Partner in ppp0 zeigt. Demnach ist die nicht gelöschte default route auf eth0 daran schuld - ich versuche es heute abend.

Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.

—Bruce Schneier

Antworten