Erstellt vor 5 Jahren

Geschlossen vor 5 Jahren

Zuletzt geändert vor 4 Jahren

#2116 closed defect (fixed)

OpenVPN falsches Verzeichnis bei "-client-config-dir"

Erstellt von: LeifScriba Verantwortlicher: MaxMuster
Priorität: normal Meilenstein: freetz-next
Komponente: packages Version: devel
Stichworte: Beobachter:
Product Id: 7270 Firmware Version: 05.50-10555

Beschreibung

Hallo.

Bei "Erweiterte Clientkonfiguration" unter OpenVPN wird das Verzeichnis für die Option "-client-config-dir" nicht gefunden.

Auf der Konsole kommt:
root@fritz:/# openvpn_Server —config /mod/etc/openvpn_Server.conf
Options error: —client-config-dir fails with '/clients_Server': No such file or directory

Config-File:

max-clients 10
mode server
ifconfig-pool 10.102.100.200 10.102.100.250
push "route 10.102.100.0 255.255.255.0"
client-config-dir /clients_openvpn_Server

Ich vermute, dass in dem Skript welches das config-file generiert ein Fehler ist.
File: /var/mod/etc/default.openvpn_Server/openvpn_Server_conf
Zeile 131: echo "client-config-dir $CCD_REL"
sollte eigentlich sin: echo "client-config-dir $CCD"

Fehler existiert bei mir in Revision 10555.

Grüße
Leif

Änderungshistorie (22)

comment:1 Geändert vor 5 Jahren durch MaxMuster

Könntest du bitte mal die genaue Fehlermeldung und die ganze Konfig posten? Hast du selbst was diesbezügliches eingetragen?
Oder das "chroot" entfernt?

Die Fehlermeldung ('/clients_Server': No such file or directory) passt einfach nicht zum etsprechenden Teil der Config (client-config-dir /clients_openvpn_Server).
Existiert das Verzeichnis "/tmp/openvpn/clients_openvpn_Server"?

comment:2 Geändert vor 5 Jahren durch MaxMuster

  • Status von new nach assigned geändert
  • Verantwortlicher auf MaxMuster gesetzt

comment:3 Geändert vor 5 Jahren durch LeifScriba

Hallo,

Hier die Config:

root@fritz:/var/mod/root# cat /var/mod/etc/openvpn_Server.conf
#  OpenVPN 2.1 Config, Fri May 31 12:30:51 CEST 2013
proto udp
dev tun
ca /tmp/flash/openvpn/Server_ca.crt
cert /tmp/flash/openvpn/Server_box.crt
key /tmp/flash/openvpn/Server_box.key
dh /tmp/flash/openvpn/Server_dh.pem
tls-server
tls-auth /tmp/flash/openvpn/Server_static.key 0
port 1196
ifconfig 10.102.100.1 255.255.255.0
push "route-gateway 10.102.100.1"
topology subnet
push "topology subnet"
push "route 172.20.10.0 255.255.255.0"
max-clients 10
mode server
ifconfig-pool 10.102.100.200 10.102.100.250
push "route 10.102.100.0 255.255.255.0"
client-config-dir /clients_openvpn_Server
route 192.168.27.0 255.255.255.0 10.102.100.27
client-to-client
push "dhcp-option DOMAIN r3we.lan"
push "dhcp-option DNS 172.20.10.1"
tun-mtu 1500
mssfix
verb 3
cipher BF-CBC
float
keepalive 30 120
status /var/log/openvpn_Server.log
chroot /tmp/openvpn
user openvpn
group openvpn
persist-tun
persist-key

Diese wird doch über das folgende Script erzeugt. oder?
/var/mod/etc/default.openvpn_Server/openvpn_Server_conf

So ein Skript wird anscheinend je VPN Config erstellt / verlinkt. Es zeigt auf /mod/etc/default.openvpn/openvpn_conf

Wenn ich händisch in der Config das "/tmp/openvpn/" voran stelle startet der Server wie erwartet. Dort befinden sich auch die Einstellungen je client:

