From f4ea08c29d6f45abde4d31e7cb8f72ef1b0cda92 Mon Sep 17 00:00:00 2001 From: hwdsl2 Date: Sat, 15 Feb 2014 23:15:11 -0800 Subject: [PATCH] --- ...tall Script for Ubuntu 12.04 on Amazon EC2 | 247 ++++++++++++++++++ 1 file changed, 247 insertions(+) create mode 100644 IPSec L2TP VPN Auto Install Script for Ubuntu 12.04 on Amazon EC2 diff --git a/IPSec L2TP VPN Auto Install Script for Ubuntu 12.04 on Amazon EC2 b/IPSec L2TP VPN Auto Install Script for Ubuntu 12.04 on Amazon EC2 new file mode 100644 index 0000000..35c8ab0 --- /dev/null +++ b/IPSec L2TP VPN Auto Install Script for Ubuntu 12.04 on Amazon EC2 @@ -0,0 +1,247 @@ +#!/bin/sh +# +# Amazon EC2 user-data file for automatic configuration of a VPN +# on a Ubuntu server instance. Tested with 12.04. +# +# DO NOT RUN THIS SCRIPT ON YOUR PC OR MAC! THIS IS MEANT TO BE RUN WHEN +# YOUR AMAZON EC2 INSTANCE STARTS! +# +# Copyright (C) 2014 Lin Song. Based on the work of Thomas Sarlandie (Copyright 2012) +# For detailed instructions, see my tech blog article: +# +# Also see: http://www.sarfata.org/posts/setting-up-an-amazon-vpn-server.md +# +# This work is licensed under the Creative Commons Attribution-ShareAlike 3.0 +# Unported License: http://creativecommons.org/licenses/by-sa/3.0/ +# +# Attribution required: please include my name in any derivative and let me +# know how you have improved it! + +# Please define your own values for those variables +IPSEC_PSK=your_very_secure_key +VPN_USER=your_username +VPN_PASSWORD=your_very_secure_password + +# Install necessary packages +apt-get update +apt-get install libnss3-dev libnspr4-dev pkg-config libpam0g-dev \ + libcap-ng-dev libcap-ng-utils libselinux1-dev \ + libcurl4-nss-dev libgmp3-dev flex bison gcc make \ + libunbound-dev libnss3-tools -y +apt-get install xl2tpd -y + +# Compile and install Libreswan +mkdir -p /opt/src +cd /opt/src +wget -qO- https://download.libreswan.org/libreswan-3.8.tar.gz | tar xvz +cd libreswan-3.8 +make programs +make install + +# Those two variables will be found automatically +PRIVATE_IP=`wget -q -O - 'http://169.254.169.254/latest/meta-data/local-ipv4'` +PUBLIC_IP=`wget -q -O - 'http://169.254.169.254/latest/meta-data/public-ipv4'` + +# Prepare various config files +cat > /etc/ipsec.conf < /etc/ipsec.secrets < /etc/xl2tpd/xl2tpd.conf < /etc/ppp/options.xl2tpd < /etc/ppp/chap-secrets < /etc/sysctl.conf < /etc/iptables.rules < /etc/network/if-pre-up.d/iptablesload < /etc/rc.local < /var/tmp/libreswan-nss-pwd + /usr/bin/certutil -N -f /var/tmp/libreswan-nss-pwd -d /etc/ipsec.d + /bin/rm -f /var/tmp/libreswan-nss-pwd +fi + +/sbin/sysctl -p +/bin/chmod +x /etc/network/if-pre-up.d/iptablesload +/sbin/iptables-restore < /etc/iptables.rules + +/usr/sbin/service ipsec restart +/usr/sbin/service xl2tpd restart