CentOS配置L2TP/IPsec VPN

提醒:本文最后更新于 2999 天前,文中所描述的信息可能已发生改变,请仔细核实。

自打脱离WP 8.1,我就不用L2TP了,奈何鬼娃娃(林友赛)找我。

所以发了这篇文章,以CentOS为例配置L2TP/IPsec,其实不单CentOS,其他系列系统(如Ubuntu等)如此配置,L2TP也能正常使用。

首先,安装strongSwan和xl2tpd,不用Openswan是因为据说OSX会连不上。

这个简单,直接yum或apt-get就行了。

以防万一,还是把命令发出来:

yum install strongswan xl2tpd -y

strongSwan主要是为了实现IPsec,而IPsec又是为了PSK,我喜欢这个。

先来配置strongSwan,在/etc/strongswan/ipsec.conf中:

config setup

conn %default
        ikelifetime=60m
        keylife=20m
        rekeymargin=3m
        keyingtries=1

conn l2tp
        keyexchange=ikev1 #IKE协议版本
        left=104.149.65.3 #服务器IP,自己修改为你自己的
        leftsubnet=0.0.0.0/0
        leftprotoport=17/1701
        authby=secret #PSK认证
        leftfirewall=no #不允许strongSwan更改防火墙规则
        right=%any
        rightprotoport=17/%any
        type=transport # ipsec transport mode
        auto=add

重要的points,我已经写在上面了。基本上都是预设值。

接下来配置PSK密匙,在/etc/strongswan/ipsec.secrets中:

# ipsec.secrets - strongSwan IPsec secrets file
: PSK "修改这里为你的PSK密匙"

这样就完成了strongSwan的配置了,接下来配置L2TP(xl2tpd)。

在/etc/xl2tpd/xl2tpd.conf中:

[global]
listen-addr = 104.149.65.3 ;服务器IP,自己修改为你自己的,跟strongSwan保持一致

[lns default]
ip range = 172.16.37.2-172.16.37.254 ;分配给客户端的ip
local ip = 172.16.37.1 ;L2TP本地ip,也是客户端的网关
assign ip = yes
require chap = yes
refuse pap = yes ;默认就是拒绝pap的,但是如果你用PAM验证的话,那就要注释这句
require authentication = yes
name = xl2tpd
ppp debug = yes
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes

因为172.16.36.X被我分给了PPTP,所以L2TP用了172.16.37.X,这个看自己喜好,不影响。

接下来,编辑/etc/ppp/options.xl2tpd:

ipcp-accept-local
ipcp-accept-remote
ms-dns  8.8.8.8
ms-dns  8.8.4.4
noccp
auth
crtscts
idle 1800
mtu 1460#这个根据实际,国情应该大部分是1460吧
mru 1460#这个根据实际,国情应该大部分是1460吧
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
#login#如果你用了PAP在xl2tpd.conf中的话,那么去掉前面的注释

好了,如果你完全按我上面的配置,那么就是不使用PAP PAM的。

如果你改了用PAP PAM,那么还要修改/etc/pam.d/ppp,改为:

#%PAM-1.0
auth       required        pam_nologin.so
auth       required        pam_unix.so
account    required        pam_unix.so
session    required        pam_unix.so

这样来达到请求,如果没该用PAP PAM,那就不用改。

以防万一,把原始的/etc/pam.d/ppp配置放上来:

#%PAM-1.0
auth       include      password-auth
account    required     pam_nologin.so
account    include      password-auth
session    include      password-auth

最后一步,给L2TP添加用户,在/etc/ppp/chap-secrets中,按照如此规则填写,就像PPTP VPN一样。

# Secrets for authentication using CHAP
# client        server  secret                  IP addresses
用户名 xl2tpd 密码 *

如果你用了PAP,那么记得修改/etc/ppp/pap-secrets,规则同上。

这样就完成了所有的配置,启动strongSwan和xl2tpd:

service strongswan start
service xl2tpd start

这样便可正常使用了。

如果你跟我一样,配置了iptables防火墙规则,非许必丢,那么下面这些规则就需要了。

iptables -I INPUT -p udp --dport 500 -j ACCEPT 
iptables -I INPUT -p udp --dport 4500 -j ACCEPT 
iptables -I INPUT -p udp -m policy --dir in --pol ipsec -m udp --dport 1701 -j ACCEPT
iptables -t nat -A POSTROUTING -s 172.16.37.0/24 -o eth0 -j MASQUERADE
iptables -t filter -I FORWARD -s 172.16.37.0/24 -d 172.16.37.0/24 -j DROP
iptables -I FORWARD -s 172.16.37.0/24 -j ACCEPT
iptables -I FORWARD -d 172.16.37.0/24 -j ACCEPT

以上完整取自我自用的配置,自己看着修改。

最后给一张Win10创建“使用预共享密钥的L2TP/IPsec”VPN的图:

转载请注明转自:kn007的个人博客的《CentOS配置L2TP/IPsec VPN