Verständnis/Problem mit openVPN

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
The_darkness
Beiträge: 350
Registriert: 12.03.2005 13:12:44

Verständnis/Problem mit openVPN

Beitrag von The_darkness » 01.10.2008 18:33:21

Hallo Zusammen!
Ich habe mich mal etwas mit OpenVPN befasst. Die Grundlegenden Sachen habe ich wohl verstanden. Ich schaffe es, dass zwei Rechner einen Tunnel aufbauen.
Mein Problem ist jetzt das Routing.
Folgende Ausgangslage

server 192.168.0.100 (10.10.0.1 VPN)
client 192.168.0.110 (10.10.0.6 VPN)
WLAN-router 192.168.0.1

meine server.conf
http://nopaste.debianforum.de/12006

meine client.conf
http://nopaste.debianforum.de/12007

Mein Server-Routing

Code: Alles auswählen

Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
10.10.0.2       *               255.255.255.255 UH    0      0        0 tun0
10.10.0.0       10.10.0.1       255.255.255.0   UG    0      0        0 tun0
localnet        *               255.255.255.0   U     0      0        0 eth0
default         192.168.0.1     0.0.0.0         UG    0      0        0 eth0

Mein Client-Routing

Code: Alles auswählen

Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
10.10.0.1       10.10.0.5       255.255.255.255 UGH   0      0        0 tun0
10.10.0.5       *               255.255.255.255 UH    0      0        0 tun0
localnet        *               255.255.255.0   U     0      0        0 wlan0
link-local      *               255.255.0.0     U     1000   0        0 wlan0
default         192.168.0.1     0.0.0.0         UG    0      0        0 wlan0

Ich kann vom Client den server anpingen und umgekehrt (mit der 10.10.0.1 bzw.10.10.0.6) somit besteht ja nun der Tunnel. Auch die 192.168.0.* sind alle erreichbar. Wenn ich das aber richtig sehe, läuft alles noch über mein WLAN-Router und nicht über den Tunnel, oder?

Wie kann ich jetzt den client über den Tunnel routen?

Ein
route add default gw 10.10.0.1 tun0
auf dem client bringt nur
SIOCADDRT: Kein passender Prozess gefunden
als fehler

Gruß

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Re: Verständnis/Problem mit openVPN

Beitrag von DynaBlaster » 01.10.2008 21:39:39

Selbst wenn du das Default-GW auf dem Client von 192.168.0.1 auf 10.10.0.1 umbiegst, bringt dir das IMHO trotzdem nicht den erwünschten Erfolg. Denn:

Code: Alles auswählen

localnet        *               255.255.255.0   U     0      0        0 wlan0
bleibt ja auf jeden Fall stehen. Und da der Kernel die Routing-Tabelle von oben nach unten abklappert, wird er die Pakete für das Netz 192.168.0.0/24 auch weiterhin über das Interface wlan0 rausschicken - Default-GW hin oder her. Und wenn du diesen Eintrag löschst, dann bricht der VPN-Tunnel mangels Verbindung zu 192.168.0.100 zusammen.

The_darkness
Beiträge: 350
Registriert: 12.03.2005 13:12:44

Re: Verständnis/Problem mit openVPN

Beitrag von The_darkness » 01.10.2008 22:06:47

Wo liegt denn dann mein Fehler? Ich müsste doch trozdem ein VPN einrichten können, oder

slu
Beiträge: 2240
Registriert: 23.02.2005 23:58:47

Re: Verständnis/Problem mit openVPN

Beitrag von slu » 01.10.2008 22:18:16

Der Fehler liegt meines erachtens daran das Server und Client im gleichen Subnetz liegen.
Gruß
slu

Das Server Reinheitsgebot:
Debian Bookworm, sonst nichts.

Stolzer Gewinner der Jessie Release Wette:
https://wiki.debianforum.de/Jessie_Release_Wette#SIEGER

The_darkness
Beiträge: 350
Registriert: 12.03.2005 13:12:44

