(gelöst) Openvpn - auth-user-pass

the_freestyler

Neuer User
Mitglied seit
7 Mrz 2007
Beiträge
114
Punkte für Reaktionen
0
Punkte
16
Hallo,

ich möchte meine 7270 mit einem OpenVPN Server verbinden, der eine Username Password Authentifizierung verlangt und nur ein CA Cert und einen Static Key für die TLS Authentifizierung zur Verfügung stellt.

Obwohl nun eigentlich alle notwendigen Hacken, mit denen es zumindest mit dem Windows Client funktioniert gesetzt sind, will OpenVPN auf der 7270 Box.crt und Box.key.

Es kommt folgende Fehlermeldung im Debug.log

Code:
Sat Mar 27 12:21:45 2010 us=108337 OpenVPN 2.1.1 mipsel-linux [SSL] [LZO2] [EPOLL] [MH] built on Jan 11 2010
Sat Mar 27 12:21:45 2010 us=109575 WARNING: file '/../openvpnpassfile' is group or others accessible
Sat Mar 27 12:21:45 2010 us=110205 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts
Sat Mar 27 12:21:45 2010 us=115474 Cannot load certificate file /tmp/flash/openvpn_HiDrive/box.crt: error:0906D06C:lib(9):func(109):reason(108): error:140AD009:lib(20):func(173):reason(9)
Sat Mar 27 12:21:45 2010 us=115714 Exiting

Benutzername / Passwort Abfrage sind eigentlich interaktiv, bei der 7270 aber in einem File hinterlegt.

Meine Client.conf sieht so aus:

Code:
proto udp
dev tun
ca /tmp/flash/openvpn_HiDrive/ca.crt
cert /tmp/flash/openvpn_HiDrive/box.crt
key /tmp/flash/openvpn_HiDrive/box.key
tls-client
ns-cert-type server
tls-auth /tmp/flash/openvpn_HiDrive/static.key 1
remote openvpn.hidrive.strato.com
nobind
pull
tun-mtu 1500
mssfix
log /var/tmp/debug_openvpn_HiDrive.out
verb 4
daemon
cipher BF-CBC
keepalive 10 120
resolv-retry infinite
status /var/log/openvpn_HiDrive.log
chroot /tmp/openvpn
user openvpn
group openvpn
persist-tun
persist-key
auth-user-pass /var/media/ftp/uStor01/openvpnpassfile
auth-retry nointeract
ca ca.drive.strato.com.crt
--script-security 2

Was mir hierbei auffält, dass cert und key zwangsmäßig eingetragen werden, obwohl in dem Fall nicht benötigt.
 
Zuletzt bearbeitet:
Die GUI benutzt ausschließlich Box-Zertifikat, Key und CA-Zertifikat. Bist du sicher, dass du nur ein reines CA-Zertifikat hast und nicht z.B. ein pkcs-Zertifikat?
Wenn du nur ein pkcs-File hast, musst du das entsprechend "zerlegen", wie z.B. hier unter Step 1 beschrieben:
Sei mein_cert.pfx dein PKCS#12 Zertifikat:
Code:
# Box-Zertifikat:
openssl pkcs12 -in mein_cert.pfx -nokeys -clcerts -out box.crt
# CA Zertifikat:
openssl pkcs12 -in mein_cert.pfx -nokeys -cacerts -out ca.crt
# Private key:
openssl pkcs12 -in mein_cert.pfx -nocerts -nodes -out box.key

Wenn es das nicht ist, wird deine Konfig von der GUI nicht unterstützt, und du müsstest deine Config von Hand erzeugen und starten.

Jörg
 
Danke für die Antwort Jörg.

Nein, das ist nur das CA Zertifikat.
http://www.strato-faq.de/download/OpenVPN_HiDrive_config.zip

Also habe ich es händisch probiert und in der config cert und key entfernt und mit openvpn *.conf aufgerufen.

Leider folgende Fehlermeldung:

Sat Mar 27 14:07:14 2010 us=281885 TLS Error: TLS key negotiation failed to occur within 60 seconds (check your network connectivity)
Sat Mar 27 14:07:14 2010 us=282137 TLS Error: TLS handshake failed

An der Verbindung dürfte es eigentlich nicht liegen, da clientseitig keine Ports geöffnet werden müssen und der Server auch erreicht wird.
 
Du musst auch den "tls-auth" Part von Hand einsetzen. Die GUI setzt eine "Richtung" voraus, während das File von Strato keinen Wert für die "direction" nutzen.
Hast du denn das Cert auf der GUI eingetragen? Dann solltest du auf jeden Fall auch den zweiten Eintrag dafür ("ca ca.drive.strato.com.crt") aus der Config rauslöschen.

Jörg
 
tls-auth war eingetragen und auf den static key gesetzt.

Das stimmt, in der Strato File ist keine Richtung eingetragen. Wenn ich auf der fritzbox die Strato config probiere (Pfade angepasst) sagt er, dass tls-client oder tls-server gesetzt werden müssen, wenn die ca file gesetzt ist. Sobald tls-client definiert ist möchte er pull haben.

Das zweite CA hatte ich gelöscht.

Meine conf sieht nun so aus, ziemlich minimal, und trotzdem TLS Error:

Code:
proto udp
dev tun
ca /tmp/flash/openvpn_HiDrive/ca.crt
tls-client
tls-auth /tmp/flash/openvpn_HiDrive/static.key 1
ns-cert-type server
remote openvpn.hidrive.strato.com
log /var/tmp/debug_openvpn_HiDrive.out
pull
verb 4
daemon
auth-user-pass /var/media/ftp/uStor01/openvpnpassfile
auth-retry nointeract
 
Dann hast du die Config nicht komplett übernommen, denke ich. "client" ist eine Hilfskonstruktion und wird "expandiert" in
Code:
pull
tls-client

Trotzdem müsstest du die "1" beim tls-auth entfernen.


Jörg
 
Wow, danke. Scheint auf den ersten Blick zu funktionieren.

Was macht denn die 1 hinter dem Static Key?
 
Findest du auf openvpn.net.
Die Doku von "direction" bei tls-auth verweist auf den parameter bei "secret". Es geht darum, wie der Key angewandt wird:
The optional direction parameter enables the use of 4 distinct keys (HMAC-send, cipher-encrypt, HMAC-receive, cipher-decrypt), so that each data flow direction has a different set of HMAC and cipher keys. This has a number of desirable security properties including eliminating certain kinds of DoS and message replay attacks.

When the direction parameter is omitted, 2 keys are used bidirectionally, one for HMAC and the other for encryption/decryption.

The direction parameter should always be complementary on either side of the connection, i.e. one side should use "0" and the other should use "1", or both sides should omit it altogether.

Jörg
 
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.