[Frage] OpenVPN

xrated

Mitglied
Mitglied seit
2 Jul 2012
Beiträge
786
Punkte für Reaktionen
1
Punkte
18
Ich habe im Moment Probleme mit einem Windows10 Client der das interne Netzwerk nicht erreichen kann, von einem Android Client geht es dagegen schon.

Habe mir mal die Serverconfig von Freetz angeschaut und mir ist aufgefallen wenn man mode server und Zertifikat in der GUI einträgt dann steht in der Config:
ifconfig 192.168.200.1 192.168.200.2
Müsste dort dann nicht:
server 192.168.200.0 255.255.255.0
wie hier http://64-bit.de/dokumentationen/netzwerk/a/015/DE-VPN-HOWTO-4.html stehen?

Die vollständige Config:
Code:
proto udp
dev tun
ca /tmp/flash/openvpn/ca.crt
cert /tmp/flash/openvpn/box.crt
key /tmp/flash/openvpn/box.key
dh /tmp/flash/openvpn/dh.pem
tls-server
tls-auth /tmp/flash/openvpn/static.key 0
port 1194
ifconfig 192.168.200.1 192.168.200.2
push "route 192.168.5.0 255.255.255.0"
mode server
ifconfig-pool 192.168.200.10 192.168.200.20
push "route 192.168.200.1"
route 192.168.200.0 255.255.255.0
push "dhcp-option DOMAIN intern.lan"
push "dhcp-option DNS 192.168.5.1"
tun-mtu 1500
mssfix
verb 3
cipher AES-256-CBC
comp-lzo
keepalive 10 120
status /var/log/openvpn.log
cd /var/tmp/openvpn
chroot /var/tmp/openvpn
user openvpn
group openvpn
persist-tun
persist-key
push "redirect-gateway def1"

Die (push) route Befehle sind alle korrekt?

Normales LAN (selber Ort wo VPN ist) 192.168.5.0 mit GW 192.168.5.1
VPN Netz 192.168.200.0 mit VPN IP 192.168.200.1 und Range 192.168.200.10-20

wenn man /var/mod/etc/openvpn.conf mit vi verändert reicht das um openvpn manuell zu bearbeiten ohne GUI ?
 
Zuletzt bearbeitet:
Die GUI kann nur versuchen, die Konfig zu vereinfachen. Alle Fälle kann sie nicht abfangen und ist sicher auch nicht fehlerlos ;-)
Um möglichst viele Fälle abzudecken werden "Abkürzungen" wie "server 192.168.200.0 255.255.255.0" weniger genutzt, sondern meist "ausgeschrieben".

Um im Tunnel-Betrieb ein Netz zu bekommen ("topology subnet") müsstest du zumindest die Anzahl der erlaubten Clients auf > 1 setzen und ich meine, auch für die Clients in der "erweiterten Clienkconfig" die Zertifikate eintragen und IPs vorgeben. Ist aber etwas her, bn nicht ganz sicher ...

Was hast du denn bei der maximalen Client Anzahl stehen? Der Wert ("max-clients") ist in deiner Config nicht zu sehen?!?

Die Config wird bei jedem Start immer neu aus den GUI-Werten erstellt; du kannst sie also nicht direkt per "vi" verändern.
Im Experten-Abschnitt lassen sich aber noch weitere Befehle hinzufügen.
"Zur Not" kannst du die GUI auch ignorieren (bis auf den "autostart") und deine Config unter "/tmp/flash/openvpn/own_openvpn.conf" ablegen. Existiert diese Datei, wird die genommen, egal was in der GUI steht...

Du kannst ansonsten aber auch die "V2-GUI" nehmen, da kannst du die Konfig komplett selbst eintragen.
 
Tja max-clients wurde auch nicht in die Config übernommen.
Scheint aber nicht unbedingt erforderlich zu sein: http://64-bit.de/dokumentationen/netzwerk/a/015/DE-VPN-HOWTO-4.html
siehe 4.3.2.1

Dann muss ich eben freetz neu kompilieren. Kann ich mit der Freetz FW eigentlich auch gleichzeitig die AVM FW updaten? Die Box hat noch 6.20 und das freetz Image hat 6.30. Muss ich zuvor die Fritzbox mit der AVM Firmware updaten?

Der push "route 192.168.5.0 255.255.255.0" meint das der VPN Client dann letztendlich ins normale (entfernte) LAN zugreifen kann? In der GUI steht: "Routing von IP-Netzen: Lokales Netz"
 
