Google Plus

Cisco VPN client in ubuntu Karmic , Solved

Written by Mel Kham on . Posted in Linux tutorials

Today i will show you how to make vpn cisco client working under Ubunto 9.10.

What is Cisco VPN Client : Cisco vpn client allows you to establish encrypted VPN tunnels for highly secure remote connectivity for your mobile employees or teleworkers.






First download the cisco client :

wget ftp://ftp.xxxxxxx.fr/pub/vpn/linux/vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz

extract with :

tar  -zxvf    vpnclient-linux-x86_64-4.8.02.0030-k9.tar.gz

Enter the Directory. and try to install .

unixmen@unixmen-desktop:~/Download/vpnclient$ sudo  ./vpn_install 

Output :

Cisco Systems VPN Client Version 4.8.02 (0030) Linux Installer
Copyright (C) 1998-2006 Cisco Systems, Inc. All Rights Reserved.

By installing this product you agree that you have read the
license.txt file (The VPN Client license) and will comply with
its terms.


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.


Directory containing linux kernel source code [/lib/modules/2.6.31-14-generic/build]

* Binaries will be installed in "/usr/local/bin".
* Modules will be installed in "/lib/modules/2.6.31-14-generic/CiscoVPN".
* The VPN service will be started AUTOMATICALLY at boot time.
* Kernel source from "/lib/modules/2.6.31-14-generic/build" will be used to build the module.

Is the above correct [y]

Making module
make -C /lib/modules/2.6.31-14-generic/build SUBDIRS=/home/unixmen/Download/vpnclient modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.31-14-generic'
CC [M] /home/unixmen/Download/vpnclient/linuxcniapi.o
CC [M] /home/unixmen/Download/vpnclient/frag.o
CC [M] /home/unixmen/Download/vpnclient/IPSecDrvOS_linux.o
CC [M] /home/unixmen/Download/vpnclient/interceptor.o
/home/unixmen/Download/vpnclient/interceptor.c: In function ‘interceptor_init’:
/home/unixmen/Download/vpnclient/interceptor.c:132: error: ‘struct net_device’ has no member named ‘hard_start_xmit’
/home/unixmen/Download/vpnclient/interceptor.c:133: error: ‘struct net_device’ has no member named ‘get_stats’
/home/unixmen/Download/vpnclient/interceptor.c:134: error: ‘struct net_device’ has no member named ‘do_ioctl’
/home/unixmen/Download/vpnclient/interceptor.c: In function ‘add_netdev’:
/home/unixmen/Download/vpnclient/interceptor.c:271: error: ‘struct net_device’ has no member named ‘hard_start_xmit’
/home/unixmen/Download/vpnclient/interceptor.c:272: error: ‘struct net_device’ has no member named ‘hard_start_xmit’
/home/unixmen/Download/vpnclient/interceptor.c: In function ‘remove_netdev’:
/home/unixmen/Download/vpnclient/interceptor.c:294: error: ‘struct net_device’ has no member named ‘hard_start_xmit’
make[2]: *** [/home/unixmen/Download/vpnclient/interceptor.o] Error 1
make[1]: *** [_module_/home/unixmen/Download/vpnclient] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-14-generic'
make: *** [default] Error 2
Failed to make module "cisco_ipsec.ko".

Now we will patch this tool with vpnclient-linux-2.6.31-final.diff ( to find via google)

unixmen@unixmen-desktop:~/Download/vpnclient$ sudo  patch < ./vpnclient-linux-2.6.31-final.diff
patching file interceptor.c


For 64 bit try with : ( via to find via google)

patch < ./vpnclient-linux-4.8.02-64bit.patch

Next we must edit a kernel source file with

sudo sed -i 's/const struct net_device_ops *netdev_ops;/struct net_device_ops *netdev_ops;/' `find /usr/src -name netdevice.h`

Now install again

unixmen@unixmen-desktop:~/Download/vpnclient$ sudo  ./vpn_install 

Output :

Cisco Systems VPN Client Version 4.8.02 (0030) Linux Installer
Copyright (C) 1998-2006 Cisco Systems, Inc. All Rights Reserved.

By installing this product you agree that you have read the
license.txt file (The VPN Client license) and will comply with
its terms.


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.


Directory containing linux kernel source code [/lib/modules/2.6.31-14-generic/build]

* Binaries will be installed in "/usr/local/bin".
* Modules will be installed in "/lib/modules/2.6.31-14-generic/CiscoVPN".
* The VPN service will be started AUTOMATICALLY at boot time.
* Kernel source from "/lib/modules/2.6.31-14-generic/build" will be used to build the module.

Is the above correct [y]

Making module
make -C /lib/modules/2.6.31-14-generic/build SUBDIRS=/home/unixmen/Download/vpnclient modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.31-14-generic'
CC [M] /home/unixmen/Download/vpnclient/linuxcniapi.o
CC [M] /home/unixmen/Download/vpnclient/frag.o
CC [M] /home/unixmen/Download/vpnclient/interceptor.o
/home/unixmen/Download/vpnclient/interceptor.c: In function ‘interceptor_init’:
/home/unixmen/Download/vpnclient/interceptor.c:140: warning: assignment discards qualifiers from pointer target type
CC [M] /home/unixmen/Download/vpnclient/linuxkernelapi.o
LD [M] /home/unixmen/Download/vpnclient/cisco_ipsec.o
Building modules, stage 2.
MODPOST 1 modules
WARNING: could not find /home/unixmen/Download/vpnclient/.libdriver.so.cmd for /home/unixmen/Download/vpnclient/libdriver.so
CC /home/unixmen/Download/vpnclient/cisco_ipsec.mod.o
LD [M] /home/unixmen/Download/vpnclient/cisco_ipsec.ko
make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-14-generic'
Create module directory "/lib/modules/2.6.31-14-generic/CiscoVPN".
Copying module to directory "/lib/modules/2.6.31-14-generic/CiscoVPN".
Already have group 'bin'

