有兴趣自行安装的可以参考以下文章:
http://yansu.org/2016/12/30/deploy-l2tp-on-ubuntu.html
https://bill.tt/2017/01/14/Ubuntu-16-04-%E9%85%8D%E7%BD%AEL2TP-VPN-Server/
亲测Ubuntu18.04一键安装脚本通过
16.04点击一下连接配置。本文章测试的18.04
Ubuntu 16.04 配置 L2TP over IPSec VPN 服务器
参考文章:https://github.com/hwdsl2/setup-ipsec-vpn/blob/master/README-zh.md#%E5%AE%89%E8%A3%85%E8%AF%B4%E6%98%8E
Ubuntu & Debian
首先,更新你的系统: 运行 apt-get update && apt-get dist-upgrade
并重启。这一步是可选的,但推荐。
要安装 VPN,请从以下选项中选择一个:
选项 1: 使用脚本随机生成的 VPN 登录凭证 (完成后会在屏幕上显示):
wget https://git.io/vpnsetup -O vpnsetup.sh && sudo sh vpnsetup.sh
或者从本站下载:wget http://www.laihp.top/wordpress/vpnsetup.sh
选项 2: 编辑脚本并提供你自己的 VPN 登录凭证:
wget https://git.io/vpnsetup -O vpnsetup.sh
nano -w vpnsetup.sh
[替换为你自己的值: YOUR_IPSEC_PSK, YOUR_USERNAME 和 YOUR_PASSWORD]
sudo sh vpnsetup.sh
注: 一个安全的 IPsec PSK 应该至少包含 20 个随机字符。
选项 3: 将你自己的 VPN 登录凭证定义为环境变量:
# 所有变量值必须用 '单引号' 括起来
# *不要* 在值中使用这些字符: \ " '
wget https://git.io/vpnsetup -O vpnsetup.sh && sudo \
VPN_IPSEC_PSK='你的IPsec预共享密钥' \
VPN_USER='你的VPN用户名' \
VPN_PASSWORD='你的VPN密码' \
sh vpnsetup.sh
注: 如果无法通过 wget
下载,你也可以打开 vpnsetup.sh (或者 vpnsetup_centos.sh),然后点击右方的 Raw
按钮。按快捷键 Ctrl-A
全选, Ctrl-C
复制,然后粘贴到你喜欢的编辑器。
CentOS & RHEL
首先,更新你的系统: 运行 yum update
并重启。这一步是可选的,但推荐。
按照与上面相同的步骤,但是将 https://git.io/vpnsetup
换成 https://git.io/vpnsetup-centos
。
管理 VPN 用户
在默认情况下,将只创建一个用于 VPN 登录的用户账户。如果你需要添加,更改或者删除用户,请阅读本文档。
使用辅助脚本
你可以使用这些脚本来更方便地管理 VPN 用户:add_vpn_user.sh, del_vpn_user.sh 和 update_vpn_users.sh。它们将同时更新 IPsec/L2TP 和 IPsec/XAuth (“Cisco IPsec”) 模式的用户。如果你需要更改 IPsec PSK,请阅读下一节。
注: VPN 用户信息保存在文件 /etc/ppp/chap-secrets
和 /etc/ipsec.d/passwd
。脚本在修改这些文件之前会先做备份,使用 .old-日期-时间
为后缀。
添加或更改一个 VPN 用户
添加一个新 VPN 用户,或者为一个已有的 VPN 用户更改密码。
# 下载脚本
wget -O add_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/add_vpn_user.sh
# 所有变量值必须用 '单引号' 括起来
# *不要* 在值中使用这些字符: \ " '
sudo sh add_vpn_user.sh 'username_to_add' 'password_to_add'
删除一个 VPN 用户
删除指定的 VPN 用户。
# 下载脚本
wget -O del_vpn_user.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/del_vpn_user.sh
# 所有变量值必须用 '单引号' 括起来
# *不要* 在值中使用这些字符: \ " '
sudo sh del_vpn_user.sh 'username_to_delete'
更新所有的 VPN 用户
移除所有的 VPN 用户并替换为你指定的列表中的用户。
# 下载脚本
wget -O update_vpn_users.sh https://raw.githubusercontent.com/hwdsl2/setup-ipsec-vpn/master/extras/update_vpn_users.sh
要使用这个脚本,从以下选项中选择一个:
重要: 这个脚本会将你当前所有的 VPN 用户移除并替换为你指定的列表中的用户。如果你需要保留已有的 VPN 用户,则必须将它们包含在下面的变量中。
选项 1: 编辑脚本并输入 VPN 用户信息:
nano -w update_vpn_users.sh
[替换为你自己的值: YOUR_USERNAMES 和 YOUR_PASSWORDS]
sudo sh update_vpn_users.sh
选项 2: 将 VPN 用户信息定义为环境变量:
# VPN用户名和密码列表,用空格分隔
# 所有变量值必须用 '单引号' 括起来
# *不要* 在值中使用这些字符: \ " '
sudo \
VPN_USERS='用户名1 用户名2 ...' \
VPN_PASSWORDS='密码1 密码2 ...' \
sh update_vpn_users.sh
手动管理 VPN 用户和 PSK
首先,IPsec PSK (预共享密钥)保存在文件 /etc/ipsec.secrets
。如果要更换一个新的 PSK,可以编辑此文件。完成后必须重启服务(见下面)。所有的 VPN 用户将共享同一个 IPsec PSK。
%any %any : PSK "你的IPsec预共享密钥"
对于 IPsec/L2TP
,VPN 用户信息保存在文件 /etc/ppp/chap-secrets
。该文件的格式如下:
"用户名1" l2tpd "密码1" *
"用户名2" l2tpd "密码2" *
... ...
你可以添加更多用户,每个用户对应文件中的一行。不要在用户名,密码或 PSK 中使用这些字符:\ " '
对于 IPsec/XAuth ("Cisco IPsec")
,VPN 用户信息保存在文件 /etc/ipsec.d/passwd
。该文件的格式如下:
用户名1:密码1的加盐哈希值:xauth-psk
用户名2:密码2的加盐哈希值:xauth-psk
... ...
这个文件中的密码以加盐哈希值的形式保存。该步骤可以借助比如 openssl
工具来完成:
# 以下命令的输出为:密码1的加盐哈希值
# 将你的密码用 '单引号' 括起来
openssl passwd -1 '密码1'
最后,如果你更改了 PSK,则必须重启服务。对于添加,更改或者删除 VPN 用户,一般不需重启。
service ipsec restart
service xl2tpd restart
内服服务器端口转发规则以及防火墙设置:
确保这几个端口做了映射:1701、500、4500、1723
客户端配置:
VPN来连接到公司网络
安装L2TP
安装中若遇到unable to locate package可以使用apt-get update解决,若实在不行也可以使用apt-get upgrade解决,更新源,再安装。
安装sudo apt-get install openswan ppp xl2tpd -y
如果Package ‘openswan‘ has no installation candidate,按照以下四步安装openswan
You can fork the repo directly from Git repository. Then cd into your forked repo
git clone https://github.com/xelerance/Openswan.git fordername
To use Openswan with the linux native (builtin) IPsec stack, make programs:
sudo make install
To use the Openswan KLIPS IPsec stack (ipsec0 devices) for Linux Kernels 2.6.23 and higher, make programs
make KERNELSRC=/lib/modules/`uname -r`/build module
sudo make KERNELSRC=/lib/modules/`uname -r`/build install minstall