一.简介
L2TP(Layer 2 Tunneling Protocol) VPN是一种用于承载PPP报文的隧道技术,该技术主要应用在远程办公场景中为出差员工远程访问企业内网资源提供接入服务。
需要软件
代码语言:javascript复制openswan(ipsec) : 提供一个密钥
ppp :提供用户名和密码
xl2tpd : 提供L2TP服务
sysctl : 提供服务器内部转发
iptables : 提供请求从服务器内部转向外部,外部响应转向服务器内部依赖环境
二.部署
ipsec
1.安装依赖
yum install -y make gcc gmp-devel xmlto bison flex xmlto libpcap-devel lsof vim-enhanced man
2.openswan(ipsec)安装
OpenSWan,Linux下IPsec的最佳实现方式,其功能强大,最大程度地保证了数据传输中的安全性、完整性问题。
yum install openswan
3.接下来配置ipsec。ipsec的配置文件是/etc/ipsec.conf,安装好openswan后,配置文件是默认内容。先进行备份再更改文件。
mkdir ~/~etc
mv /etc/ipsec.conf ~/~etc/ipsec.conf
vim ~/~etc/ipsec.conf
version 2.0
config setup
protostack=netkey
nhelpers=0
uniqueids=no
interfaces=�faultroute
virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:!192.168.2.0/24
conn l2tp-psk
rightsubnet=vhost:%priv
also=l2tp-psk-nonat
conn l2tp-psk-nonat
authby=secret
pfs=no
auto=add
keyingtries=3
rekey=no
ikelifetime=8h
keylife=1h
type=transport
left=�faultroute
leftid=xxx.xx.xx.xx
leftprotoport=17/1701
right=%any
rightprotoport=17/%any
dpddelay=40
dpdtimeout=130
dpdaction=clear
sha2-truncbug=yes
上面有一行是leftid=xxx.xx.xx.xx,这里要把leftid的值改为服务器的ip地址,外网可以访问的IP地址。
4.接下来配置密钥。L2TP比PPTP多了一个密钥项,这也是它比PPTP更安全的原因之一。这个密钥其实就是一个密码,不同于用户的登录密码,它相当于一个设备之间通信的密钥。它的配置文件是/etc/ipsec.secrets,按照相同的方法,我们先备份一下它,然后新建一个我们自己的:
mv /etc/ipsec.secrets ~/~etc/ipsec.secrets
vim /etc/ipsec.secrets
%any %any : PSK "RZSJ.COM"
同理,%any 是所有地址,也可以单个指定,而后面的”YourPsk”中的YourPsk就是密钥的内容。你可以改为自己的任意字符串。反正在你连接登录VPN的时候,是需要这个PSK的。
5.运行ipsec:
systemctl restart ipsec
systemctl enable ipsec