I'm currently using an Amazon EC2 server - the basic, free version - running Ubuntu 14.04 for my work. Most of the time I use it for automated web scraping tasks and this works pretty great at the minute. As the free server is limited to 30 GB, I need to store all the collected data in a different location though.

My employer has supplied me with a very large CIFS network share, which I intend to permanently mount on my EC2, and write a cron script to facilitate regular data dumps. In order to mount the share I need to be in my employer's network, so I need VPN access on it. Support and pre-config files (.pcf) are only provided for the "official" cisco client for Linux.

I have followed all the instructions on installing the client, including running the 2 patches for it to be compatible with newer kernels, and modifying the netdevice.h file as described in this post: https://github.com/mariuszs/CiscoVpnClient-Patches. Also, both autoconfig and the Linux Kernel headers are already installed. However, I still get the same output I got the first time, and the client ultimately fails to install:

ubuntu@ip-aaa-bb-cc-ddd:/home/user/docs/vpn/vpnclient$ ./vpn_install
Sorry, you need super user access to run this script.
ubuntu@ip-aaa-bb-cc-ddd:/home/user/docs/vpn/vpnclient$ sudo ./vpn_install
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/3.13.0-74-generic/build]

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

Is the above correct [y]

Making module
linuxcniapi.c:14:28: fatal error: linux/autoconf.h: No such file or directory
 #include <linux/autoconf.h>
compilation terminated.
interceptor.c:13:28: fatal error: linux/autoconf.h: No such file or directory
 #include <linux/autoconf.h>
compilation terminated.
IPSecDrvOS_linux.c:16:28: fatal error: linux/autoconf.h: No such file or directory
 #include <linux/autoconf.h>
compilation terminated.
frag.c:3:28: fatal error: linux/autoconf.h: No such file or directory
 #include <linux/autoconf.h>
compilation terminated.
In file included from linuxkernelapi.c:1:0:
/lib/modules/3.13.0-74-generic/build/include/linux/string.h:17:24: fatal error: asm/string.h: No such file or directory
 #include <asm/string.h>
compilation terminated.
ld: cannot find linuxkernelapi.o: No such file or directory
ld: cannot find frag.o: No such file or directory
ld: cannot find linuxcniapi.o: No such file or directory
ld: cannot find IPSecDrvOS_linux.o: No such file or directory
ld: cannot find interceptor.o: No such file or directory
Failed to make module "cisco_ipsec".

Am I doing something really stupid; forgetting something completely obvious? I've been trying to work this out for several days now and it's starting to drive me kind of crazy. Any help would be greatly appreciated!

Thanks in advance!

  • Looks like you don't have autoconf installed
    – user323419
    Jan 3, 2016 at 16:43
  • nope, I did install that yesterday, didn't change anything sadly
    – nikUoM
    Jan 3, 2016 at 16:46

2 Answers 2


The install process hangs because it cannot find autoconf on your system. Ensure all if the standard repositories are enabled and then:

sudo apt-get update
sudo apt-get install autoconf

Then rerun your install script.

However, be aware that VPN software is usually against the terms of service for cloud providers. Make sure you carefully read through Amazon's terms before continuing.

  • Hi Heather, thanks for the reply. Sadly, I tried this yesterday, but it didn't fix the issue...
    – nikUoM
    Jan 3, 2016 at 16:49

The missing autoconf.h and string.h are provided with the kernel's headers, so you should install the kernel's headers for your kernel version:

sudo apt-get install linux-headers-$(uname -r)
  • Hi @kos, it turns out that the linux-headers are already installed - the command returns: 0 upgraded, 0 newly installed, 0 to remove and 180 not upgraded.
    – nikUoM
    Jan 3, 2016 at 17:18
  • @nikUoM Weird. Please verify that 1) The output of uname -r is 3.13.0-74-generic 2) /lib/modules/3.13.0-74-generic/build is a symlink to /usr/src/linux-3.13.0-74. One of two not being right might be the reason why the whole thing is breaking.
    – kos
    Jan 3, 2016 at 17:46
  • Hi @kos, this is the output from uname -r ubuntu@ip-aaa-bb-cc-ddd:~$ (uname -r) 3.13.0-74-generic And the other output: ubuntu@ip-aaa-bb-cc-ddd:~$ file /lib/modules/3.13.0-74-generic/* /lib/modules/3.13.0-74-generic/build: symbolic link to '/usr/src/linux-headers-3.13.0-74-generic' should I change that symbolic link?
    – nikUoM
    Jan 3, 2016 at 19:55
  • @nikUoM Googling for the error I found lots of reports for the same problem. Are you sure you applied the patch correctly? But anyway that patch has been unmantained for a long time (the last update was 4 years ago). Try to 1) Reapply the patch 2) If it doesn't work, apply another patch 3) If you're fine with it there are alternative solutions (askubuntu.com/a/492316/380067). Unfortunately that's as much as I can suggest, as I never had to install it myself. Per the errors I thought the missing headers were a safe guess, but apparently the problem is the installer itself.
    – kos
    Jan 4, 2016 at 6:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.