root@fritz:/var/mod/root# ls /tmp/openvpn/
clients_openvpn              dev
clients_openvpn_Server   etc
root@fritz:/var/mod/root# ls /tmp/openvpn/clients_openvpn_Server/
client-leif

Jedenfalls bis irgendwas geändert wird …

Danke für die schnelle Reaktion.

comment:4 Geändert vor 5 Jahren durch MaxMuster

Hm, sieht richtig aus. Die Angabe des client-config-dir passt schon; es wird erst nach dem "chroot" ins Verzeichnis /tmp/openvpn genutzt, dann ist "clients_openvpn_Server" (weil man in /tmp/openvpn "eingesperrt" ist) wirklich "auf der obersten Ebene", also /clients_openvpn_Server.
Bitte hänge das Log an, was beim Aufruf auf der Console entsteht (openvpn_Server —config /mod/etc/openvpn_Server.conf)

comment:5 Geändert vor 5 Jahren durch LeifScriba

root@fritz:/var/mod/root# openvpn_Server --config /mod/etc/openvpn_Server.conf
Options error: --client-config-dir fails with '/clients_openvpn_Server': No such file or directory
Options error: Please correct these errors.
Use --help for more information.

comment:6 Geändert vor 5 Jahren durch LeifScriba

mit
client-config-dir /tmp/openvpn/clients_openvpn_Server
startet der OpenVPN Server
Nur wird dann eine Adresse auf dem Pool zugewiesen (und nicht die vorgesehene …)

root@fritz:/var/mod/root# vi /mod/etc/openvpn_Server.conf
root@fritz:/var/mod/root# openvpn_Server --config /mod/etc/openvpn_Server.conf
Fri May 31 17:49:14 2013 OpenVPN 2.3.1 mipsel-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [IPv6] built on May 29 2013
Fri May 31 17:49:14 2013 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Fri May 31 17:49:15 2013 Diffie-Hellman initialized with 2048 bit key
Fri May 31 17:49:15 2013 WARNING: file '/tmp/flash/openvpn/Server_static.key' is group or others accessible
Fri May 31 17:49:15 2013 Control Channel Authentication: using '/tmp/flash/openvpn/Server_static.key' as a OpenVPN static key file
Fri May 31 17:49:15 2013 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri May 31 17:49:15 2013 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri May 31 17:49:15 2013 Socket Buffers: R=[178176->131072] S=[178176->131072]
Fri May 31 17:49:15 2013 TUN/TAP device tun1 opened
Fri May 31 17:49:15 2013 TUN/TAP TX queue length set to 100
Fri May 31 17:49:15 2013 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Fri May 31 17:49:15 2013 /sbin/ifconfig tun1 10.102.100.1 netmask 255.255.255.0 mtu 1500 broadcast 10.102.100.255
Fri May 31 17:49:15 2013 /sbin/route add -net 192.168.27.0 netmask 255.255.255.0 gw 10.102.100.27
Fri May 31 17:49:15 2013 chroot to '/tmp/openvpn' and cd to '/' succeeded
Fri May 31 17:49:15 2013 GID set to openvpn
Fri May 31 17:49:15 2013 UID set to openvpn
Fri May 31 17:49:15 2013 UDPv4 link local (bound): [undef]
Fri May 31 17:49:15 2013 UDPv4 link remote: [undef]
Fri May 31 17:49:15 2013 MULTI: multi_init called, r=256 v=256
Fri May 31 17:49:15 2013 IFCONFIG POOL: base=10.102.100.200 size=51, ipv6=0
Fri May 31 17:49:15 2013 Initialization Sequence Completed
Fri May 31 17:49:20 2013 95.117.73.163:55226 TLS: Initial packet from [AF_INET]95.117.73.163:55226, sid=2d00d36d f60eb397
Fri May 31 17:49:23 2013 95.117.73.163:55226 VERIFY OK:  ...
Fri May 31 17:49:23 2013 95.117.73.163:55226 VERIFY OK:  ...
Fri May 31 17:49:24 2013 95.117.73.163:55226 Data Channel Encrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri May 31 17:49:24 2013 95.117.73.163:55226 Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri May 31 17:49:24 2013 95.117.73.163:55226 Data Channel Decrypt: Cipher 'BF-CBC' initialized with 128 bit key
Fri May 31 17:49:24 2013 95.117.73.163:55226 Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication
Fri May 31 17:49:24 2013 95.117.73.163:55226 Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 2048 bit RSA
Fri May 31 17:49:24 2013 95.117.73.163:55226 [client-leif] Peer Connection Initiated with [AF_INET]95.117.73.163:55226
Fri May 31 17:49:24 2013 client-leif/95.117.73.163:55226 MULTI_sva: pool returned IPv4=10.102.100.200, IPv6=(Not enabled)
Fri May 31 17:49:24 2013 client-leif/95.117.73.163:55226 MULTI: Learn: 10.102.100.200 -> client-leif/95.117.73.163:55226
Fri May 31 17:49:24 2013 client-leif/95.117.73.163:55226 MULTI: primary virtual IP for client-leif/95.117.73.163:55226: 10.102.100.200
Fri May 31 17:49:26 2013 client-leif/95.117.73.163:55226 PUSH: Received control message: 'PUSH_REQUEST'
Fri May 31 17:49:26 2013 client-leif/95.117.73.163:55226 send_push_reply(): safe_cap=940
Fri May 31 17:49:26 2013 client-leif/95.117.73.163:55226 SENT CONTROL [client-leif]: 'PUSH_REPLY,route-gateway 10.102.100.1,topology subnet,route 172.20.10.0 255.255.255.0,route 10.102.100.0 255.255.255.0,dhcp-option DOMAIN r3we.lan,dhcp-option DNS 172.20.10.1,ping 30,ping-restart 120,ifconfig 10.102.100.200 255.255.255.0' (status=1)