Zuletzt bearbeitet:
Die GUI versucht, eine möglichst universelle Möglichkeit zur Konfiguration von OpenVPN ohne Eingabe einer Config-Datei zu erstellen.
Auf Grund der Vielzahl möglicher Szenarien versucht sie, die "passende" Config zu erstellen.
So soll es z.B. möglich sein, bei einem einzigen Client ohne "Multiclient" (mode server) auszukommen, um die damit verbundenen Probleme (Stichwort Netz beim Client --> iroute) zu vermeiden, wenn sie unnötig sind.
Dazu gehört, dass ein paar Werte aus der GUI als Indikatoren dafür herangezogen werden, unter anderem der Wert für max-client.
Wenn der z.B. der Wert für maximal erlaubte Clients vom User als "1" festgelegt wird, ist die Multi-Client-Umgebung sinnlos und kann "vermieden" werden.

Wenn du einen Wert ungleich eins drin hast, müsste der Wert auch in der erzeugten Config stehen, sonst wäre das ein "Bug" und es wäre nett, wenn du deine Einstellungen nennen könntest, damit man den ggf. fixen kann.

Wenn er "1" ist, ist die erzeugte Config m.E. korrekt, wenn auch vielleicht nicht "schön" oder das, was man "von Hand" geschrieben hatte.
Unschön ist z.B., dass ein "ifconfig-pool" möglich ist, obwohl nur ein Client sich verbinden darf. Dann könnte man diese Option noch ausblenden...


Der push "route 192.168.5.0 255.255.255.0" meint das der VPN Client dann letztendlich ins normale (entfernte) LAN zugreifen kann? In der GUI steht: "Routing von IP-Netzen: Lokales Netz"

Damit bekommt der Client eine Route für das Netz beim Server, damit der das Netz durch das VPN zum Server routet. Solange du aber sowieso "alles umleitest", kannst du dir diese Route auch sparen.


BTW: Ich finde Verweise auf "Fremd-Tutorien" als Hinweis "wie es zu sein hat" etwas problematisch.
Wenn es anders ist, als in der OpenVPN-Doku, dann fange ich an, mir Sorgen zu machen ;-).
 
Also ich glaube nicht das dies von max-clients abhängt, sieht man hier ja auch das server und nicht ifconfig verwendet wird:
https://openvpn.net/index.php/open-source/documentation/howto.html#examples
Entscheidend ist denke ich mode server und ob man statischen Schlüssel oder Zertifikat verwendet.
Meine Trunk Version ist mit 12708 schon nicht mehr die neueste, wer weiß was da in der aktuellen schon alles geändert wurde. OpenVPN habe ich noch 2.1 und aktuell ist 2.3.8 im Trunk.
Gleichzeitig herkömmliche GUI und die neue v2 GUI geht ja auch nicht oder? Würde nur ungern den neuen Trunk mit der herkömmlichen GUI flashen nur um dann zu sehen das es wieder falsch ist.
So sieht das jetzt aus:
openvpn.jpg
 
Vielleicht war es immer noch nicht klar genug ausgedrückt: Die eigentlich Config wird aus den Einträgen in der GUI erzeugt und abhängig von den Einträgen dort werden verschiedene Configs erzeugt. Dafür wird (in der Freetz OpenVPN-GUI !) z.B. der Eintrag bei "Max. Clients" ausgewertet.

... sieht man hier ja auch das server und nicht ifconfig verwendet wird ...
Bitte mach dir doch die Mühe, und lies das, was ich geschrieben haben:
Um möglichst viele Fälle abzudecken werden "Abkürzungen" wie "server 192.168.200.0 255.255.255.0" weniger genutzt, sondern meist "ausgeschrieben".

Denn, ein Blick ins "Manual" sagt (Hervorhebungen von mir):
Code:
--server network netmask ['nopool']
    A [b]helper directive[/b] designed to simplify the configuration of OpenVPN's server mode. 
[...] 
 For example, --server 10.8.0.0 255.255.255.0 [b]expands[/b] as follows:
[...]
 if dev tun AND (topology == net30 OR topology == p2p):
   [b]ifconfig[/b] 10.8.0.1 10.8.0.2
[...]
 if dev tap OR (dev tun AND topology == subnet):
   [b]ifconfig[/b] 10.8.0.1 255.255.255.0
[...]

In 12708 sollte schon OpenVPN 2.2.2 bzw. 2.3.1 enthalten sein?!?

