alix apu auswahl bewegung buecher c cfengine checklisten computernetz debian dvcs ebtables email epub fedora firewall fossilscm grep hardware i2c iproute iptables ipv6 kalender kpartx latex laufen lighttpd linux lua lur monotone mount openvpn openwrt paketfilter perl postfix pxelinux qubes-os rfc rpm rs232 schreiben script seriell shell software stehen sysadmin systemd troubleshoot ubuntu uci vcs virtualbox vpn wine xen

Transparentes VPN-Gateway

Manchmal komme ich in die Situation, dass ich ein VPN-Gateway nachträglich in ein bestehendes Netz einfügen will, um vertraulich mit Rechnern im internen Netz zu kommunizieren.

Bei SOHO-Netzwerken habe ich meist keine andere Wahl, als das VPN-Gateway hinter dem Internet-Router, das heißt direkt im internen Netz zu platzieren.

VPN-Gateway im internen Netz

Je nach Anwendungsfall kann das einige Probleme mit sich bringen. Will ich zum Beispiel ein ganzes Netzwerk über das VPN-Gateway im internen Netz zur Verfügung stellen, dann muss ich auf den Arbeitsstationen nun verschiedene Gateways einstellen oder auf dem Internet-Router das VPN-Gateway als Router für das Netz hinter dem VPN eintragen.

Will ich das Netz hinter dem VPN-Gateway anbinden, ohne die Konfiguration des ursprünglichen Netzes zu ändern, dann bietet es sich an, das VPN-Gateway zwischen den Internet-Router und die Rechner im internen Netz zu positionieren. Dann ist es genau an der richtigen Stelle, um die Datenpakete für das VPN vor dem Erreichen des Standard-Gateways abzufangen und über das VPN auszuleiten.

Dabei muss das VPN-Gateway sowohl als Bridge im Layer 2 des OSI-Modells für den normalen Datenverkehr als auch als Router im Layer 3 für den VPN-Datenverkehr arbeiten.

transparentes VPN-Gateway

Damit ein Paketfilter sowohl als Bridge als auch als Router arbeitet, muss ich die zu routenden Datagramme mit ebtables aus der Bridge (OSI Layer 2) fischen, um sie zu routen:

ebtables -t nat \
         -A PREROUTING \
         -p IPv4 \
         --logical-in br0 \
         --ip-dst $vpnnet \
         -j redirect \
         --redirect-target ACCEPT

Weil das Bridge-Interface nicht die MAC-Adresse des Internet-Router hat und die Datagramme für andere Netze nicht die MAC-Adresse der Bridge haben, würden diese Datagramme ohne obigen Befehl ignoriert und nur von der Bridge zum Internet-Router weitergeleitet werden. $vpnnet steht hiebei für das Netzwerk inklusive Subnetzmaske der Adressen, die über das VPN geleitet werden.

Damit kann ich alle Rechner des internen Netzwerks über das VPN erreichen, ohne den Internet-Router oder diese Rechner umzukonfigurieren. Gibt es Probleme mit dem VPN-Gateway, so kann dieses entfernt und der Internet-Router wieder direkt an das interne Netzwerk angeschlossen werden. Dann fehlt lediglich das VPN.

Es verbleibt nur ein kleines Problem: wenn ich den Internet-Router selbst vom VPN aus erreichen will, geht das nicht direkt, da dieser die Datagramme für das VPN-Netz nicht auf diesem Interface sendet. In diesem Fall muss ich mit der IP-Adresse des VPN-Gateways an den Router herangehen, also Masquerading auf dem VPN-Gateway für Datagramme zum Internet-Router einschalten.

Posted 2017-03-09 Tags:

Eine Ubuntu 16.04 Xen DomU aufsetzen
Posted 2017-01-22
Wo platziere ich mein VPN Gateway?
Posted 2016-12-29
Kalender 2017
Posted 2016-11-21
Checklisten mit Handbuch
Posted 2016-08-17
Parsen von KDP Transaction Reports
Posted 2016-07-18
Skip the BOM
Posted 2016-04-03
UCI-Konfiguration für C-Programme
Posted 2015-12-30
Kalender 2016
Posted 2015-12-23
OpenWrt in VirtualBox
Posted 2015-11-22