OpenVPN Mehrere Clients mit Zertifikaten verbinden.

fow0ryl

Neuer User
Mitglied seit
27 Nov 2004
Beiträge
160
Punkte für Reaktionen
0
Punkte
16
Hallo,

ich versuche gerade meine FreetzBox so einzurichten, das mehrere Clients Zertifikatsbasierten OpenVPN Tunnel aufbauen können.
Für einen Client funktioniert das auch schon mal.
Für weitere Clients verzweifle ich aber scheinbar an der GUI.

Zunächst einmal habe ich gemäß dieser Anleitung eine CA aufgebaut und die entsprechenden Schlüssel/Zertifikate generiert.
http://openvpn.net/index.php/open-source/documentation/howto.html#pki

Diese Daten habe ich dann per Cut&Paste in die entsprechenden Eingabemasken der freetz-openvpn-gui gefüllt.

Hier taucht auch schon die erste Verwirrung auf. In der GUI gibt es die Möglichkeit einen Static Key einzugeben. Hm, da ich weder TLS machen will, und die Verbindung ja gerade über Zertifikate und nicht über statische Schlüssel absichern möchte lasse ich den Eintrag weg...
Passt ja irgendwie auch nciht zum openvpn howto.

Besonders verwirrend wird es im Abschnitt "VPN IP-Adressen und Routing im VPN".
Hier blicke ich nicht mehr durch.

Lokale IP-Adresse: 192.168.128.200
Das müsste Adresse des lokalen Tunnel-Adapters sein. Kann ich frei wählen. Richtig?

Remote IP-Adresse:
Tja, Was kommt da rein? Für einen einzelnen Client habe ich mal 192.168.128.201 eingetragen.
Wenn mehrere Clients genutzt werden, müsste doch jeder Client eine eigene Adresse haben.
Oder wie sollt man die unterschiedlichen Clients sonst erkennen?

DHCP-Range für Clients:
Da habe ich erst mal nichts eingetragen. Was hat das DHCP überhaupt mit OpenVPN zu tun?
Jeder Client befindet sich ja irgendwo in seinen dortigen lokalen Netz und muss doch schon eine IP Adresse haben, damit er dort im Netz lauffähig ist!
Was soll das DHCP hier also?

Entferntes Netz:
Hier habe ich ebenfalls nichts eingetragen, da ich nicht weiß was hier hineinkommt. Jeder Client liegt doch in einem anderen 'Entfernten Netz'. Wieso kann man hier also nur einen Neztbereich eintragen?

Lokales Netz:
Endlich mal wieder was klares ...
Hier habe ich das lokale Netz "192.168.200.0 255.255.255.0" eingetragen. Loisch weil ja alle Clients auf das lokale Netz zugreifen sollen.

Auch das freetz Wiki http://freetz.org/wiki/packages/openvpn hält sich da leider gepflegt zurück.

Wäre für Aufklärung dankbar.


Gruß
Henning
 
Hi,

bei mehreren Clients stelle am besten erstmal den Wert für "Max. Clients:" auf "größer 1". Dann wird sich die GUI etwas verändern, und du gibst nicht mehr "lokale und remote IP", sondern "lokale IP und Netzwerkmaske" für das Tunnelnetz ein.

Der "DHCP" ist die Einstellung für "ifconfig-pool".
Für eine "feste" Zuordnung empfehle ich die "erweiterte Clientconfig", bei der du jedem Client eine IP vergeben kannst. Ist beim Client ein Netz, das durch das VPN erreicht werden soll (oder aus dem Geräte "durch" das VPN zugreifen wollen) dann ist diese Einstellung sogar "Pflicht", um die dafür nötigen "iroute"-Einträge zu erzeugen.
 
Hallo,

ich habe es nun endlich einen Schritt weiter gebracht...
Habe jetzt 2 Fritzboxen mit jeweils einem zertifikatsbasierten OpenVPN-Server am laufen.
Für jede Box habe ich eine eigene CA erstellt.
Man kann sich mit einem Openvpn Client unter Windows XP jeweils auch auf den einen oder den anderen Server verbinden, und die Maschinen hinter der Box erreichen. So weit alles prima.