Re: Verständnis/Problem mit openVPN

Beitrag von The_darkness » 01.10.2008 22:26:04

Gut, ich kann ja den Client in ein anderes Subnetz legen. Aber ich muss ja eine Verbindung zum Server/Router haben um den VPN-Tunnel aufzubauen. Ziel soll sein, dass ich mich mit dem Client (laptop) später per UMTS einen Tunnel zum Client aufbauen und dann über den Server ins internet kann.Ich dachte das geht auch, wenn ich vorher mit WLAN den Client einrichte.

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Re: Verständnis/Problem mit openVPN

Beitrag von DynaBlaster » 02.10.2008 08:06:34

Hm, also wenn ich das richtig verstanden habe, willst du mit deinem Laptop (Client) eine UMTS-Verbindung mit dem Server aufbauen. Diese Verbindung soll mittels OpenVPN verschlüsselt werden und anschließend den Internet-Anschluß nutzen können, der durch den WLAN-Router bereitgestellt wird.

Eine UMTS-Verbindung verhält sich meines Wissens nach ähnlich wie eine normale ppp-Verbindung (sprich Einwahl per modem oder ISDN). Wenn also die Endpunkte dieser UMTS-Verbindung in einem anderen Netz als 192.168.0.0/24 liegen, ist dein Problem imho eh hinfällig. Kann aber durchaus sein, dass ich dein Anliegen nicht richtig verstanden habe.

The_darkness
Beiträge: 350
Registriert: 12.03.2005 13:12:44

Re: Verständnis/Problem mit openVPN

Beitrag von The_darkness » 02.10.2008 08:55:32

Ja, genau so habe ich mir das gedacht gehabt. Dann werde ich dass mal mit den UMTS versuchen.

Der weg ist ja dann:

Client --> UMTS-anderer Provider --> über mein WLAN-Router --> Server --> Internet

The_darkness
Beiträge: 350
Registriert: 12.03.2005 13:12:44

Re: Verständnis/Problem mit openVPN

Beitrag von The_darkness » 03.10.2008 15:00:58

So, jetzt habe ich das ganz mal mit UMTS getestet.

hier die route

Code: Alles auswählen

Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
10.64.64.64     *               255.255.255.255 UH    0      0        0 ppp0
10.10.0.0       *               255.255.255.0   U     0      0        0 tap0
default         *               0.0.0.0         U     0      0        0 ppp0
Aber über den Tunnel läuft der Verkehr jetzt noch nicht, oder?

The_darkness
Beiträge: 350
Registriert: 12.03.2005 13:12:44

Re: Verständnis/Problem mit openVPN

Beitrag von The_darkness » 06.10.2008 19:59:13

Hey,

jetzt habe ich mich nochmal etwas mit openvpn beschäftigt.

Ich habe mein Server/Client soweit, dass Sie sich über OpenVPN verbinden. Der Server (192.168.0.100 Openvpn 10.10.0.1) ist durch den client auch auf beiden Adressen erreichbar.

Der Client selbst wählt sich per UMTS ins I-Net und bekommt die 10.10.0.6 vom Server.

Soweit ja ok.

Allerdings ist mein Router im Netz (192.168.0.1) über OpenVPN nicht erreichbar. Und ich finde nicht so recht den Fehler. Wenn ich es richtig verstanden habe, brauche ich ja ein Routing von IPTables welches die Pakete vom 10.10.0.0 in das 192.168.0.0 leitet. Aber da der Server selbst erreichbar ist, dachte ich es besteht.

IPTables sieht so aus:

Code: Alles auswählen

Chain INPUT (policy ACCEPT 25491 packets, 31M bytes)
 pkts bytes target     prot opt in     out     source               destination
   23  2879 LOG        all  --  any    any     10.10.0.0/24         anywhere            LOG level warning

