• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

VPN routen

jumanji

Member
Hi,

ich bin in VPN noch etwas unerfahren, werde es aber hinkriegen. Nur habe ich dazu eine Frage, kann ich VPN routen?

Reicht es, wenn ich am Router die Ports 500 und 50 route? Oder ist es besser, wenn ich die Anmeldung am Hardwarerouter via VPN (50 Tunnel hat der) mache und das dann am Linuxrouter forwarde?
Ich weiß dann nur nicht, welche Einträge ich zum Routen für VPN machen müsste, wenn das überhaupt geht?

So solls aussehen:

WAN <----> Linksys RV 082 im 10er Netz (integrierte Firewall) <-----> Linux-Router im 192.168er Netz (den muss ich noch fertig machen mit Firewall,VPN und Routing) <-----> LAN.

Danke im Voraus.

Gruß,

jumanji
 

gaw

Hacker
Es scheint mir einiges an Begrifflichkeiten durcheinanderzulaufen, geroutet werden Pakete grundsätzlich nach IP-Adressen und nicht nach Portnummern. Außerdem verstehe ich nichz ganz was du mit dem Routen von VPN meinst. Die verschlüsselten Pakete lassen sich sowieso routen, sonst kämen diese nie an ihr Ziel an.

Die IP-Pakete die aus einem Tunnel herauskommen lassen sich ebenfalls selbstverständlich routen, vorausgesetzt das OS und/oder die Software mit der man arbeitet unterstützt das und man besitzt die Kontrolle über den Rechner. Mit einem selbstaufgesetzten VPN-Server unter Linux ist das sicherlich kein Problem.

Das wie ist im Einzelnen unterschiedlich und hängt davon ab, was für ein VPN man betreibt, es gibt da unterschiedliche Protokolle, Schichten und Anwendungen (pptp, l2ptp, ip-sec, udp, freeswan, openvpn etc.)

Bei mir läuft ein Netz, in der die Absicherung des wlan über vpn mit openvpn realisiert (udp über tun) wird. Ein Rechner dient als VPN-Server an dem ein LinksysWRT54GS sitzt, ein WLAN.Router der aber als Accesspoint eingesetzt wird. Auf dem VPN-Server starten beim Booten automatische mehrere Openvpn-Tunnel um Clientverbindungen entgegen zu nehmen. W-Lan-Clients (xp pro, w2kpro und ein Linux) bauen nach dem Kontakt zum accesspoint über openvpn eine verschlüsselte Verbindung zum VPN-Server auf. Die ankommenden Pakete werden weiter zu einem zweiten Linuxrechner geroutet der als Router/Firewall an einem DSL-Modem hängt. Dazu müssen die Standardrouten gesetzt sein. Dass bedeutet beim WLAN-Client zeigt die Defaultroute auf den VPN-Server und beim VPN-Server zeigt die Defaultroute auf den Router.
Die Firewall auf dem WLAN-Router muss, wenn sie überhaupt eingeschaltet wird die entsprechenden Ports durchlassen, bei openvpn läuft der Verkehr pro Tunnel (pro Client) über den gleichen Ziel und Quellport, standardmässig 5000, 5001 usw. das muss aber eingerichtet werden.


wlanclient.....)))...linksys----VPN-Server----Router----DSL-Modem
|_________vpn.tunnel___________|

wlanclient:
physikalische Adresse der WLAN-Schnittstelle: (verändert) 192.168.5.y
Rechneradresse und virtuelle Schnittstelle:
10.0.0.x/
x=2,6,10 usw
linksys-WRT54GS:
Adresse (verändert) 192.168.5.1

VPN-Server: (Adressen verändert)
eth1: 192.168.5.2
eth0: 192.168.128.1

tun0: 10.0.0.1
tun1: 10.0.0.5
tun2: 10.0.0.9 usw.

Router: (Adressen verändert)
eth0: 192.168.128.253
eth1: 0.0.0.0 dyn.IP vom ISP per ppp0

Auf dem VPN-Server werden die Routingbefehle so gesetzt dass die Pakete vom DSL-Router zurückfinden also so:

10.0.0.0 255.255.255.252 tun0
10.0.0.4 255.255.255.252 tun1
10.0.0.8 255.255.255.252 tun2

usw.

Mit Openvpn werden diese Routen aber gewöhnlich nicht über route oder ip Befehle eingerichtet sondern über entsprechende Optionen in den Konfigurationsfiles der einzelnen Tunnel.

Hoffe ich konnte dir helfen.

mfG
gaw
 
OP
jumanji

jumanji

Member
Hi,

erst einmal vielen Dank für die Antwort.

gaw schrieb:
Es scheint mir einiges an Begrifflichkeiten durcheinanderzulaufen, geroutet werden Pakete grundsätzlich nach IP-Adressen und nicht nach Portnummern.

Ok und muss zugeben, dass ich in Bezug auf VPN und Firewall nicht viel Ahnung habe. :oops: Mit Anleitung habe ich es aber soweit hinbekommen, das Routing anderer Pakete mit Firewall klappt auch ohne Probs.

Der Router hat 10.90.x.x wird gereicht an eth0 10.90.x.x (Linux-Firewall) dann über eth1 192.168.x.x ins LAN.

