I do some work for an organization which requires me to authenticate to a Cisco VPN. Getting the VPN client setup under Mac OS X is a simple matter, but doing the same under Linux required some research. Here’s what worked for me. I’m using the 64-bit x86 version of Ubuntu, which didn’t seem to cause any hiccups:
Step 1 – Install the Cisco VPN Client:
- Check what kernel you’re running by issuing the uname -a command. You should get something like:
- Download a copy of Cisco’s VPN client for Linux. If you’re using a 2.6.x kernel, it’s important to use a 4.8.x client.
- Confirm that you have kernel sources installed for your kernel version. Check the /lib/modules/ directory.
- Download a patch matching your kernel version from http://tuxx-home.at/. I’m running 2.6.22, so I ran:
- Extract Cisco’s VPN client tarball:
- Apply the patch:
- Install the VPN client:
Linux matt-media 2.6.22-14-generic #1 SMP Tue Dec 18 05:28:27 UTC 2007 x86_64 GNU/Linux
tar -xzf vpnclient-linux-x86_64-4.8.00.0490-k9.tar.gz
patch -i ../vpnclient-linux-2.6.22.diff
Step 2 – Configure the VPN Client:
- Take a backup of a working Cisco VPN client’s configuration. The location below is where these files were located on my Mac OS X system. They’re no doubt located somewhere other than the /private folder in other OSes.
- Copy the cisco-vpnclient.tgz tarball that you just created into the /etc/opt/ directory of your Linux system, and unpack it.
- Start the vpnclient service.
- Check the name of your VPN’s profile by listing the contents of the Profiles directory. Your profile’s name will be the name of the the .pcf file, minus the .pcf extension.
- Connect to the VPN, using the profile name found above as the last argument.
tar -czf cisco-vpnclient.tgz /private/etc/opt/cisco-vpnclient
sudo tar -xzf cisco-vpnclient.tgz
sudo /etc/init.d/vpnclient_init start
sudo vpnclient connect "University of South Florida"
That’s it! You should now be prompted to enter your password, and find yourself connected!