Chain FORWARD (policy ACCEPT 29 packets, 2220 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     tcp  --  eth0   tun0    10.10.0.0/24         anywhere
    0     0 ACCEPT     udp  --  eth0   tun0    10.10.0.0/24         anywhere

Chain OUTPUT (policy ACCEPT 15798 packets, 1423K bytes)
 pkts bytes target     prot opt in     out     source               destination
   21  3076 LOG        all  --  any    any     anywhere             10.10.0.0/24        LOG level warning
Fehlt mir jetzt noch was?

Soul_D
Beiträge: 82
Registriert: 17.08.2007 16:35:26
Lizenz eigener Beiträge: GNU General Public License
Kontaktdaten:

Re: Verständnis/Problem mit openVPN

Beitrag von Soul_D » 07.10.2008 10:59:45

Hi The_Darkness,

ich denke nicht dass es so funktioniert!
Chain FORWARD (policy ACCEPT 29 packets, 2220 bytes)
pkts bytes target prot opt in out source destination
0 0 ACCEPT tcp -- eth0 tun0 10.10.0.0/24 anywhere
0 0 ACCEPT udp -- eth0 tun0 10.10.0.0/24 anywhere
Du hast hier ein Forward eingerichtet, was ich nicht ganz verstehe.
|| (internet) eth0 -> server -> tun0 (vpn-tunnel) tap0 -> client || (hier kannst du die source doch auch weglassen du bekommst doch von eth0 eh nie eine source-IP von einem 10er Netz, da dein VPN ja über den tun0-Adapter reinkommt und rausgeht)
WICHTIG!!! Du hast den Rückweg vergessen.

Richtig wäre doch:

Code: Alles auswählen

iptables -A FORWARD -i tun0 -o eth0 -j ACCEPT
iptables -A FORWARD -o tun0 -i eth0 -j ACCEPT
Jetz könntest du theoretisch zwar zu deinem DSL-Router pingen, aber er und dein VPN-Client kenn ja die Route nicht zueinander.
Darum würde ich noch ein Masquerading machen, somit kannst du dir den Routeneintrag am Router sparen.

Code: Alles auswählen

iptables -t nat -A POSTROUTING -s 10.10.0.0/24 -o eth0 -j MASQUERADE
Und in der server.conf noch die Zeile push "route..." aktivieren.
Dann sollte es eigentlich funktion.

Bitte anschließend berichten;-)


Best Regards,

Soul_D!"@§$%

The_darkness
Beiträge: 350
Registriert: 12.03.2005 13:12:44

Re: Verständnis/Problem mit openVPN

Beitrag von The_darkness » 07.10.2008 17:31:52

Hey,

ich habe deine Änderungen jetzt mal berücksichtigt.
Mein Route sieht jetzt so aus:
Chain INPUT (policy ACCEPT 543 packets, 179K bytes)
pkts bytes target prot opt in out source destination

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3 252 ACCEPT all -- tun0 eth0 anywhere anywhere
3 252 ACCEPT all -- eth0 tun0 anywhere anywhere

Chain OUTPUT (policy ACCEPT 578 packets, 69006 bytes)
pkts bytes target prot opt in out source destination
Zumindest weiß ich jetzt, dass zu OpenVPN auch Verständnis von IPTables gehört :)

Ein ping von Client auf Server und Router ist möglich. Aber der Rückweg funktioniert nicht. Der Router bietet die Möglichkeit auch einen Ping durchzuführen. Aber Client (10.10.0.6) und Server (10.10.0.1) sind nicht erreichbar.
Wobei ich nicht weiß, wie gut die intern Ping-Funktion ist. Der Router ist ein DLink DI-624.
Aber eigentlich brauch der Router ja auch kein Zugriff. Oder sehe ich das jetzt falsch?

Ich werde es jetzt aber mal alles testen.

Edit:

Also mit einem WinXP-Client läuft alles. Nach dem setzten des GW und des DNS kann ich über den Tunnel surfen. Jetzt müsste ich nur noch das ganze unter Linux hinbekommen.