gaw schrieb:
Die IP-Pakete die aus einem Tunnel herauskommen lassen sich ebenfalls selbstverständlich routen, vorausgesetzt das OS und/oder die Software mit der man arbeitet unterstützt das und man besitzt die Kontrolle über den Rechner.


Also, wenn ich das so richtig verstanden habe, dann meldet man sich am VPN-Router an und durch das oben beschriebene Routing klappt das so. mit VPN :?:

Wenn ich mir Deine Konfiguration anschaue, dann kann ich das so halbwegs nachvollziehen.

Angenommen meldet sich an den Linksys via VPN an, im Linksys wird die Route gesetzt auf 10.90.x.x dann reicht es ja aus, wenn ich auf der Linuxkiste das von 10.90.x.x auf 192.168.x.x route. Richtig so?


Danke im Voraus.

Gruß,
jumanji
 

gaw

Hacker
Mir scheint du solltest auch die Grundlagen des statischen Routens noch einmal anschauen. Ein gutes Standardwerk ist das TCP/IP Buch von Craig aus dem O'Reilly-Verlag.

Deshalb hast du vermutlich auch Schwierigkeiten VPN-Tunnel Techniken zu begreifen, du meldest auf dem Linksys keinen VPN-Tunnel an.

Kurzer Erklärungsversuch
IP-Pakete dienen zum Transport höherer Protokolle und sind auf der 3.OSI-Schicht angeordnet. Ziel und Quelle des Verkehrs sind IP-Nummern so ähnlich wie Absender und Zieladresse auf (Weihnachts)Paketen der Post sind sie im Header eines IP-Datagrams festgelegt. Bestimmte Quelladressen gelten aber im Internet als ungültig und entsprechende Pakete werden nicht weitergeleitet. Das sind private Adressen aus den Bereichen 10.x.x.x, 172.16.0.0 -172.31.255.255 und 192.168.x.x , eine Sonderstellung nehmen Adressen aus dem Bereich 169.254.0.0 - 169.254.255.255 ein, die in der Regel aber ebenfalls nicht geroutet werden). Mit Hilfe eines VPN-Tunnels lassen sich Netze mit privaten Nummern an verschiedenen Standorten zusammenbringen. Am Tunnelanfang (auf dem Client) werden die IP-Pakete (mit der Adresse 10.0.0.y in meinem Beispiel) komplett in UDP-Pakete verpackt. Diese UDP-Pakete werden ganz normal in neue IP-Pakete gepackt und losgeschickt. Die Zieladresse im IP-Header der IP-Pakete lautet in meinem Beispiel dann 192.168.5.2 und werden mit 192.168.5.0 als resultierende Netzadresse durch die statische Routen über die WLAN-Schnittstelle nach draussen zum Linksys geschickt. Der Linksys sieht also keine VPN-Verbindungen sondern lediglich gewöhnliche IP-Pakete die im UDP-Teil eine Zielportnummer 5000, 5001 usw. tragen und schickt sie weiter an den VPN-Server. Dort werden die Pakete zum tun-Treiber geschickt. Der packt die Pakete wieder aus entfernt also den äußeren IP-Header und den UDP-Header und schickt die ursprünglichen Pakete mit der 10.0.0.y Quelladresse weiter auf die Reise. Ein Rechner der hinter dem VPN-Server steht sieht also nur IP-Pakete mit einer 10.0.0.y Quelladresse und weiß nichts davon dass dieses Paket eingepackt, verschlüsselt, neu eingepackt versendet und wieder entpackt worden ist.

Der Linksys muss nur dafür sorgen das hereinkommende IP-Pakete die ein UDP-Datagramm mit der entsprechenden Zielportnummer an die Zieladresse weitergeleitet werden. Dass diese Pakete andere Pakete mit sich schleppen sieht er nicht und das interessiert ihn auch nicht.

Ebenso lassen sich IP-Pakete aber in Pakete anderer OSI-Schichten einpacken z.B ipsec (OSI-Layer 3) . l2tp, pttp. (OSI-Schicht 2), cipe (ähnlich wie openvpn über UDP, also layer 4) oder ssh (OSI-Layer >4) . Dass die ankommenden Pakete erst wieder auf dem VPN-Server entpackt werden ist das Grundprinzip in allen VPN-Tunneltechnologien.

Das Routing auf dem VPN-Server muss also lediglich dafür sorgen, dass 1) die rücklaufenden Pakete an die richtige virtuelle Schnittstelle gesandt werden und 2) ankommende Pakete aus dem VPN-Tunnel an die richtige Adresse im LAN gesendet werden. Da der VPN-Server aber verschiedene Schnittstellen besitzt dürfen die 10.0.0.y VPN-Clients nicht im selben Subnetz liegen wie das dahinterliegende LAN. Das LAN muss also in einem anderen Subnetz oder, wie in meinem Beispiel in einem anderen Netz ( 192.168.128.0/24) liegen.

Hoffentlich konnte ich dir helfen.


mfG
gaw
 
OP
jumanji

jumanji

Member
Hi Gaw,

das Buch werde ich mit mal holen. Jedoch habe ich das nun verstanden, weil Du es sehr ausführlich erklärt hast. Ich denke, ich werde das jetzt hin bekommen. Vielen Dank nochmals!!!

Gruß,

jumanji
 
Oben