# IPsec/L2TP VPN Server Auto Setup Scripts <ahref="https://travis-ci.org/hwdsl2/setup-ipsec-vpn"><imgalign="right"src="https://travis-ci.org/hwdsl2/setup-ipsec-vpn.svg?branch=master"alt="Build status"/></a>
*Read this in other languages: [English](README.md), [简体中文](README-zh.md).*
These scripts will let you set up your own IPsec/L2TP VPN server in no more than a minute on Ubuntu, Debian and CentOS. All you need to do is provide your own VPN credentials, or auto-generate them. The scripts will handle the rest.
We will use <ahref="https://libreswan.org/"target="_blank">Libreswan</a> as the IPsec server, and <ahref="https://github.com/xelerance/xl2tpd"target="_blank">xl2tpd</a> as the L2TP provider.
#### <a href="https://blog.ls20.com/ipsec-l2tp-vpn-auto-setup-for-ubuntu-12-04-on-amazon-ec2/" target="_blank">Link to my VPN tutorial with detailed instructions</a>
A newly created <ahref="https://aws.amazon.com/ec2/"target="_blank">Amazon EC2</a> instance, using these AMIs: (See <ahref="https://blog.ls20.com/ipsec-l2tp-vpn-auto-setup-for-ubuntu-12-04-on-amazon-ec2/#vpnsetup"target="_blank">instructions</a>)
A dedicated server or KVM/Xen-based Virtual Private Server (VPS), freshly installed with one of the above OS. In addition, Debian 7 (Wheezy) can also be used after applying <ahref="extras/vpnsetup-debian-7-workaround.sh"target="_blank">this workaround</a>. OpenVZ VPS users should instead try <ahref="https://github.com/Nyr/openvpn-install"target="_blank">OpenVPN</a>.
<ahref="https://blog.ls20.com/ipsec-l2tp-vpn-auto-setup-for-ubuntu-12-04-on-amazon-ec2/#gettingavps"target="_blank">**» I want to run my own VPN but don't have a server for that**</a>
If unable to download via `wget`, you may alternatively open <ahref="vpnsetup.sh"target="_blank">vpnsetup.sh</a> (or <ahref="vpnsetup_centos.sh"target="_blank">vpnsetup_centos.sh</a>) and click the **`Raw`** button. Press `Ctrl-A` to select all, `Ctrl-C` to copy, then paste into your favorite editor.
For **Windows users**, a <ahref="https://documentation.meraki.com/MX-Z/Client_VPN/Troubleshooting_Client_VPN#Windows_Error_809"target="_blank">one-time registry change</a> is required if the VPN server and/or client is behind NAT (e.g. home router). In case you see `Error 628`, go to <ahref="https://github.com/hwdsl2/setup-ipsec-vpn/issues/7#issuecomment-210084875"target="_blank">the "Security" tab</a> of VPN connection properties, enable `CHAP` and disable `MS-CHAP v2`.
To create multiple VPN users with different credentials, just <ahref="docs/enable-multiple-users.txt"target="_blank">edit a few lines</a> in the scripts.
Clients are set to use <ahref="https://developers.google.com/speed/public-dns/"target="_blank">Google Public DNS</a> when the VPN is active. To change, edit `options.xl2tpd` and `ipsec.conf`.
The additional scripts <ahref="extras/vpnupgrade_Libreswan.sh"target="_blank">vpnupgrade_Libreswan.sh</a> and <ahref="extras/vpnupgrade_Libreswan_centos.sh"target="_blank">vpnupgrade_Libreswan_centos.sh</a> can be used to periodically upgrade Libreswan to the latest version. Check the <ahref="https://libreswan.org"target="_blank">official website</a> and update the `SWAN_VER` variable as necessary.
- Got a question? Please first search other people's comments <ahref="https://gist.github.com/hwdsl2/9030462#comments"target="_blank">in this GitHub Gist</a> and <ahref="https://blog.ls20.com/ipsec-l2tp-vpn-auto-setup-for-ubuntu-12-04-on-amazon-ec2/#disqus_thread"target="_blank">on my blog</a>.
- Ask Libreswan (IPsec) related questions <ahref="https://lists.libreswan.org/mailman/listinfo/swan"target="_blank">on the mailing list</a>, or read these wikis: <ahref="https://libreswan.org/wiki/Main_Page"target="_blank">[1]</a><ahref="https://wiki.gentoo.org/wiki/IPsec_L2TP_VPN_server"target="_blank">[2]</a><ahref="https://wiki.archlinux.org/index.php/L2TP/IPsec_VPN_client_setup"target="_blank">[3]</a><ahref="https://help.ubuntu.com/community/L2TPServer"target="_blank">[4]</a><ahref="https://wiki.strongswan.org/projects/strongswan/wiki/UserDocumentation"target="_blank">[5]</a>.
- If you found a reproducible bug, open a <ahref="https://github.com/hwdsl2/setup-ipsec-vpn/issues"target="_blank">GitHub Issue</a> to submit a bug report.
Copyright (C) 2014-2016 Lin Song <ahref="https://www.linkedin.com/in/linsongui"target="_blank"><imgsrc="https://static.licdn.com/scds/common/u/img/webpromo/btn_viewmy_160x25.png"width="160"height="25"border="0"alt="View my profile on LinkedIn"></a>
This work is licensed under the <ahref="http://creativecommons.org/licenses/by-sa/3.0/"target="_blank">Creative Commons Attribution-ShareAlike 3.0 Unported License</a>