[Frage] [7390] openVPN-Konfiguration Fehlermeldung

hssuhle

Neuer User
Mitglied seit
16 Mai 2005
Beiträge
174
Punkte für Reaktionen
0
Punkte
16
Beim Starten des openVPN-Servers bekomme ich:
Code:
/mod/etc/default.openvpn/openvpn_conf: eval: line 1: 01: not found
/mod/etc/default.openvpn/openvpn_conf: eval: line 1: 02: not found
/mod/etc/default.openvpn/openvpn_conf: line 1: can't create /var/tmp/openvpn/clients_openvpn/: Is a directory
/mod/etc/default.openvpn/openvpn_conf: line 1: can't create /var/tmp/openvpn/clients_openvpn/: Is a directory
Starting openvpn ... failed.

Weiteres Problem:
Trotz Auswahl von "Authentifizierungsmethode: Zertifikate" bekomme ich kein Eingabefeld für den privaten Schluessel der Box mit der Begründung, den benötige man ja nur für die Authentifizierung mit Zertifikaten... Funny.

Kann mir bitte jemand helfen?

Dankeschön!

hssuhle
 
Zuletzt bearbeitet:
Was steht denn in /mod/etc/default.openvpn/openvpn_conf, und was wird angezeigt, wenn man es mit "sh -x /mod/etc/default.openvpn/openvpn_conf" aufruft?
 
Ich hänge beides mal als attachment an, ok?
 

Anhänge

  • openvpn.out.txt
    19.8 KB · Aufrufe: 10
  • openvpn_conf.txt
    7.6 KB · Aufrufe: 8
Du hast Leerzeichen in den Namen der Clients.
Wenn Du willst, kannst Du einen Patch dafür erstellen, mit dem das korrigiert wird.
 
So eine einfache Lösung! Danke!

Dann bastele ich mir wohl am einfachsten neue Zertifikate...

Vielen Dank für die Hilfe!

Komisch nur, dass es mit älteren Versionen klaglos geklappt hat. Naja, egal.

Schönen Gruß!

hssuhle
 
Ich denke, das ist nicht korrekt bzw nicht ausreichend. Mein Ansatz wäre:

Code:
--- openvpn_conf.ori	2012-01-22 21:25:31.185364782 +0100
+++ openvpn_conf	2012-01-22 21:35:25.265365354 +0100
@@ -146,7 +146,7 @@
 			while [ $client -le "$CLIENTS_DEFINED" ]
 			do	
 				eval C_IP$client=$actcip