Creating start/stop script "/etc/init.d/vpnclient_init".
/etc/init.d/vpnclient_init
Enabling start/stop script for run level 3,4 and 5.
Creating global config /etc/opt/cisco-vpnclient

Installing license.txt (VPN Client license) in "/opt/cisco-vpnclient/":
/opt/cisco-vpnclient/license.txt

Installing bundled user profiles in "/etc/opt/cisco-vpnclient/Profiles/":
* New Profiles : sample

Copying binaries to directory "/opt/cisco-vpnclient/bin".
Adding symlinks to "/usr/local/bin".
/opt/cisco-vpnclient/bin/vpnclient
/opt/cisco-vpnclient/bin/cisco_cert_mgr
/opt/cisco-vpnclient/bin/ipseclog
Copying setuid binaries to directory "/opt/cisco-vpnclient/bin".
/opt/cisco-vpnclient/bin/cvpnd
Copying libraries to directory "/opt/cisco-vpnclient/lib".
/opt/cisco-vpnclient/lib/libvpnapi.so
Copying header files to directory "/opt/cisco-vpnclient/include".
/opt/cisco-vpnclient/include/vpnapi.h

Setting permissions.
/opt/cisco-vpnclient/bin/cvpnd (setuid root)
/opt/cisco-vpnclient (group bin readable)
/etc/opt/cisco-vpnclient (group bin readable)
/etc/opt/cisco-vpnclient/Profiles (group bin readable)
/etc/opt/cisco-vpnclient/Certificates (group bin readable)
* 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.


You can start The daeamon like this :

sudo /etc/init.d/vpnclient_init start

and start connecting from command line

vpnclient connect

output :

Cisco Systems VPN Client Version 4.8.02 (0030)
Copyright (C) 1998-2007 Cisco Systems, Inc. All Rights Reserved.
Client Type(s): Linux
Running on: Linux 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686
Config file directory: /etc/opt/cisco-vpnclient

The command you are trying to execute requires additional parameters.
Usage:
vpnclient connect [user ] [eraseuserpwd | pwd ]
[nocertpwd]
vpnclient disconnect
vpnclient stat [reset] [traffic] [tunnel] [route] [repeat]
vpnclient notify
vpnclient verify [autoinitconfig]
vpnclient autoinit


Is all, you have cisco vpn client installed. enjoy.

For questions please refer to our Q/A forum at : http://ask.unixmen.com

Mel Kham

Founder of Unixmen, Living in Amsterdam. Am working in my free time to help people to understand the Opensource and to explain them in easy way how to make the fist steps to the the light. Working day and night with my Co-founder Zinovsky to keep this website live even with less resources.
  • fubar
  • pirat9

    i Know this . i gave not the link to Download, because its a commercial product , but happy to hear that working for you

  • Levy

    I have applied this solution.
    It works perfectly.
    Nevertheless I don’t understand why I have to do this
    change in the file netdevice.h.

  • skolem

    Finally I am deceived. The patch does not work.
    The module is compiled, the connection is established, phase 1 and 2 and is cut after a few seconds.
    It depends of the software because in the same context, the vpnclient of my old PC, with an old linux system,
    fedora core 7, works perfectly.

Like us on Facebook

This week Top Posts

Write for us

Recent Comments

Anders Jackson

|

As I understand it so do VLC use same encoders as ffmpeg. And yes, there are less code that can break when you use command line instead of a graphical UI.

And may I ask what mono has to do with VLC? *facepalm*

Anders Jackson

|

Just some thoughts about Java.

OpenJDK7 are now THE Java implementation and Oracles are just one more of the reimplementations. So you should not need to install Oracles version.

And you really don’t need to remove the OpenJDK7 installation to also have Sun Java JDK 7. Just run

sudo update-java-alternatives –list

and select which java you want to have as default java of all that is installed.

And if you want to run a program with one special version, check manpage for java-wrappers how to do that.

man java-wrappers

so you can run java program rasterizer like this:

JAVA_FLAVOR=openjdk rasterizer
JAVA_ARGS=-Xmx80m rasterizer

JAVA_BINDIR=/usr/share/

etc

Anders Jackson

|

Yes, it is. If you are a “5 years old schizophrenic kid” who can’t restrict what effects to use and what to not use. It’s actually usefull, if you can restrain yourself.

Anders Jackson

|

Agree with BA. You should teach how to remove telnetd from your servers, and tell them to use SSH instead.

And explain that telnet is not secured. It’s easy for anyone to see what you type in clear text or MIM-attacks.

Or you might want to add a kerberos version of telnetd and se to it that it denies any try without kerberos authorization.

The tool telnet is usefull, for example to explain how SMTP protocoll or HTTP-protocoll works by making the user be the client (mail client or web client).
But you do not need to install telnetd for that.

Anders Jackson

|

Can you resolve that name on your machine?

$ getent hosts server.example.com
192.168.0.10 server.example.com

Where this should be your IP-address and then all aliases for that machine (where you obviously change DNS name to your own. ;-)

 
IDG Tech Network
Copyright © 2008-2013 Unixmen.com .
Maintained by Anblik .