vpnc 0.5 Implemetierung im ds mod

nebri

Neuer User
Mitglied seit
18 Mai 2007
Beiträge
4
Punkte für Reaktionen
0
Punkte
0
Hallo,

seit Ende August gibt es den vpnc client in einer neuen Version 0.5. Diese untersützt Hybrid-Auth, was für mich sehr interessant wäre.

Ich bin mir nicht sicher was sich von den sourcen alles geändert hat und wie schwierig es ist, die neue Version in den ds mod zu implementieren.

Fände es jedoch sehr gut, wenn der vpnc client in der Version 0.5 in einen zukünftigen DS-Mod einfließen würde. Die Leute, die sich auskennen, können es ja ma versuchen vpnc 0.5 für den dsmod zu komplieren.

http://www.unix-ag.uni-kl.de/~massar/vpnc/

Grüße nebri
 
Muss da was an den Parametern geändert werden? Da du dich anscheinend mit dem vpnc auskennst, hast du vielleicht noch irgendwelche Verbesserungsvorschläge für die GUI? Ich hab da ja keine Ahnung von...

MfG Oliver
 
Also:

um den hybrid Modus nutzen zu können muss vpnc mit openssl kompiliert werden. Ich hab das auf meinem linux Server soweit schon ausprobiert. Was auf der fritzbox dazu noch angepasst werden muss weiß ich halt leider nicht.

Im Makefile vom vpnc muss jedenfalls die beiden untenstehenden Zeilen auskommentiert werden. Zudem brauch vpnc die lbgcrypt. (bin mir nicht sicher ob die schon bei der 0.4 benötigt wurde)

Code:
# Comment this in to obtain a binary with certificate support which is
# GPL incompliant though.
[COLOR="red"]#[/COLOR]OPENSSL_GPL_VIOLATION = -DOPENSSL_GPL_VIOLATION
[COLOR="Red"]#[/COLOR]OPENSSLLIBS = -lssl

Wie ich das eben überblickt habe, müsste am Interface im ds mod noch hinzu, ob man psk oder hybrid mode nutzt und bei hybrid mode muss halt noch das zertifikat angegeben werden.

Code:
  --auth-mode <psk/hybrid>
  IKE Authmode <psk/hybrid>
      Authentication mode:
       * psk:    pre-shared key (default)
       * hybrid: server certificate + xauth
    Default: psk

  --ca-file <filename>
  CA-File <filename>
      filename and path to the CA-PEM-File

Des weitern gibt es nun bei natt mode 4 Möglichkeiten: natt/none/force-natt/cisco-udp. Bei cisco-udp kann man dann noch den encapsulation port angeben.

Code:
  --natt-mode <natt/none/force-natt/cisco-udp>
  NAT Traversal Mode <natt/none/force-natt/cisco-udp>
      Which NAT-Traversal Method to use:
       * natt -- NAT-T as defined in RFC3947
       * none -- disable use of any NAT-T method
       * force-natt -- always use NAT-T encapsulation even
                       without presence of a NAT device
                       (useful if the OS captures all ESP traffic)
       * cisco-udp -- Cisco proprietary UDP encapsulation, commonly over Port 10000
      Note: cisco-tcp encapsulation is not yet supported
    Default: natt

  --udp-port <0-65535>
  Cisco UDP Encapsulation Port <0-65535>
      Local UDP port number to use (0 == use random port)
      This is only relevant if cisco-udp nat-traversal is used.
      This is the _local_ port, the remote udp port is discovered automatically.
      It is especially not the cisco-tcp port
    Default: 10000

Ich denke der Rest ist weitgehen gleich geblieben. Interessant ist noch das progamm pcf2vpnc, welches aus cisco Konfigurationen vpnc Konfigs erstelt. Zudem gibt es noch das shell-script vpnc-script, das angeblich laut README die default-route ins vpn-netz setzt. Bei mir bekomm ich aber nen Syntax error beim Ausführen.