Jetzt möchte ich mich noch mit einem OpenVPN Client, der auf einer der Boxen läuft auf die andere Box connecten und zwar so, das alle Rechner, die im gleichen Netz laufen wie die Box mit dem OpenVPN Client alle Rechner im remoten Netz erreichen können. Das gelingt mir aber nicht ...

Vor dem Start des Clients sieht die Routing Tabelle so aus:
Code:
root@fritz:/var/mod/root# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.180.1   *               255.255.255.255 UH    2      0        0 dsl
213.162.148.6   *               255.255.255.255 UH    2      0        0 dsl
192.168.180.2   *               255.255.255.255 UH    2      0        0 dsl
192.168.100.0   *               255.255.255.0   U     0      0        0 lan
172.16.100.0    *               255.255.255.0   U     0      0        0 tun0
169.254.0.0     *               255.255.0.0     U     0      0        0 lan
default         *               0.0.0.0         U     2      0        0 dsl

Mit Start des Clients wird die Verbindung offensichtlich hergestellt. Sowohl die remote Box, als auch ein Rechner aus dem remoten Netz ist direkt von der Box aus erreichbar.

Code:
root@fritz:/var/mod/root# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.180.1   *               255.255.255.255 UH    2      0        0 dsl
213.162.148.6   *               255.255.255.255 UH    2      0        0 dsl
192.168.180.2   *               255.255.255.255 UH    2      0        0 dsl
192.168.100.0   *               255.255.255.0   U     0      0        0 lan
172.16.100.0    *               255.255.255.0   U     0      0        0 tun0
192.168.128.0   *               255.255.255.0   U     0      0        0 tun1
192.168.10.0    192.168.128.206 255.255.255.0   UG    0      0        0 tun1
169.254.0.0     *               255.255.0.0     U     0      0        0 lan
default         *               0.0.0.0         U     2      0        0 dsl
root@fritz:/var/mod/root# ping -c1 192.168.10.1
PING 192.168.10.1 (192.168.10.1): 56 data bytes
64 bytes from 192.168.10.1: seq=0 ttl=64 time=97.970 ms

--- 192.168.10.1 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 97.970/97.970/97.970 ms
root@fritz:/var/mod/root# ping -c1 192.168.10.101
PING 192.168.10.101 (192.168.10.101): 56 data bytes
64 bytes from 192.168.10.101: seq=0 ttl=127 time=99.197 ms

--- 192.168.10.101 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 99.197/99.197/99.197 ms

Aber kein Rechner aus dem lokalen Netz kann einen Rechner im remoten Netz erreichen.

So sieht das in der OpenVPN GUI aus:

ovpn.png

Was habe ich falsch gemacht, bzw. was fehlt?

Gruß
Henning
 
Hallo,

habe das jetzt mal mit einer dritten Box getestet.
Dort habe ich OpenVPN mit einem Statischen Schlüssel konfiguriert. Und alles funktioniert wie gewünscht ...

Code:
root@fritz:/var/mod/root# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.180.1   *               255.255.255.255 UH    2      0        0 dsl
213.162.148.6   *               255.255.255.255 UH    2      0        0 dsl
192.168.180.2   *               255.255.255.255 UH    2      0        0 dsl
192.168.128.114 *               255.255.255.255 UH    0      0        0 tun2
192.168.100.0   *               255.255.255.0   U     0      0        0 lan
172.16.100.0    *               255.255.255.0   U     0      0        0 tun0
192.168.128.0   *               255.255.255.0   U     0      0        0 tun1
192.168.12.0    192.168.128.114 255.255.255.0   UG    0      0        0 tun2
192.168.10.0    192.168.128.206 255.255.255.0   UG    0      0        0 tun1
169.254.0.0     *               255.255.0.0     U     0      0        0 lan
default         *               0.0.0.0         U     2      0        0 dsl

Auffällig ist das hier die Routing Tabelle ganz anders aussieht (192.168.128.114 / 192.168.128.0).

Gruß
Henning
 
Der "Fehler" dürfte mit großer Wahrscheinlichkeit beim Server zu suchen/finden sein. Du musst dem Server mitteilen, dass das LAN der Client-Box durch das VPN zu deiner Client-Box geschickt wird. Ich darf mich mal zitieren:

