Installation Cisco-Client für VPN unter Linux
Installationsanleitung Cisco Client für LinuxAm Beispiel einer SuSE 8.1, 8.2
Softwarevoraussetzungen
Vorbereitungen
Entpacken
Installieren
Konfiguration
Start der Verbindung
Verbindung testen
Probleme
Softwarevoraussetzungen:
- Kernel - Quellen
- make
Und die Software, die diese verlangen!
Vorbereitungen:
Der Computer sollte eine funktionierende Verbindung zum Internet haben.
Software besorgen:
Zunächst sollte man sich den aktuellen Cisco Client von hier besorgen. Der Link ist passwortgeschützt. Ein Download ist nur mit Ihrem gültigen ZDV - Account und dazugehörigem Passwort möglich. Der Download kann mit jedem Browser durchgeführt werden.
Entpacken:
Nachdem das Programm downgeloadet ist, muß man es entpacken. Da es sich hierbei um einen gzip komprimierten Tarball handelt macht man das mit dem Befehl tar -xzf vpnclient-linux.tar.gz. Hier gilt natürlich der Hinweis, daß sich die Software von Zeit zu Zeit ändert. Deshalb ist bei Bedarf, der Dateiname anzupassen. Der tar-Befehl legt beim Entpacken unter dem aktuellen Verzeichnis ein neues Verzeichnis mit dem Namen vpnclient an. Danach wechselt man in dieses Verzeichnis und macht ein su - um Rootrechte zu erlangen. Auch möglich ist es sich mit ssh -l root localhost lokal einzuloggen und somit ebenfalls Rootrechte zu erlangen.
|
aa@gertrud:~> tar -xzf vpnclient-linux-3.7.2.Rel-k9.tar.gz
aa@gertrud:~> su - Password: gertrud:~> cd ~aa/vpnclient/ # Wer einen anderen Benutzernamen verwendet, muß aa gegen diesen austauschen. gertrud:/home/aa/vpnclient # |
Installieren:
(Wer mag kann sich vorher die Lizenz des Programmes durchlesen, sie ist unter license.txt oder license.rtf zu finden.) Danach ruft man das Installationsprogramm vpn_install auf . Und beantwortet wahrheitsgemäß sämtliche Fragen. Normalerweise findet das Progamm die Pfade selbst. Sofern diese Pfade korrekt sind, sind die einzelnen Zeilen lediglich mit einem Enter zu bestätigen...
|
gertrud:/home/aa/vpnclient # ./vpn_install
Cisco Systems VPN Client Version 4.0.1 (A) Linux Installer Copyright (C) 1998-2001 Cisco Systems, Inc. All Rights Reserved. Please review the license agreement found in license.txt Directory where binaries will be installed [/usr/local/bin] Automatically start the VPN service at boot time [yes] In order to build the VPN kernel module, you must have the kernel headers for the version of the kernel you are running. For RedHat 6.x users these files are installed in /usr/src/linux by default For RedHat 7.x users these files are installed in /usr/src/linux-2.4 by default For Suse 7.3 users these files are installed in /usr/src/linux-2.4.10.SuSE by de fault Directory containing linux kernel source code [/lib/modules/2.4.19-4GB/build] * Binaries will be installed in "/usr/local/bin". * Modules will be installed in "/lib/modules/2.4.19-4GB/CiscoVPN". * The VPN service will be started AUTOMATICALLY at boot time. * Kernel source from "/lib/modules/2.4.19-4GB/build" will be used to build the m odule. Is the above correct [y] y Making module Create module directory "/lib/modules/2.4.19-4GB/CiscoVPN". Copying module to directory "/lib/modules/2.4.19-4GB/CiscoVPN". Creating start/stop script "/etc/init.d/vpnclient_init". insserv: script vpnclient_init is not executable, skipped! vpnclient_init 0:off 1:off 2:off 3:off 4:off 5:off 6:off Enabling start/stop script for run level 3,4 and 5. insserv: script vpnclient_init is not executable, skipped! vpnclient_init 0:off 1:off 2:off 3:off 4:off 5:off 6:off insserv: script vpnclient_init is not executable, skipped! Creating VPN configuration file "/etc/CiscoSystemsVPNClient/vpnclient.ini". Installing bundled user profiles in "/etc/CiscoSystemsVPNClient/Profiles/": * New Profiles : sample Copying binaries to directory "/usr/local/bin". Setting permissions. /usr/local/bin/cvpnd (setuid root) /etc/CiscoSystemsVPNClient (world writeable) /etc/CiscoSystemsVPNClient/Profiles (world writeable) /etc/CiscoSystemsVPNClient/Certificates (world writeable) * You may wish to change these permissions to restrict access to root. * You must run "/etc/init.d/vpnclient_init start" before using the client. * This script will be run AUTOMATICALLY every time you reboot your computer. gertrud:/home/aa/vpnclient # |
Nun sollte der Client installiert sein. Jedoch startet das Modul nicht wie angegeben beim Neustart automatisch. Sofern das gewünscht ist muss von Hand nachgearbeitet werden. Zum Test führen wir mal folgenden Befehl aus:
|
gertrud:/home/aa/vpnclient # /etc/init.d/vpnclient_init start
Starting /usr/local/bin/vpnclient: Warning: loading /lib/modules/2.4.19-4GB/CiscoVPN/cisco_ipsec will taint the kernel: no license See http://www.tux.org/lkml/#export-tainted for information about tainted modules Module cisco_ipsec loaded, with warnings Done gertrud:/home/aa/vpnclient # |
Obwohl die Ausgabe ein warning enthält darf sie als positives Ergebnis gewertet werden. Der Rechner sollte die erfolgreich Installation mit einem Piepsen bestätigen (sofern dies entsprechend konfiguriert ist).
Konfiguration:
Nun geht es daran den Cisco Client für das Uninetz fit zu machen. Hierzu kopieren wir uns die Datei /etc/CiscoSystemsVPNClient/Profiles/sample.pcf nach /etc/CiscoSystemsVPNClient/Profiles/uni-mainz.pcf . Und bearbeiten sie dann mit dem Editor der Wahl, daß sie dann wie im folgenden dargestellt aussieht.
|
gertrud:/home/aa/vpnclient # cp /etc/CiscoSystemsVPNClient/Profiles/sample.pcf /etc/CiscoSystemsVPNClient/Profiles/uni-mainz.pcf
gertrud:/home/aa/vpnclient # emacs /etc/CiscoSystemsVPNClient/Profiles/uni-mainz.pcf gertrud:/home/aa/vpnclient # cat /etc/CiscoSystemsVPNClient/Profiles/uni-mainz.pcf [main] Description=VPN-Verbindung in das Netz der Universität Mainz Host=vpn.uni-mainz.de # VPN - Server der Universität Mainz AuthType=1 GroupName=secure-all # Art der Verbindung secure-all oder secure-uni EnableISPConnect=0 ISPConnectType=0 ISPConnect= ISPCommand= Username=MeinAccount # Der schon mehrfach zitierte ZDV Account SaveUserPassword=0 # Soll Das Passwort gespeichert werden? Besser nicht! Ja = 1 Nein = 0 EnableBackup=0 BackupServer= EnableNat=1 # Diese Einstellung ist zwingend erforderlich! Wenn wir hiner einer Firewall sitzen oder ein DSL-Router Network Adress Translation macht. CertStore=0 CertName= CertPath= CertSubjectName= CertSerialHash=00000000000000000000000000000000 DHGroup=2 ForceKeepAlives=0 gertrud:/home/aa/vpnclient # |
Nun sollte der CiscoSystems VPN Client hinreichend konfiguriert sein um einen ersten Start zu versuchen...
Start der Verbindung:
Um den Klienten zu starten rufen wir nun das vorhin kompilierte Programm /usr/local/bin/vpnclient auf. Als Parameter (was es denn tun soll) wählen wir connect. Als Profil bezeichnen wir das von uns erstellte Profil uni-mainz. Als Group Passwort zu uni-secure trägt man public ein. Im Folgenden verlangt dasProgramm noch Ihren ZDV - Account und das dazugehörige Passwort. Das sieht dann so aus.
|
gertrud:/home/aa/vpnclient # /usr/local/bin/vpnclient connect uni-mainz
Cisco Systems VPN Client Version 3.6.2 (A) Copyright (C) 1998-2002 Cisco Systems, Inc. All Rights Reserved. Client Type(s): Linux Running on: Linux 2.4.19-4GB #1 Fri Sep 13 13:14:56 UTC 2002 i686 Enter a group password: Initializing the VPN connection. Contacting the gateway at 134.93.9.22 Authenticating user. User Authentication for uni-mainz... Enter Username and Password. Username [MeinAccount]: Password []: Save Password (Y/N) [N]: Negotiating security policies.Securing communication channel. Your VPN connection is secure. VPN tunnel information. Client address: 134.93.176.12 Server address: 134.93.9.22 Encryption: 168-bit 3-DES Authentication: HMAC-MD5 IP Compression: LZS NAT passthrough is active on port UDP 4500 Local LAN Access is disabled |
Jetzt ist man schon drin!! Die VPN - Verbindung ins Uninetz steht.
Verbindung testen:
Um sich dessen auch zu versichern kann man sich mal die Hops zum virtuellen Eingangstor der Universität (uni-mainz.de) anzeigen lassen. Dies kann man mit dem Befehl tracepath erledigen.
|
aa@gertrud:~> su
Password: aa@gertrud:~> /usr/sbin/tracepath uni-mainz.de 1?: [LOCALHOST] pmtu 1356 1: vpn1.zdv.Uni-Mainz.DE (134.93.9.22) 86.042ms 2: g1341-0032-1.zdv.Uni-Mainz.DE (134.93.9.254) 86.363ms 3: jogudc3.Uni-Mainz.DE (134.93.130.77) 85.435ms reached Resume: pmtu 1356 hops 3 back 3 aa@gertrud:~> |
Hier sieht man nun deutlich, daß man sich schon innerhalb des Uninetzes befindet.
Probleme:
Wlan Devices
Mit älteren Versionen des Klienten kam es zu folgendem Problem: Da sich die Allnet ALL0192, die vom ZDV in einer Sonderaktion veräußert wurde, als wlan0 - Interface installierte, waren hierfür besondere Einstellungen an der VPN - Software erforderlich. Ein Konfigurationsbeispiel ist hier [...] dargestellt. Dieses Problem besteht mit der Version 4 des des Clients nicht mehr.
Atheros Treiber
Diese [...] Anleitung ist auch hinsichtlich wlan - Karten mit Atheros Chipsatz anzuwenden. Dieses besitzen einen Treiber der sie als ath0 Interface registriert. Und dieses wird vom vpn client nicht erkannt. Nur statt wlan ist dann ath zu schreiben. Also im wesentlichen so:
Ratech Treiber
Atheros Treiber
Diese [...] Anleitung ist auch hinsichtlich wlan - Karten mit Atheros Chipsatz anzuwenden. Dieses besitzen einen Treiber der sie als ath0 Interface registriert. Und dieses wird vom vpn client nicht erkannt. Nur statt wlan ist dann ath zu schreiben. Also im wesentlichen so:
|
else if(!strncmp(dev->name,"ath",3) && (dev->name[3]>='0' && dev->name[3]<='9'))
{ rc=1; } |
Diese [...] Anleitung ist auch hinsichtlich wlan - Karten mit Ratech 2400 Chipsatz anzuwenden. Diese Karte wird unter Linux mit dem rt2400 - Treiber betrieben. Dieser registriert sie als ra0 Interface. Und dieses wird vom vpn client nicht erkannt. Nur statt wlan ist dann ra zu schreiben. Das heisst:
|
else if(!strncmp(dev->name,"ath",2) && (dev->name[2]>='0' && dev->name[2]<='9'))
{ rc=1; } |
Kernelversion
Eventuell installiert sich der Client mit einer Kernel - Version die nicht ganz dem laufenden Kernel entspricht. Das würde dann zum Beispiel so aussehen:
|
linux:/data/vpnclient # /etc/init.d/vpnclient_init start
Starting /usr/local/bin/vpnclient: /lib/modules/2.4.20-4GB-athlon/CiscoVPN/cisco_ipsec: kernel-module version mismatch /lib/modules/2.4.20-4GB-athlon/CiscoVPN/cisco_ipsec was compiled for kernel version 2.4.20-4GB while this kernel is version 2.4.20-4GB-athlon. Failed (insmod) linux:/data/vpnclient # |
Wenn mann in Zeile 53 im Init - Script /etc/init.d/vpnclient_init ein -f hinter das insmod macht motzt das Programm zwar immernoch, das Modul wird aber trotzdem geladen.
In etwa so:
|
48 PC=/lib/modules/preferred/CiscoVPN
49 else 50 PC=/lib/modules/`uname -r`/CiscoVPN 51 fi 52 if [ -d $PC ] ; then 53 /sbin/insmod -f ${PC}/${VPNMOD} 54 if [ "$?" != "0" ] ; then 55 echo "Failed (insmod)" |
11.8.2003