comment:8 Geändert vor 5 Jahren durch MaxMuster

?!? Habe deine Config mal bei mir gestartet, ohne Fehler. Selbst wenn ich ein nicht vorhandenes Verzeichnis angebe, bekomme ich den Fehler nicht?!?

root@eumex:/var/tmp/flash/openvpn# cat /var/mod/etc/openvpn_Server.conf 
#  OpenVPN 2.1 Config, Fri May 31 12:30:51 CEST 2013
proto udp
dev tun
ca /tmp/flash/openvpn/Server_ca.crt
cert /tmp/flash/openvpn/Server_box.crt
key /tmp/flash/openvpn/Server_box.key
dh /tmp/flash/openvpn/Server_dh.pem
tls-server
tls-auth /tmp/flash/openvpn/Server_static.key 0
port 1196
ifconfig 10.102.100.1 255.255.255.0
push "route-gateway 10.102.100.1"
topology subnet
push "topology subnet"
push "route 172.20.10.0 255.255.255.0"
max-clients 10
mode server
ifconfig-pool 10.102.100.200 10.102.100.250
push "route 10.102.100.0 255.255.255.0"
client-config-dir /ccd
route 192.168.27.0 255.255.255.0 10.102.100.27
client-to-client
push "dhcp-option DOMAIN r3we.lan"
push "dhcp-option DNS 172.20.10.1"
tun-mtu 1500
mssfix
verb 3
cipher BF-CBC
float
keepalive 30 120
status /var/log/openvpn_Server.log
chroot /tmp/openvpn
user openvpn
group openvpn
persist-tun
persist-key
root@eumex:/var/tmp/flash/openvpn# ls /ccd
ls: /ccd: No such file or directory
root@eumex:/var/tmp/flash/openvpn# ls /tmp/openvpn/ccd
ls: /tmp/openvpn/ccd: No such file or directory
root@eumex:/var/tmp/flash/openvpn# openvpn_Server  /var/mod/etc/openvpn_Server.conf 
Tue Jan 11 23:55:23 2000 OpenVPN 2.3.1 mipsel-unknown-linux-gnu [SSL (PolarSSL)] [IPv6] built on May 20 2013
Tue Jan 11 23:55:23 2000 NOTE: OpenVPN 2.1 requires '--script-security 2' or higher to call user-defined scripts or executables
Tue Jan 11 23:55:23 2000 Diffie-Hellman initialized with 1024 bit key
Tue Jan 11 23:55:23 2000 Control Channel Authentication: using '/tmp/flash/openvpn/Server_static.key' as a OpenVPN static key file
Tue Jan 11 23:55:23 2000 Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Tue Jan 11 23:55:23 2000 Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication
Tue Jan 11 23:55:23 2000 Socket Buffers: R=[110592->131072] S=[110592->131072]
Tue Jan 11 23:55:23 2000 TUN/TAP device tun0 opened
Tue Jan 11 23:55:23 2000 TUN/TAP TX queue length set to 100
Tue Jan 11 23:55:23 2000 do_ifconfig, tt->ipv6=0, tt->did_ifconfig_ipv6_setup=0
Tue Jan 11 23:55:23 2000 /sbin/ifconfig tun0 10.102.100.1 netmask 255.255.255.0 mtu 1500 broadcast 10.102.100.255
Tue Jan 11 23:55:23 2000 /sbin/route add -net 192.168.27.0 netmask 255.255.255.0 gw 10.102.100.27
Tue Jan 11 23:55:23 2000 chroot to '/tmp/openvpn' and cd to '/' succeeded
Tue Jan 11 23:55:23 2000 GID set to openvpn
Tue Jan 11 23:55:23 2000 UID set to openvpn
Tue Jan 11 23:55:23 2000 UDPv4 link local (bound): [undef]
Tue Jan 11 23:55:23 2000 UDPv4 link remote: [undef]
Tue Jan 11 23:55:23 2000 MULTI: multi_init called, r=256 v=256
Tue Jan 11 23:55:23 2000 IFCONFIG POOL: base=10.102.100.200 size=51, ipv6=0
Tue Jan 11 23:55:23 2000 Initialization Sequence Completed
Tue Jan 11 23:55:25 2000 event_wait : Interrupted system call (code=4)
Tue Jan 11 23:55:25 2000 /sbin/route del -net 192.168.27.0 netmask 255.255.255.0
Tue Jan 11 23:55:25 2000 ERROR: Linux route delete command failed: could not execute external program
Tue Jan 11 23:55:25 2000 Closing TUN/TAP interface
Tue Jan 11 23:55:25 2000 /sbin/ifconfig tun0 0.0.0.0
Tue Jan 11 23:55:25 2000 Linux ip addr del failed: could not execute external program
Tue Jan 11 23:55:25 2000 SIGINT[hard,] received, process exiting
root@eumex:/var/tmp/flash/openvpn# 