Der Screenshot führt so zu der oben angegebenen Config?!? Das ist dann nicht richtig bezüglich der ifconfig-Zeile, das schaue ich mir mal an...
Welche Freetz Version nutzt du denn aktuell? Dann mache ich dir einen dafür passenden Patch oder Workaround, damit dabei statt dem "ifconfig 192.168.200.1 192.168.200.2" ein
Code:
ifconfig 192.168.200.1 255.255.255.0
rauskommt.

Aber trag doch bitte mal wie oben beschrieben versuchsweise einen Client in der "Erweiterten Clientconfig" ein, dann sollte das auch so von "P2P" auf ein "Netz" geändert werden.

Als Alternative zur "neuen GUI" nenne ich nochmal die Möglichkeit mit der "alten" GUI eine eigene Config zu nutzen:
"Zur Not" kannst du die GUI auch ignorieren (bis auf den "autostart") und deine Config unter "/tmp/flash/openvpn/own_openvpn.conf" ablegen. Existiert diese Datei, wird die genommen, egal was in der GUI steht...
Wenn du (d)eine Config dort ablegst, wird sie auch ausgeführt (danach per "modsave flash" resetfest sichern).

Zudem reden wir hier über Dinge, von denen (ich zumindest) nicht weiß, ob sie wirklich die Ursache für dein "Windows-Problem" sind.
Könntest du vielleicht mal genauer beschreiben, was denn bei dem WIN-Client nicht geht und ob/welche Logs es evtl. dazu gibt?
Denn wirklich "ganz falsch" ist die Config ja nicht, der Android-Client funktioniert ja....
 
Ich habe rausgefunden das openvpn default auf topology net30 läuft, also wäre der Eintrag ifconfig 192.168.200.1 192.168.200.2 durchaus ok.
In der alten Version konnte man eben auch kein net30 oder subnet auswählen, wäre schön wenn das in der aktuellen trunk Version drin ist.

Könnte vielleicht def1 ein Problem bei Windows 10 sein? Die routing table sah aber eigentlich ganz normal aus, es gab doppelte Defaultroute mit unterschiedlicher Metric.
Ich bekomme wie gesagt mit VPN unter Win10 eine Verbindung ohne Fehlermeldung beim connect aber kann nur von daheim aus auf 192.168.5.0 zugreifen, nicht unterwegs.

Momentan habe ich aber das Problem das ich das trunk image nicht auf die Box bekomme, siehe anderer Thread mit invalid tar.
 
Zuletzt bearbeitet:
Der Übersichthalber ein neuer Post mit den Daten

client config
Code:
remote xxx.org 1194
client
ca ca.crt
dh dh2048.pem
cert trechber.crt
key trechber.key
proto udp
dev tun
tls-client
tls-auth static.key 1
tun-mtu 1500
float
mssfix
cipher AES-256-CBC
nobind
verb 3
keepalive 10 120
comp-lzo
persist-key
persist-tun
remote-cert-tls server
verify-x509-name "xxx.org" name-prefix

müsste da nicht noch ein pull mit rein?

Routing Table
Code:
IPv4-Routentabelle
===========================================================================
Aktive Routen:
     Netzwerkziel    Netzwerkmaske          Gateway    Schnittstelle Metrik
          0.0.0.0          0.0.0.0      192.168.5.1    192.168.5.177     25
          0.0.0.0        128.0.0.0    192.168.200.9   192.168.200.10     20
      91.16.19.93  255.255.255.255      192.168.5.1    192.168.5.177     25
        127.0.0.0        255.0.0.0   Auf Verbindung         127.0.0.1    306
        127.0.0.1  255.255.255.255   Auf Verbindung         127.0.0.1    306
  127.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1    306
        128.0.0.0        128.0.0.0    192.168.200.9   192.168.200.10     20
      192.168.5.0    255.255.255.0   Auf Verbindung     192.168.5.177    281
      192.168.5.0    255.255.255.0    192.168.200.9   192.168.200.10     20
    192.168.5.177  255.255.255.255   Auf Verbindung     192.168.5.177    281
    192.168.5.255  255.255.255.255   Auf Verbindung     192.168.5.177    281
    192.168.200.1  255.255.255.255    192.168.200.9   192.168.200.10     20
    192.168.200.8  255.255.255.252   Auf Verbindung    192.168.200.10    276
   192.168.200.10  255.255.255.255   Auf Verbindung    192.168.200.10    276
   192.168.200.11  255.255.255.255   Auf Verbindung    192.168.200.10    276
        224.0.0.0        240.0.0.0   Auf Verbindung         127.0.0.1    306
        224.0.0.0        240.0.0.0   Auf Verbindung     192.168.5.177    281
        224.0.0.0        240.0.0.0   Auf Verbindung    192.168.200.10    276
  255.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1    306
  255.255.255.255  255.255.255.255   Auf Verbindung     192.168.5.177    281
  255.255.255.255  255.255.255.255   Auf Verbindung    192.168.200.10    276
