vpnc & Nortel Contivity VPN
Freitag, April 2nd, 2010Um unter Ubuntu 9.04 (Jaunty Jackalope), und wahrscheinlich auch neueren Versionen, eine Verbindung zu einem Nortel Contivity VPN herzustellen benötigt es einen veränderten VPN Client, der leider nicht standardmäßig als Paket im Apt-Repository zur Verfügung steht. Speziell geht es darum, dass das Paket vpnc kompatibel ist zu cisco3000 VPN Concentrator (Cisco’s EasyVPN equipment) und nicht zu Nortel Contivity VPN. Der Nortel Client ist leider nicht kostenlos verfügbar und somit entstand ein zu Nortel kompatibler vpnc, der unter svn.unix-ag.uni-kl.de exportiert werden kann:
# Abhängigkeiten root@host:/opt aptitude install libgcrypt-dev gnutls-dev # Nortel Client exportieren, zum Erscheinen dieses Eintrages lag Rev. 449 vor root@host:/opt svn export http://svn.unix-ag.uni-kl.de/vpnc/branches/vpnc-nortel/ # Nortel Client kompilieren u. installieren root@host:/opt/vpnc-nortel make root@host:/opt/vpnc-nortel make install
Nach erfolgreicher Kompilierung geht es an den schwierigsten Teil, der allerdings nur dann schwierig ist, wenn man wenig Informationen zu dem vorliegenden Netzwerk hat. Es gibt massig Threads in diversen Foren (auch im Ubuntu Forum) die sich mit diesem Thema beschäftigen. Leider geht selten hervor, welche Anforderungen die Umgebung an den Client stellt. Ich möchte hier kurz die Anforderungen erläutern, die sich mir stellten:
- IPSec gateway: bekannt
- IPSec ID: bekannt
- IPSec secret: bekannt
- Xauth username: bekannt
- IKE DH Group: unbekannt (default dh2)
- IKE Authmode: bekannt
- Passwort + SecureID-code: bekannt
Bei den ersten 4 Informationen handelt es sich um den Host, zu dem die Verbindung hergestellt werden soll, Gruppen-Name + Gruppen Passwort, sowie den Username (der übrigens auch einen Slash enthalten kann; Groß-/Kleinschreibung wird ignoriert). Mit Hilfe der Dokumentation kommt man schnell an die nötigen Konfigurationswerte:
user@host:/opt/nortel-vpnc$ ./vpnc --long-help
IKE DH Group: es gibt 3 Möglichkeiten (1, 2, 5)
IKE Authmode: gpassword steht für Nortel Group Security - Group Password Authentication
Das führt nun folgender Konfiguration:
IPSec gateway [gateway] IPSec ID [groupname] IPSec secret [grouppassword] Xauth username [username] Vendor nortel Script /opt/vpnc-nortel/vpnc-script IKE Authmode gpassword
Diese Konfiguration liegt bei mir unter /etc/vpnc.conf und gehört root. Durch die Option “Script /opt/vpnc-nortel/vpnc-script” wird vpnc mitgeteilt, dass die Verbindung mit Hilfe unseres Scripts unter /etc/opt/vpnc-nortel aufgebaut wird und nicht mit einem unter /etc/… vermuteten Script. Auf einen symbolischen Link dorthin oder sogar eine Kopie des Scripts kann somit verzichtet werden. Die Konfiguration generell ist sinnvoll, da man nun beim Starten des Clients nur noch das Passwort eingeben muss. Man könnte natürlich noch den Username weglassen um verschiedene Logins zu ermöglichen.
Startet man nun das Script:
user@host:/opt/vpnc-nortel$ sudo ./vpnc
Gibt man sein Passwort, direkt gefolgt von dem SecureID-Code ein (ohne Leerzeichen, Plus-Zeichen, etc.). Die Meldung: “VPNC started in background (pid: 10636)…” teilt nun mit, dass eine Verbindung aufgestellt wurde.
Mit ifconfig kann man nun ein neues Interface mit der zugeteilten IP Adresse sehen (z.B. tun0) sowie mit dem Befehl route die Routentabelle die nun das neue Interface verwenden sollte.
Die Verbindung wird geschlossen mit:
user@host:/opt/vpnc-nortel$ sudo ./vpnc-disconnect
Bei Verbindungsprobemen kann der Debug-Modus helfen:
user@host:/opt/vpnc-nortel$ sudo ./vpnc --debug [0/1/2/3/99]