comment:9 Geändert vor 5 Jahren durch MaxMuster

Kam mir doch gleich so bekannt vor, diese merkwürdige Meldung. Baust du bitte nochmal ein Image (oder ein neues Binary)? Weiß zwar nicht, wie es dazu kommt, aber …

comment:10 Geändert vor 5 Jahren durch LeifScriba

Okay mache ich …. hatte post zwar gefunden … aber die entscheidende Stelle übersehen … Danke!

comment:11 Geändert vor 5 Jahren durch MaxMuster

Kein Problem. Hast du ein "strace" auf der Box oder könntest mal eins drauf bringen? Würde mich interessieren, an welcher Stelle das Binary scheinbar überprüft, ob das ccd "da ist".
Also in etwa sowas:
/tmp/strace /mod/sbin/openvpn_Server /mod/etc/openvpn_Server.conf

comment:12 Geändert vor 5 Jahren durch MaxMuster

Glaube, ich habe es gefunden. Schaust du bitte mal, ob du beim OpenVPN "ENABLE_SMALL" nicht gesetzt hast ("optimize for size")? Dann zieht in options.c die Funktion "check_file_access", die das verursachen dürfte.
Ist aber m.E. ein Fehler im OpenVPN. Ich checke das noch genauer.

Zuletzt geändert vor 5 Jahren von MaxMuster (vorher) (Diff)

