On Open Source Linux Client As A Cisco VPN Anyconnect Replacement

OpenConnect Client

I’m not very fond of having to install closed source software on a Linux systems I administrate and try to avoid if at all possible. Unfortunately I was very close at having to do just this recently when I needed to connect to a network behind a Cisco IPSec VPN gateway. Cisco has a software package for Linux for this but apart from it being not open source the installation process is far from confidence inspiring. But then I noticed that there is actually an open source Ubuntu NetworkManager plugin that can be installed straight from the Debian repository: OpenConnect!

Installation is (almost) as straight forward as it could be. Ubuntu 16.04 requires the following package to be installed:

sudo apt-get install network-manager-openconnect-gnome

After the installation a new VPN-plugin becomes available in the network manager as shown in the screenshot at the top. For my setup I then needed to do the following things:

  • Supply the VPN-server’s domain name in the main configuration dialog box.
  • Enter the username and password during the first tunnel establishment.

That’s all there was to it and I got a connection to the VPN server the first time I tried. For some strange reason, however, the DNS server was not configured correctly during the connection establishment and I’m not sure if that’s a problem with the VPN connector or the VPN server setup on the other side. In any case this can easily be fixed by clicking on the IPv4 tab of the VPN configuration in the NetworkManager and choosing ‘Automatic (VPN) addresses only’ as configuration method and then supplying the DNS server’s IP address manually in the provided input field for DNS server addresses. Since I wasn’t aware of the DNS server’s address on the other end I used Google’s DNS server (8.8.8.8) which worked just fine because the network on the other side provided Internet access.