Für eine "feste" Zuordnung empfehle ich die "erweiterte Clientconfig", bei der du jedem Client eine IP vergeben kannst. Ist beim Client ein Netz, das durch das VPN erreicht werden soll (oder aus dem Geräte "durch" das VPN zugreifen wollen) dann ist diese Einstellung sogar "Pflicht", um die dafür nötigen "iroute"-Einträge zu erzeugen.
 
Ok,

dann verstehe ich mal wieder nicht was da einzugeben ist.
Ich habe die Erweiterte ClientKonfiguration verwendet.
Dort ist der Clientname (entspricht auch dem CN aus dem Client Zertifikat) eingetragen.
Dazu die Client-VPN IP (hier 192.168.128.77) . Diese kommt auf dem Client auch an, wie ich dem ifconfig entnehme.

Code:
tun1      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          inet addr:192.168.128.77  P-t-P:192.168.128.77  Mask:255.255.255.0
          UP POINTOPOINT RUNNING NOARP ALLMULTI MULTICAST  MTU:1500  Metric:1
          RX packets:2 errors:0 dropped:0 overruns:0 frame:0
          TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100 
          RX bytes:96 (96.0 B)  TX bytes:264 (264.0 B)

Dann gibts's da noch den Eintrag "Netz beim Client"
Den Eintrag habe ich leer gelassen, weil im Tooltip "Dieses Netz wird zum Client geroutet" steht.

Für mich passt die überschrift und der Tooltip irgendwie nicht so recht.
Ich will ja nicht vom Server aus zum Netz hinter dem Client zugreifen, sondern vom Client aus zum Server.
Und auf dem Server soll das 'Client' Netz nicht in Erscheinung treten.

Wenn es sich um diesen Eintrag handelt müsste es eher so heißen:
"Dieses Netz des Clients wird zum Server geroutet"

Gruß
Henning
 
Nee, das meint genau das: Du sollst/musst(!) dem Server mitteilen, ob/welches Netz bei einem VPN-Client ist.

Alle Geräte im LAN der Client-Box kommen sonst zwar in das "Server-LAN", aber sie müssen natürlich "auch wieder zurück". Darum muss der Server alle Pakete, die in das "VPN-Client-LAN" müssen, auch zum Client routen.
 
Ok,

getestet und funktioniert. Vielen Dank dafür.


Dennoch finde ich das Verfahren etwas sehr merkwürdig.

Wenn ich eine Fritzbox als Client verwende muss ich deren IP Bereich schon bei der Einrichtung des Servers kennen. Wenn ich anschließend diesen IP Bereich auf der Client Box ändern möchte, dann muss ich erst einmal alle OpenVPN Server zu denen ich Zugang habe umkonfigurieren. Krumme Logik, finde ich.

Bei statischen Schlüsseln muss ich ja auch nur den Client neu konfigurieren. Die Server merken davon nichts. (Es sei denn ich will vom Server in Richtung Client-Netz greifen)

Ich fände es hilfreich wenn der OpenVPN Client der Fritzbox sich konfigurationstechnisch bei statischen Schlüsseln und Zertifikaten gleich verhalten würde...

Nochmal Danke & Gruß
Henning
 
Wie kommst du darauf, dass das bei Schlüsseln anders wäre???:confused:
Natürlich verhält sich der OpenVPN-Client Routing-mäßig gleich, unabhängig davon, ob die Config mit Key oder Cert ist (solange die Config sonst gleich ist).
Bei der (sowieso nur mit Certs möglichen) Multi-Client Konfig benötigt man ggf. noch zusätzliche iroute's, das wurde aber oft genug genannt.

Aber auch bei einer Schlüssel-Konfig muss der Server eine Route für das LAN haben, also wissen, welches Netz wo ist, das kann gar nicht anders funktionieren.

Das hat auch nicht das Geringste mit FritzBox, nicht mal was mit OpenVPN zu tun. Es ist immer so, dass Routing nur zwischen bekannten Netzen funktioniert ("zur Not" ist eben eine "Route für alles andere", eine Default-Route, bekannt).

Zuletzt noch die Bitte, nicht mehrere Posts hintereinander machen, das sehen die Mods nicht gern. Nutze bitte die "Bearbeiten" Funktion, mit der man Informationen hinzufügt.
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.