Skip to content

Instantly share code, notes, and snippets.

@dysinger
Created January 31, 2017 22:46
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save dysinger/598dccc1e3e19348c2d01c5a222445af to your computer and use it in GitHub Desktop.
Save dysinger/598dccc1e3e19348c2d01c5a222445af to your computer and use it in GitHub Desktop.
Ubuntu L2TP Gnome Network Manager Plugin (Cisco VPNs)
#!/bin/bash -eux
cat >Dockerfile<<\EOF
FROM ubuntu:16.10
RUN apt-get update
RUN apt-get -y install build-essential git ruby-dev
RUN gem install fpm
ENV NETWORK_MANAGER_L2TP 1.2.4
RUN git clone --branch $NETWORK_MANAGER_L2TP \
https://github.com/nm-l2tp/network-manager-l2tp.git \
/usr/src/network-manager-l2tp
RUN apt-get -y install autoconf intltool libglib2.0-dev libgtk-3-dev \
libnm-glib-vpn-dev libnm-gtk-dev libnma-dev libsecret-1-dev ppp-dev
RUN ( cd /usr/src/network-manager-l2tp ; \
./autogen.sh ; \
./configure \
--disable-static \
--libdir=/usr/lib/x86_64-linux-gnu \
--libexecdir=/usr/lib/NetworkManager \
--localstatedir=/var \
--prefix=/usr \
--sysconfdir=/etc \
--with-gnome=yes \
--with-pppd-plugin-dir=/usr/lib/pppd/2.4.7 ; \
make ; \
make install DESTDIR=/network-manager-l2tp ; \
fpm --description "L2TP and L2TP/IPsec support for NetworkManager" \
-s dir \
-t deb \
-n network-manager-l2tp-gnome \
-v $NETWORK_MANAGER_L2TP \
-d libc6 \
-d libdbus-glib-1-2 \
-d libglib2.0-0 \
-d libgtk-3-0 \
-d libnm-glib-vpn1 \
-d libnm-util2 \
-d libnm0 \
-d libnma0 \
-d libsecret-1-0 \
-d strongswan \
-d xl2tpd \
-C /network-manager-l2tp \
-p /network-manager-l2tp-gnome-$NETWORK_MANAGER_L2TP.deb \
usr )
EOF
# BUILD DEBIAN PACKAGE IN DOCKER CONTAINER
docker build -t ubuntu-l2tp .
# DEPOSIT THE BINARIES INTO A DROP DIRECTORY
mkdir -p /tmp/$(PWD)
docker run --rm -i -t -v /tmp/$(PWD):/drop ubuntu-l2tp \
bash -c 'cp /*.deb /drop'
# INSTALL THE DEBIAN PACKAGE
sudo (dpkg -i /tmp/$(PWD)/*.deb || apt-get -y -f install)
# DISABLE XL2TPD SERVICE
sudo systemctl stop xl2tpd
sudo systemctl disable xl2tpd
# DISABLE APPARMOR FOR CHARON & STROKE
sudo ln -sf /etc/apparmor.d/usr.lib.ipsec.charon /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.lib.ipsec.charon || true
sudo ln -sf /etc/apparmor.d/usr.lib.ipsec.stroke /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.lib.ipsec.stroke || true
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment