I outlined much of this in a previous blog post, but since things are slightly different (or at least were for me) on Ubuntu 10.04, I figured I’d do a follow-up while it was fresh in my mind. Note that if you’re on 32-bit Ubuntu AnyConnect works out of the box so you don’t need to do any of these steps. The issue is that there is no native 64-bit AnyConnect client for Linux so you have to install some 32-bit libraries and point AnyConnect to some libraries from Firefox to get things working.
The basic procedure remains the same as in my previous post, but I had to install some additional libraries and do things in a slightly different order this time around.- Download the AnyConnect installer from your VPN server or get a copy from your VPN administrator. (Why these clients aren’t freely available I have no idea. You can only connect to something that someone paid Cisco for, so I’m not sure why the clients can’t just be out in the wild. If you Scroogle around you may find some download links here and there but of course use at your own risk if you don’t get the client from an authorized source.)
- Do a chmod +x on the installer (which for me was called vpnsetup.sh) and then run the installer using sudo. This will throw a couple of errors but they can safely be ignored.
- Install ia32-libs and lib32nss-mdns
- sudo apt-get install ia32-libs lib32nss-mdns
- Download a fresh copy of Firefox, expand, and move to /usr/local
- I downloaded to my Downloads directory, expanded there, and did sudo cp -R firefox /usr/local
- Do a cd into /usr/local/firefox and create symlinks for the Firefox libraries in /opt/cisco/vpn/lib as follows:
- sudo ln -s libnss3.so /opt/cisco/vpn/lib/libnss3.so
- sudo ln -s libplc4.so /opt/cisco/vpn/lib/libplc4.so
- sudo ln -s libnspr4.so /opt/cisco/vpn/lib/libnspr4.so
- sudo ln -s libsmime3.so /opt/cisco/vpn/lib/libsmime3.so
- sudo ln -s libsoftokn3.so /opt/cisco/vpn/lib/libsoftokn3.so
- sudo ln -s libnssdbm3.so /opt/cisco/vpn/lib/libnssdbm3.so
- sudo ln -s libfreebl3.so /opt/cisco/vpn/lib/libfreebl3.so
- sudo ln -s libnssutil3.so /opt/cisco/vpn/lib/libnssutil3.so
- sudo ln -s libplds4.so /opt/cisco/vpn/lib/libplds4.so
- sudo ln -s libsqlite3.so /opt/cisco/vpn/lib/libsqlite3.so
- Start the VPN daemon: sudo /etc/init.d/vpnagentd_init start (If it doesn’t start without errors, double-check all your symlinks.)
- Launch AnyConnect. You should have a launcher under Applications -> Internet, but If not you can launch it from /opt/cisco/vpn/bin/vpnui using your normal user account (i.e. not using sudo).
After AnyConnect launches you can enter your VPN server address, accept the certificate, and log in as per usual.