-				eval C_NAME$client=$actcname
+				eval C_NAME$client=\"$actcname\"
 				eval C_NET$client=\"$actcnet\"
 				actcip=${restip%%:*}
 				restip=${restip#*:}
@@ -162,12 +162,12 @@
 			while [ $client -le "$CLIENTS_DEFINED" ]
 			do
 				eval net=\$C_NET$client
-				eval name=\$C_NAME$client
+				eval name=\"\$C_NAME$client\"
 				eval ip=\$C_IP$client
-				echo "ifconfig-push $ip $BOX_MASK"  > $CCD/$name
+				echo "ifconfig-push $ip $BOX_MASK"  > "$CCD/$name"
 				if [ "$net" != "-" ]; then
 					echo -e "route $net $ip" | sed "s/[[:space:]]*;[[:space:]]*/ ${ip}\nroute /g" >> $CONFFILE
-					echo -e "iroute $net" | sed "s/[[:space:]]*;[[:space:]]*/\niroute /g" >> $CCD/$name
+					echo -e "iroute $net" | sed "s/[[:space:]]*;[[:space:]]*/\niroute /g" >> "$CCD/$name"
 				fi
 				if [ "$CLIENT2CLIENT" = "yes" ]; then
 					i=1
@@ -175,7 +175,7 @@
 						if [ $i -ne $client ]; then
 							eval cnet=\$C_NET$i 
 							eval cip=\$C_IP$i
-							[ "$cnet" != "-"  ] && echo -e "push \"route $cnet $cip\"" | sed "s/[[:space:]]*;[[:space:]]*/ ${cip}\"\npush \"route /g" >> $CCD/$name
+							[ "$cnet" != "-"  ] && echo -e "push \"route $cnet $cip\"" | sed "s/[[:space:]]*;[[:space:]]*/ ${cip}\"\npush \"route /g" >> "$CCD/$name"
 						fi
 						i=$((1+$i))
 					done


ich versuche das später/morgen mal...
 
Die eval Anweisungen sollten so bleiben, wie sie sind.
Die Anführungszeichen um "$CCD/$name" sind richtig, wobei ein Schrägstrich im Namen auch nicht gut wäre. Spricht etwas dagegen, diese Namen einfach durch zu nummerieren?
 
Welche "evals" genau sollten wie bleiben?

Die Namen sind ja quasi "vorgegeben", es sind die "common names" aus dem Zertifikat (ich hatte nie ge-/bedacht, dass leerzeichen "zulässig" sind).
Wenn da ein Schrägstrich drin wäre, müsste der natürlich korrekter Weise auch noch escaped werden...

Bisher hat sich aber noch niemand beschwert, vermutlich weil solche "Sonderfälle" doch eher unüblich sind. Und ich missbrauche zudem auch noch # und : als Trennzeichen in der COnfig, so dass auch diese als Namensteil entfallen.
 
Alle evals sollen so bleiben, wie sie jetzt im Trunk sind.
Es gibt kein Escape für einen Schrägstrich im Dateinamen. Allenfalls kann man die Verzeichnis anlegen, die für die Datei notwendig sind.
Ist es wirklich notwendig, dass die Dateien so heißen wie das Zertifikat? OpenSSL verwendet normalerweise einen Hash, um passenden Zertifikate zu finden.
 
Ist es wirklich notwendig, dass die Dateien so heißen wie das Zertifikat?
Ich wüsste keine Alternative. OpenVPN schaut bei einer Verbindung nach, ob die Datei "<ClientConfigDir>/<common name>" existiert und liest daraus die Befehle für diesen Client.:

Code:
After a connecting client has been authenticated, OpenVPN will look in this directory 
for a file having the same name as the client's X509 common name. [...]

Damit bin ich indirekt auf "legale Dateinamen" als möglich CNs angewiesen...
 
Habe gerade neu ausgecheckt - keine Fehlermeldung wegen des Leerzeichens.

AAAAABER:

Ich kann den privaten Schlüssel der Box immer noch nicht über das Webinterface eingeben:
Code:
Private Key (OpenVPN)

Der private Schlüssel für diese Instanz. Wird nur für den Betrieb mit Zertifikaten benötigt.

[COLOR="red"]Fehler: Unbekannter Typ 'text '[/COLOR]

Könntet Ihr das bitte auch noch reparieren? Das wäre cool!
 
Ich habe dazu gestern hier nachgefragt, ist aber wohl untergegangen, weil es nicht die Hauptsache in dem Thread ist...

Könntest du bitte mal die Ausgabe von "cat /etc/default.openvpn/box_key.def " posten?
Und dann noch die von:
Code:
modunreg file openvpn 'box_key' 'Private Key' 0 "box_key"
sh -x /usr/bin/modreg file openvpn 'box_key' 'Private Key' 0 "box_key"

EDIT: Wer lesen kann ..... ;-) In dem Thread steht ja auch schon was. Ich schaue es mir mal an.
 
Zuletzt bearbeitet:
Aaaaalso:
Die Ausgabe von modunreg ist "Totenstille"
Die anderen beiden hänge ich an:
 

Anhänge

  • sh-x.txt
    934 Bytes · Aufrufe: 3
  • box_key.def.txt
    344 Bytes · Aufrufe: 2
Also, ich weiß jetzt, dass der Fehler kommt, weil beim Aufruf des Skriptes, was die Seite erzeugt (/usr/lib/mww/page.d/file/edit_body.sh) der CONFIG_TYPE nicht 'text' sondern scheinbar 'text ' ist (Leerzeichen am Ende).
Aber in der Config steht es ja richtig drin, also
Code:
CONFIG_TYPE='text'

Das irritiert mich...

Kommt der Fehler bei irgendeiner anderen Seite auch? Also entweder bei den anderen OpenVPN Files oder unter Freetz->rc_custom oder so?
 
Zuletzt bearbeitet:
Ja, das ist mir auch aufgefallen.
Gerade noch einmal (zur Sicherheit) nachgesehen. Das Leerzeichen ist aber genau so drin.
 
Könntest du das bitte mal ausführen? Gibt es da was als Ergebnis (nur *.def Dateien sind "wichtig")?
Code:
grep -r "text " /mod/etc/default.*/*
 
neee. Nicht wirklich...

Code:
root@fritz:/var/mod/root# grep -r "text " /mod/etc/default.*/*
/mod/etc/default.webcfg/webcfg_conf:# protect file servers.php to be viewed in clear text via URL with a fantasy password
 
Noch eine Bitte. Ändert sich was, wenn du das so machst? Wir dann die Datei angezeigt?
Code:
sed 's%chmod [^\;]*; %% '  /etc/default.openvpn/box_key.def  > /tmp/box_key.def

mount -o bind  /tmp/box_key.def /etc/default.openvpn/box_key.def
Wie ist das mit den anderen "Dateien", gehen die?
 

Statistik des Forums

Themen
244,695
Beiträge
2,216,692
Mitglieder
371,315
Neuestes Mitglied
jack-mack
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.