===========================================================================
Ständige Routen:
  Keine
 
"client" ist auch eine Abkürzung ;-) für "pull" und "tls-client", damit ist das "pull" schonmal drin.

"Interessant" wäre mal die Routingtabelle wenn die Kiste "unterwegs" ist; so sieht sie gut aus, aber da ist ja das Netz 192.168.5.0 auch lokal verbunden....
Erster Test wäre dann, ob die FB (192.168.200.1) erreichbar ist, das ist noch ein Schritt "vor" dem Routing in das Netz dahinter.

Ein weiterer Punkt ist bei WIN Kisten immer auch die Frage der Firewall: Alle diese Netze sind ja (wenn du nur über VPN verbunden bist) nicht lokal. Nicht dass die Zugriffe durch die Firewall vom WIN10 geblockt werden...
 
müsste das:
push "route 192.168.200.1"
nicht so sein:
push "route-gateway 192.168.200.1"

wobei mit push "redirect-gateway def" müsste sich obiges doch eigentlich eh erledigt haben.
 
Nein, bei "net30" ist das Gateway die zweite IP im Netz. Deshalb muss, wenn die "echte" IP des Routers die .1 ist, dafür eine Route gesetzt werden.

Routing-Ziel ("route-gateway") ist aber immer die (direkt erreichbare) IP im /30-er Netz: Hat z.B. der Client die .10, ist die .9 "connected", also direkt erreichbar und daher Routingziel. Die IP .9 gibt es aber eigentlich nicht, sondern der Router ist nur auf der .1 ansprechbar, die .9 ist nur als Routingziel angegeben.

Wenn man aber eine Route auf die IP des Servers (die .1) eintragen will, muss halt zuvor die Route dafür weitergegeben werden.

Mit "redirect-gateway" wäre das (wie alles Routing übers VPN) tatsächlich überflüssig.
 
Das ist die aktuelle Config

Code:
proto udp
dev tun #routing, separate net for vpn
ca /tmp/flash/openvpn/ca.crt
cert /tmp/flash/openvpn/box.crt
key /tmp/flash/openvpn/box.key
dh /tmp/flash/openvpn/dh.pem
tls-auth /tmp/flash/openvpn/static.key 0 #additional auth with pw
cipher AES-256-CBC
port 1194
mode server
tls-server
ifconfig 192.168.200.1 255.255.255.0 #for topology subnet
push "route 192.168.5.0 255.255.255.0" #push route for lan to client
ifconfig-pool 192.168.200.10 192.168.200.20 #ip range for clients
#push "route 192.168.200.1" #push vpn server ip if net30 is used
route 192.168.200.0 255.255.255.0 #vpn network
push "dhcp-option DOMAIN intern.lan"
push "dhcp-option DNS 192.168.5.1"
tun-mtu 1500
#fragment and mssfix are designed to work around cases where Path 
#MTU discovery (icmp) is broken on the network path between OpenVPN peers
#mssfix 1300 #if not set, takes value from fragment
#fragment 1300 #needs to be also in client config, adds 4byte overhead
verb 3
comp-lzo #needs to be also in client config
keepalive 10 120 #ping every 10sec, timeout after 120sec
status /var/log/openvpn.log
cd /var/tmp/openvpn
chroot /var/tmp/openvpn
user openvpn
group openvpn
persist-tun
persist-key
push "redirect-gateway def1" #use openvpn server as def gw
#def1 allows client to restore old gw after disconnect
max-clients 5
topology subnet #only 1 subnet for all clients
push "topology subnet"
#client-to-client #clients will see each other

Am Windows 10 Client ist mir nun aufgefallen das die Routen ins VPN komplett fehlen (192.168.3.0 ist das Netzwerk in dem ich mich zu dem Zeitpunkt befand, daheim habe ich ja 192.168.5.0 und 192.168.200.0 als VPN Netz)