Code:
Please note that vpnc itself does NOT setup routing. You need to do this
yourself, or --script resp. "Script" in the config file.
The default script is /etc/vpnc/vpnc-script which sets a default route
to the remote network, or if the Concentrator provided split-network
settings, these are used to setup routes.

EDIT:

ich hab gerade erst gesehen, dass es im svn repository die version 0.5.1 gibt, in welcher der Fehler im vpnc-script behoben ist.
http://svn.unix-ag.uni-kl.de/vpnc/trunk/
 
Zuletzt bearbeitet:
Hi.
Ich hab das jetzt soweit mal integriert. Nur das Webinterface hab ich noch nicht angefasst.
Hättest du Lust das zu übernehmen?

Das vpnc-script ist übrigens schon im Package drin. Das Original funktioniert nicht auf der Fritz.

MfG Oliver
 

Anhänge

da mein Internet ne Weile nicht funktionierte, konnte ich den Patch leider nicht ausprobieren.

Ich habe nun den Patch eingspielt und das Image auf die Box gepackt. Leider bekomme ich dann die Meldung, dass vpnc nicht mit openssl kompiliert wurde. Habe eben schon im ds-mod etwas rumgesucht, bin nur leider nicht fündig geworden wo man das im Makefile auskommentieren muss (so war es jedenfalls beim originalen vpnc-0.5.1)

Ausschnitt aus dem org Makefile
Code:
# The license of vpnc (Gpl >= 2) is quite likely incompatible with the
# openssl license. Openssl is currently used to provide certificate
# support for vpnc (hybrid only).
# While it is OK for users to build their own binaries linking in openssl
# with vpnc and even providing dynamically linked binaries it is probably
# not OK to provide the binaries inside a distribution.
# See http://www.gnome.org/~markmc/openssl-and-the-gpl.html for further
# details.
# Some distributions like Suse and Fedora seem to think otherwise.

# Comment this in to obtain a binary with certificate support which is
# GPL incompliant though.
#OPENSSL_GPL_VIOLATION = -DOPENSSL_GPL_VIOLATION
#OPENSSLLIBS = -lcrypto
 
Wenn ich Hybrid Auth im menuconfig aktiviere, dann wird vpnc aber mit den korrekten Flags kompiliert.
Code:
mipsel-linux-ldd vpnc
        libcrypto.so.0.9.8 => /usr/lib/libcrypto.so.0.9.8 (0x00000000)
        libgcrypt.so.11 => /usr/lib/libgcrypt.so.11 (0x00000000)
        libgpg-error.so.0 => /usr/lib/libgpg-error.so.0 (0x00000000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00000000)
        libc.so.0 => not found (0x00000000)
        libdl.so.2 => /lib/libdl.so.2 (0x00000000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00000000)
        libc.so.6 => /lib/libc.so.6 (0x00000000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00000000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x00000000)
MfG Oliver
 
Entweder bin ich blind oder beim patchen scheint was schief gelaufen zu sein. Im Menuconfig kann ich vpnc 0.5.1 gar nicht auswählen. Da steht noch immer vpnc 0.4. Wenn ich dies jedoch anwähle, wird vpnc 0.5.1 ohne ssl kompiliert.
Ich habs wie im Howto des Wiki gepatcht:

Code:
patch -p < vpnc-0.5.1-patch

Hab auch gerade nochmal alles aufgeräumt mit distclean, aber brachte auch keine Erfolge.

EDIT:. hat sich erledigt. ich war echt zu blöd zum patchen. Jetzt gehts, kompiliere gerade, werd dann mich wieder hier melden
 
Zuletzt bearbeitet:
Error verifying the certificate-chain

Ich versuche gerade auch vpnc 0.5.1 auf meiner 7150 zum Laufen zu bringen, jedoch funktioniert dass noch nicht so ganz. Mit dem Patch hat bei mir alles geklappt. Mein bisheriges Problem ist das Zertifikat. Ich habe das Zertifikat von der Uni als .der runtergeladen und dieses in FriBoli/Vmware Umgebung mit Openssl in .pem umgewandelt. Dann habe ich diese Datei in /ds26-15.2/root/etc/ssl/certs kopiert (damit das Zertifikat auf der Box im Verzeichnis /etc/ssl/certs ist) und c_rehash in diesem Verzeichnis ausgeführt, damit ich dann ein Link (69xxx.0) namens dem Hash-Wert des Zertifikat zum meinem Zertifikat habe (sollte man ja auch laut vpnc readme machen).