Meine Route auf dem Laptop
Ziel Router Genmask Flags Metric Ref Use Iface
10.10.0.1 10.10.0.5 255.255.255.255 UGH 0 0 0 tun0
10.64.64.64 * 255.255.255.255 UH 0 0 0 ppp0
10.10.0.5 * 255.255.255.255 UH 0 0 0 tun0
localnet 10.10.0.5 255.255.255.0 UG 0 0 0 tun0
default * 0.0.0.0 U 0 0 0 ppp0
Und muss ich den DNS für Linux immer per Hand ändern?

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Re: Verständnis/Problem mit openVPN

Beitrag von DynaBlaster » 07.10.2008 20:56:05

Code: Alles auswählen

Ziel Router Genmask Flags Metric Ref Use Iface
10.10.0.1 10.10.0.5 255.255.255.255 UGH 0 0 0 tun0
10.64.64.64 * 255.255.255.255 UH 0 0 0 ppp0
10.10.0.5 * 255.255.255.255 UH 0 0 0 tun0
localnet 10.10.0.5 255.255.255.0 UG 0 0 0 tun0
default * 0.0.0.0 U 0 0 0 ppp0
Die Default-Route (unterste Zeile!) geht noch über ppp0, deshalb werden Pakete für das Internet nicht über tun0 und damit eben auch nicht über den VPN-Tunnel versendet. Irgendwie musst du also diese Default-Route löschen und eine neue über tun0 anlegen. Bei einer ppp-Verbindung kann man das Anlegen der Default-Route irgendwo unter /etc/ppp/ verhindern (nodefaultroute anstatt defualtroute in einer der *.config-Dateien glaube ich). Nützt aber auch nix, solange du keine Möglichkeit findest, nach der erfolgreichem Azfbau des VPN-Tunnels die Default-Route über tun0 anzulegen.

Aus dem Kopf weiss ich nicht, ob man das über das push-Kommando in der server.cfg von OpenVPN regeln kann. Ich meine mich zu erinnern, dass das push-Kommando nur von Windows-Clients interpretiert wird. Wenn nicht, bleibt immer noch die Möglichkeit, eigene Scripte nach dem Tunnelaufbau automatisch zu starten und darüber dann die Default-Route zu erzwingen. Gleiches gilt für das Aktualisieren der DNS-Server ...

The_darkness
Beiträge: 350
Registriert: 12.03.2005 13:12:44

Re: Verständnis/Problem mit openVPN

Beitrag von The_darkness » 07.10.2008 22:22:25

Ja ok. Ich hatte die default auch schonmal gelöscht. Nur beim anlegen der neuen default-route bekomme ich Fehlermeldungen. Muss ich morgen nochmal versuchen und die Meldung hier dann schreiben. Aber zumindest ein Schritt ist ja schonmal geschafft. Dafür an alles herzlichen dank!

The_darkness
Beiträge: 350
Registriert: 12.03.2005 13:12:44

Re: Verständnis/Problem mit openVPN

Beitrag von The_darkness » 11.10.2008 13:40:52

Jetzt habe ich noch etwas mit dem Routing herumprobiert. Aber ich bekomme den Linux-Client nicht über das VPN.

Meine Route nach dem Aufbau eines Tunnels:
Ziel Router Genmask Flags Metric Ref Use Iface
10.10.0.1 10.10.0.5 255.255.255.255 UGH 0 0 0 tun0
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.10.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.0.0 10.10.0.5 255.255.255.0 UG 0 0 0 tun0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
Dann versuche ich mit
route add default tun0
und
route del default ppp0
Das Routing über den Tunnel zu bekommen.