Code:
IPv4-Routentabelle
===========================================================================
Aktive Routen:
     Netzwerkziel    Netzwerkmaske          Gateway    Schnittstelle Metrik
          0.0.0.0          0.0.0.0      192.168.3.1    192.168.3.136     25
        127.0.0.0        255.0.0.0   Auf Verbindung         127.0.0.1    306
        127.0.0.1  255.255.255.255   Auf Verbindung         127.0.0.1    306
  127.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1    306
      192.168.3.0    255.255.255.0   Auf Verbindung     192.168.3.136    281
    192.168.3.136  255.255.255.255   Auf Verbindung     192.168.3.136    281
    192.168.3.255  255.255.255.255   Auf Verbindung     192.168.3.136    281
    192.168.200.0    255.255.255.0   Auf Verbindung    192.168.200.10    276
   192.168.200.10  255.255.255.255   Auf Verbindung    192.168.200.10    276
  192.168.200.255  255.255.255.255   Auf Verbindung    192.168.200.10    276
        224.0.0.0        240.0.0.0   Auf Verbindung         127.0.0.1    306
        224.0.0.0        240.0.0.0   Auf Verbindung     192.168.3.136    281
        224.0.0.0        240.0.0.0   Auf Verbindung    192.168.200.10    276
  255.255.255.255  255.255.255.255   Auf Verbindung         127.0.0.1    306
  255.255.255.255  255.255.255.255   Auf Verbindung     192.168.3.136    281
  255.255.255.255  255.255.255.255   Auf Verbindung    192.168.200.10    276
===========================================================================
Ständige Routen:
  Keine

die Funktion von def1 fehlt und 192.168.5.0 auch. Das passiert sogar auch wenn ich daheim bin.
Trage ich dann push "route-gateway 192.168.200.1" ein, verschwinden auch die Fehler im Log bezüglich der Routen.
Also redirect-gateway allein reicht bei subnet nicht.
 
Zuletzt bearbeitet:
Mit dieser Config funktioniert es nun auch bei Win10, vielleicht macht dort Net30 Probleme

Code:
### Protocol, port ###
proto udp
dev tun #routing, separate net for vpn
port 1194

### Certs and encryption ###
ca /tmp/flash/openvpn/ca.crt
cert /tmp/flash/openvpn/box.crt
key /tmp/flash/openvpn/box.key
dh /tmp/flash/openvpn/dh.pem
tls-auth /tmp/flash/openvpn/static.key 0 #additional auth with pw
cipher AES-256-CBC

### Server mode and basic settings ###
#server 192.168.200.0 255.255.255.0
#if above is used then mode server,tls-server,ifconfig not needed
#settings below are only needed if server parameter not used
mode server
tls-server
ifconfig 192.168.200.1 255.255.255.0 #for topology subnet
ifconfig-pool 192.168.200.10 192.168.200.20 #ip range for clients
route 192.168.200.0 255.255.255.0 #vpn network on local tun interface
#push "route 192.168.200.0 255.255.255.0" #newly added
#end settings from above

### Topology ###
topology subnet #only 1 subnet for all clients
push "topology subnet"

### Routing and GW ###
push "redirect-gateway def1" #use openvpn server as def gw
#def1 allows client to restore old gw after disconnect
push "route 192.168.5.0 255.255.255.0"
#push "route 192.168.200.1" #push vpn server ip if net30 is used
push "route-gateway 192.168.200.1" #needed for redirect gw parameter
#above only needed with subnet, not net30 where gateway is different on every client

### DHCP Push Options ###
push "dhcp-option DOMAIN intern.lan"
push "dhcp-option DNS 192.168.5.1"

### MTU Size ###
tun-mtu 1500
#fragment and mssfix are designed to work around cases where Path 
#MTU discovery (icmp) is broken on the network path between OpenVPN peers
#mssfix 1300 #if not set, takes value from fragment
#fragment 1300 #needs to be also in client config, adds 4byte overhead

### USER ###
user openvpn
group openvpn

### MISC ###
verb 3
comp-lzo #needs to be also in client config
status /var/log/openvpn.log
#cd /var/tmp/openvpn #folder doesnt exist after reboot
#chroot /var/tmp/openvpn
max-clients 5 #only valid if routing is used
#client-to-client #clients will see each other

### Options for dynamic IP and to keep sessions open ###
### Section will be used after remote end has timeout ###
keepalive 10 120 #ping every 10sec, connection timeout after 120sec
#above is shortcut for ping and ping-restart
#settings below affect how to proceed after ping-restart
persist-tun #keep tun device on reconnect
persist-key #do not reread key on reconnect
persist-local-ip #keep virtual local ip on reconnect
persist-remote-ip #keep virtual remote ip on reconnect
float #accept incoming connection from any IP
push "persist-tun"
push "persist-key"
 
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.