Als ich aber vpnc per command-line starten möchte, erhalte ich folgenden Fehler:
Code:
/var/mod/root $ vpnc --gateway vpn.uni-zzzz.de --id yyyy --username xxxx --auth-mode hybrid --ca-file /etc/ssl/certs/mini-ca.pem --ca-dir /etc/ssl/certs/
Enter IPSec secret for [email][email protected][/email]:
Enter password for [email][email protected][/email]:
Error verifying the certificate-chain

Was habe ich falsch gemacht oder was habe ich noch vergessen? Ich weiß nicht mehr weiter. Im Internet bin ich nicht fündig geworden.

MfG
fred86
 
Ich kenne mich mit vpnc null aus (nie benutzt), aber die Fehlermeldung scheint darauf hinzudeuten, daß die Kette bis hinaus zum Root-Zertifikat nicht durchgeprüft werden kann. Evtl. müßtest Du die gesamte Kette in eine Datei exportieren bzw. mehrere Zertifikate als Einzeldateien verwenden. Kannst das Zertifika ja mal in einen Web-Browser importieren und schauen, ob dort die Kette vollständig ist.
 
Kannst Du vpnc dazu bringen, genauere Informationen auszugeben, wo das Problem liegt?
Was hast Du alles an Zertifikaten auf der Box installiert?
Kannst Du mit openssl das Zertifikat überprüfen?
Du brauchst nicht nur Dein eigenes Zertifikat, sondern auch alle übergeordneten Zertifikate.
 
Insgesamt habe ich nur ein Zertifikat installiert, da ich auch nur eins gesehen habe. Da ja aber der Cisco VPN Client auf'm PC auch nur dieses Zertifikat braucht, gehe ich mal davon aus, dass kein zusätzliches normalerweise gebraucht werden muss. Ihr könnt euch das Zertifikat angucken, wenn es weiterhilft: https://ncc.uni-mannheim.de/mannhattan/vpn/certificates/mini-ca.der
Bei der Hybrid-Methode braucht der Client (eigentlich) auch nur das Root-Zertifikat.

In meiner FriBoLi/Vmware Umgebung habe ich das Zertifikat mit Openssl überprüft.
Code:
openssl verify mini-ca.pem
Zuerst erhielt immer diese Meldung
Code:
error 18 at 0 depth lookup:self signed certificate
OK
Dann habe ich das Zertifikat nach /etc/ssl/certs kopiert und mit
Code:
c_rehash /etc/ssl/certs
Doing /etc/ssl/certs
mini-ca.pem => 694xxxx.0
den Link erzeugt. Und siehe da, bei der Überprüfung mit Openssl tauchte die Fehlermeldung nicht mehr auf.

Code:
openssl verify mini-ca.pem
mini-ca.pem: OK

Die Fehlermeldung, die ich bekomme, habe ich in der Datei vpnc.c entdeckt:
Code:
/* verify the certificate */
if (X509_verify_cert(verify_ctx) != 1) {
ERR_print_errors_fp(stderr);
printf("Error verifying the certificate-chain\n");
exit(1);
}
else
DEBUG(3, printf("Certificate-chain verified correctly!\n"));
 
Laß mal strace auf vpnc laufen und schau nach, ob er überhaupt auf die Datei zugreift.

Kannst Du den Debug-Level hochsetzen?

Das Zertifikat ist anscheinend die selbst generierte Zertifizierungsstelle der Uni.

Hast Du nur dieses Zertifikat oder auch noch ein anderes, mit dem Du Dich bei der Gegenstelle anmeldest?

