view content/Linux/compiling-shrewsoft-vpn-on-pi.md @ 94:b952a0ea1aaa

add some comments
author Dirk Olmes <dirk@xanthippe.ping.de>
date Thu, 14 Feb 2019 17:53:37 +0100
parents 0d4d403418d0
children 1d9382b0329b
line wrap: on
line source

Title: Compiling the Shrew Soft VPN client on Raspberry Pi
Date: 2013-11-04
Lang: en

At work we deploy our software on machines that are located at customers sites. To access these machines we have created a VPN infrastructure that allows us to access the machines, deploy updates etc.

I use [Shrewsoft's VPN client](https://www.shrew.net/software) to connect to the VPN infrastructure. This works so well on Linux that we recently began to replace the commercial VPN client used on Mac OS X with the Shrew Soft client - but that's a different story.

Part of our infrastructure is a [Zabbix](https://www.zabbix.org/wiki/Main_Page) installation which is used to monitor our software via JMX. Zabbix features nice [screens](https://www.zabbix.com/documentation/2.0/manual/config/visualisation/screens) that can be used to create a dashboard-style overview over the current state of all hosts.

To give everyone in the office more visibility on how our software is doing I'd like to display custom Zabbix screens on a big display located in the office. A [Raspberry Pi](http://www.raspberrypi.org/) looks like the perfect machine for powering the display - it's cheap, doesn't use much power and should even have a chrome browser to run in kiosk mode.

Sounds like an interesting pet project so I ordered a Pi and some equipment. When it finally arrived I flashed the standard [NOOBS](http://downloads.raspberrypi.org/NOOBS_latest) starter pack. The main hurdle will be getting the Shrew Soft VPN client to run, I don't want to fiddle with the Linux distro right now. That'll be a hobby project for another day.

Before attempting to compile the source all prerequisites must be installed:

    apt-get install cmake
    apt-get install flex
    apt-get install bison
    apt-get install libedit-dev
    apt-get install libssl-dev

I did not install Qt and friends - the basic command line client will be sufficient for my setup. Connecting to the VPN will be fully automated anyway.

The next step is to download the sources, unpack the tarball and compile the source. This turned out to be quite smooth using

    cmake -DCMAKE_INSTALL_PREFIX=/usr -DETCDIR=/etc -DNATT=YES

followed by the typical

    make
    make install

sequence.

Now that the VPN client is installed, I exported the VPN settings from my Linux desktop machine and tried to run the command line client

    ikec -r vpn

I should have been warned by the smooth compile. Of course the VPN client does not work out of the box, it crashes with

    *** glibc detected *** ikec: double free or corruption (out): 0x0191fa70 ***
    Aborted

Seems like I have to start digging the code. But that's another story for another day. Stay tuned.