.titleBar { margin-bottom: 5px!important; }

[Frage] [7390] openVPN-Konfiguration Fehlermeldung

Dieses Thema im Forum "Freetz" wurde erstellt von hssuhle, 22 Jan. 2012.

  1. hssuhle

    hssuhle Neuer User

    Registriert seit:
    16 Mai 2005
    Beiträge:
    174
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    #1 hssuhle, 22 Jan. 2012
    Zuletzt bearbeitet: 23 Jan. 2012
    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
     
  2. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?
     
  3. hssuhle

    hssuhle Neuer User

    Registriert seit:
    16 Mai 2005
    Beiträge:
    174
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich hänge beides mal als attachment an, ok?
     

    Anhänge:

  4. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Du hast Leerzeichen in den Namen der Clients.
    Wenn Du willst, kannst Du einen Patch dafür erstellen, mit dem das korrigiert wird.
     
  5. hssuhle

    hssuhle Neuer User

    Registriert seit:
    16 Mai 2005
    Beiträge:
    174
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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
     
  6. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ich habe die Stelle im Trunk in #8499 geändert, kannst Du das mal testen?
     
  7. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,932
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    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...
     
  8. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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?
     
  9. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,932
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    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.
     
  10. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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.
     
  11. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,932
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    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...
     
  12. RalfFriedl

    RalfFriedl IPPF-Urgestein

    Registriert seit:
    22 Apr. 2007
    Beiträge:
    12,343
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ok, dann sind Schrägstriche im Namen des Zertifikats eben problematisch, unabhängig von Freetz.
     
  13. hssuhle

    hssuhle Neuer User

    Registriert seit:
    16 Mai 2005
    Beiträge:
    174
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    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!
     
  14. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,932
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    #14 MaxMuster, 23 Jan. 2012
    Zuletzt bearbeitet: 23 Jan. 2012
    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.
     
  15. hssuhle

    hssuhle Neuer User

    Registriert seit:
    16 Mai 2005
    Beiträge:
    174
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Aaaaalso:
    Die Ausgabe von modunreg ist "Totenstille"
    Die anderen beiden hänge ich an:
     

    Anhänge:

  16. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,932
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    #16 MaxMuster, 23 Jan. 2012
    Zuletzt bearbeitet: 23 Jan. 2012
    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?
     
  17. hssuhle

    hssuhle Neuer User

    Registriert seit:
    16 Mai 2005
    Beiträge:
    174
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Ja, das ist mir auch aufgefallen.
    Gerade noch einmal (zur Sicherheit) nachgesehen. Das Leerzeichen ist aber genau so drin.
     
  18. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,932
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    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.*/*
    
     
  19. hssuhle

    hssuhle Neuer User

    Registriert seit:
    16 Mai 2005
    Beiträge:
    174
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    neee. Nicht wirklich...

    Code:
    [email protected]:/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
    
    
     
  20. MaxMuster

    MaxMuster IPPF-Promi

    Registriert seit:
    1 Feb. 2005
    Beiträge:
    6,932
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    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?