Nachdem Du schon den Link auf das Zertifikat da stehen hast und das Zertifikat sowieso nichts geheimes ist, bringt es nichts, im Link-Namen xxx einzusetzen. Das ist sowieso nur der Hash vom Subject des Zertifikats, und jeder, der sich dafür interessiert, kann den aus dem Zertifikat berechnen.

Die Stelle, wo die Meldung herkommt, bringt auch nicht viel. Das Zertifikat wird überprüft, wenn es nicht klappt, kommt die Meldung, ansonsten ist es in Ordnung.
 
Hallo,

dieses Thema würde mich auch interessieren. Momentan habe ich eine Fritzbox 7050 angeschlossen (über LANa ins begrenzte netz), und gehe mit dem dahinter angestöpselten pc/laptop mit der cisco vpn software ins internet (anders gehts nicht, hochschule vpn zugang). somit funktioniert auf dem computer auch voip.

Aber: Es wäre sehr praktisch, wenn die Fritzbox selbst per vpn ins netz geht, damit dahinter alles wieder "normal" sein kann, und ich mein telefon, was ich dort dran habe, wieder benutzen kann :)
Nun habe ich aber bisher keine erfahrung/ahnung gesammelt mit images selbst erstellen, kompilieren etc....
Hoffentlich wird das in den mod einfließen, sodass es auch anfänger mit einigem aufwand dann gebacken bekommen :)

mFg
s
 
vpnc-0.4 ist schon im aktuellen (ds26-15.2) dsmod enthalten. Es geht hier nur um ein "Update" auf 0.5.

MfG Oliver
 
Die Uhr wars

Ich habe das Problem gelöst. Wenn die Box keinen Kontakt zu irgendeinen Timeserver (erst mit VPN möglich und das ist das Ziel für meine Fritzbox) hat, dann bleibt die Zeit bei 2001 oder so eingestellt. Wenn man dann aber noch ein Zertifikat hat, das erst später ausgestellt wurde, kann man sich ja vielleicht vorstellen, warum es nicht funktioniert.

S******
 
Man muß schon ganz schön hochblättern, um zu sehen, welche Box Du hast (7150). Signatur anlegen?

Wie hast Du herausgefunden, daß es an der Zeit lag? Gibt es irgendeinen Debug-Schalter oder ein Log, die es ermöglichen, spezifischere Fehlermeldungen als "Fehler beim Überprüfen der Zertifikatskette" zu sehen? Das wäre für andere Anwender ein hilfreicher Hinweis. Einfach nur "geht jetzt" ist nicht so schön, auch für Deine Helfer (ich meine nicht mich speziell). Gib etwas zurück, indem Du den Lösungsweg erklärst, bitte. :-)
 
Leider gibt es dort nicht viel zu erklären. Strace bekam ich nicht auf meine Fritzbox, der höchste Debuglevel
Code:
vpnc --debug 99
ergab nichts neues:
Code:
Error verifying the certificate-chain
und da ich eine andere Lösung (ohne VPN) fand, habe ich mich damit nicht mehr weiter beschäftigt. Als ich dann aber Homeoffice zum Laufen bringen wollte, brauchte ich dringend eine VPN-Lösung. Während ich mich mit der anderen Lösung abfand, musste ich immer die Uhr einstellen, da mich
Code:
01.01.2005
auf dem Display störte. So probierte ich irgendwann wieder vpnc zu starten und, oh Wunder, es funktionierte. Bis dahin war mir das Zeitproblem in Verbindung mit dem Zertifikat nicht klar. Doch irgendwann machte es Klick, weil vpnc nach einem Neustart wieder nicht funktionierte und ich überlegte, was ich bei jedem Neustart gemacht hatte. Nachdem ich die Uhr eingestellt hatte, funktionierte es auf einmal.
 
Das genügt, danke. :-) Es muß ja nicht viel sein, sondern nur nachvollziehbar.
 
Kostenlos!

Statistik des Forums

Themen
248,917
Beiträge
2,305,038
Mitglieder
378,638
Neuestes Mitglied
Patrick89