Meine Tabelle sieht danach so aus:
10.10.0.1 10.10.0.5 255.255.255.255 UGH 0 0 0 tun0
10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.10.0.5 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
192.168.0.0 10.10.0.5 255.255.255.0 UG 0 0 0 tun0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 tun0
So funktioniert es leider nicht :(

Benutzeravatar
chroiss
Beiträge: 332
Registriert: 29.10.2004 09:29:43
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: BREMEN (in Wellington,NZ a.D) (in OLDENBURG a.D.) (in BREMEN a.D.) (in COLOGNE a.D.)

Re: Verständnis/Problem mit openVPN

Beitrag von chroiss » 11.10.2008 23:09:53

ich hab mir zwar nicht alles durchgelesen (zorry bin irgendwie muede :roll: ), aber die default route kann man (auch unter linux ) prima in der client.conf definieren, ohne noetige push befehle in der server.conf. ebenso routing eintraege !!

das bsp. fuer die client.conf , um ihn ein neues standardgateway zu geben waere

Code: Alles auswählen

route-gateway 10.10.0.1
redirect-gateway
fertig.
auf dem server muessten dann wohl noch iptables eintraege folgen um dem ankommenden cleint das surfen zu erlauben - ala masquerade...

gruss chroiss
"The only secure computer is one that's unplugged, locked in a safe, and buried 20 feet under the ground in a secret location... and I'm not even too sure about that one"--Dennis Huges, FBI.

The_darkness
Beiträge: 350
Registriert: 12.03.2005 13:12:44

Re: Verständnis/Problem mit openVPN

Beitrag von The_darkness » 12.10.2008 13:13:12

Der Server läuft so weit. Wie gesagt, mit einem Win-Client funktioniert auch alles.

Ich habe es jetzt mal mit
route-gateway 10.10.0.1
redirect-gateway
in der clienten.conf getestet. Dabei kommt folgendes raus:
un Oct 12 13:09:04 2008 TUN/TAP device tun0 opened
Sun Oct 12 13:09:04 2008 TUN/TAP TX queue length set to 100
Sun Oct 12 13:09:04 2008 /sbin/ifconfig tun0 10.10.0.6 pointopoint 10.10.0.5 mtu 1492
Sun Oct 12 13:09:04 2008 NOTE: unable to redirect default gateway -- Cannot read current default gateway from system
Sun Oct 12 13:09:04 2008 /sbin/route add -net 192.168.0.0 netmask 255.255.255.0 gw 10.10.0.1
Sun Oct 12 13:09:04 2008 OpenVPN ROUTE: omitted no-op route: 10.10.0.1/255.255.255.255 -> 10.10.0.1
Sun Oct 12 13:09:04 2008 Initialization Sequence Completed

The_darkness
Beiträge: 350
Registriert: 12.03.2005 13:12:44

Re: Verständnis/Problem mit openVPN

Beitrag von The_darkness » 13.10.2008 22:15:41

hmm, ich habe es jetzt geschafft, dass es unter Lenny als Client läuft. Allerdings wohl ein bisschen umständlich:

Ich führe

Code: Alles auswählen

route add default gw 1.2.3.4 
auf dem client aus. Danach verbinde ich mich mit dem Server. In der Client-config habe ich folgende Einstellung:

Code: Alles auswählen

route "0.0.0.0 10.10.0.5"
redirect-gateway def1
Danach muss ich noch die resolve.conf anpassen auf 192.168.0.1 und es läuft.

Gibt es da einen einfacheren Weg?

Benutzeravatar
DynaBlaster
Beiträge: 958
Registriert: 25.03.2004 18:18:57
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: DF0://dynablaster.adf

Re: Verständnis/Problem mit openVPN

Beitrag von DynaBlaster » 13.10.2008 22:47:49

Schau dir mal das hier an:
--up cmd
Shell command to run after successful TUN/TAP device open (pre --user UID change). The up script is useful for specifying route commands which route IP traffic destined for private subnets which exist at the other end of the VPN connection into the tunnel.
Ich würde versuchen, mir ein kleines Shellscript zu Schreiben, dass die Roting-Einträge und die Anpassungen in /etc.resolv.conf erledigt und es dann über den up-Parameter in der client.conf einzubinden. Alternativ müsste dein Anliegen auch über "if-up" bzw. "if-down"-Scripte unter /etc/network/ zu realisieren sein.

Antworten