comment:13 Geändert vor 5 Jahren durch LeifScriba

Ja "Optimize for Size" setzte ich wenn der Platz auf'm image knapp wird.
die 7270 war "jungfräulich" und da habe ich das flag erstmal nicht gesetzt.

strace hat sich überholt?

Zuletzt geändert vor 5 Jahren von LeifScriba (vorher) (Diff)

comment:14 Geändert vor 5 Jahren durch MaxMuster

Habe ein Ticket bei openvpn aufgemacht, als workaround bliebe nur, die "small-Version" zu nutzen. Und ja, strace hat sich damit erübrigt.

comment:15 Geändert vor 5 Jahren durch er13

@Jörg: melde Dich lieber auf ihrer Mailingliste, Tickets werden von denen sehr stiefmütterlich behandelt. PolarSSL-Ticket ist immer noch nicht geschlossen, obwohl Fix längst eingecheckt ist und sogar zwei stable-Version seitdem released wurden.

comment:16 Geändert vor 5 Jahren durch MaxMuster

@Eugene: Ja, mach ich. Danke für die "Erinnerung" ;-)

comment:17 Geändert vor 5 Jahren durch LeifScriba

Dank dem Hinweis und einem Update der Box läuft es auch bei mir … dachte ich hätte einen "echten Fehler" bei Freetz gefunden ;)
Aus meiner Sicht könnte das Ticket hier geschlossen werden, da es ja nicht Freetz direkt betrifft.

comment:18 Geändert vor 5 Jahren durch LuHee

Ein einfacher Workaround wäre auch zusätzlich zum "chroot" nach /tmp/openvpn auch ein "cd" in openvpn.conf einzufügen, und "client-config-dir" relativ zum aktuellen Verzeichnis anzugeben.

Index: make/openvpn-cgi/files/root/etc/default.openvpn/openvpn_conf
===================================================================
--- make/openvpn-cgi/files/root/etc/default.openvpn/openvpn_conf        (Revision 10953)
+++ make/openvpn-cgi/files/root/etc/default.openvpn/openvpn_conf        (Arbeitskopie)
@@ -4,8 +4,8 @@
 scriptname=${scriptname##*/}
 prefix=${scriptname%%_conf}
 
-CCD_REL=/clients_$prefix
-CCD=/var/tmp/openvpn$CCD_REL
+CCD_REL=clients_$prefix
+CCD=/var/tmp/openvpn/$CCD_REL
 
 . /mod/etc/conf/openvpn.cfg
 
@@ -224,6 +224,7 @@
 [ "$OPENVPN_MGMNT" = "yes" ] && echo "management $OPENVPN_MGMNT"
 [ "$LOGFILE" = "yes" ] && echo "status /var/log/$prefix.log"
 
+echo "cd /tmp/openvpn"
 echo "chroot /tmp/openvpn"
 echo "user openvpn"
 echo "group openvpn"

comment:19 Geändert vor 5 Jahren durch MaxMuster

Gute Idee, danke. Mein OpenVPN-Ticket dazu steht leider noch immer auf "new" :-(

comment:20 Geändert vor 5 Jahren durch MaxMuster

In 10954:

openvpn-cgi:

  • workaround by LuHee for openvpn file checking error with chroot and ccd enabled
  • introduce variable "CHROOT" for chroot path
  • refs #2116

comment:21 Geändert vor 5 Jahren durch cuma

  • Lösung auf fixed gesetzt
  • Status von assigned nach closed geändert

Scheint behoben

comment:22 Geändert vor 5 Jahren durch cuma

  • Meilenstein von freetz-future nach freetz-next geändert

comment:23 Geändert vor 4 Jahren durch MaxMuster

In 12597:

Openvpn freetz-2.0:

  • refs #2116
  • add (forgotten) fix for OpenVPN-GUI in stable branch, too
Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.