提醒:本文最后更新于 3579 天前,文中所描述的信息可能已发生改变,请仔细核实。
自打脱离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》

是我,是我,又是我
我看不懂
@小可: 额,会抄就行。。
SS 啥的更好吧,VPN 好像比较容易撞墙……
@老杨: 嗯,但是有些人喜欢vpn的方便,特别是在苹果上。。而且在wp10以前,只能创建L2TP和SSTP,L2TP也不得不选择。
@kn007: 苹果上 VPN 并不好用,好用的是 APNP……
@老杨: 没听过,我周围这些用苹果的喜欢VPN。。。
@老杨: 看了下,貌似不错,不过相关文档没找到,有没有说具体怎么配置的?
@kn007: 你说的是服务器端?最简单的应该是这个:http://bbs.itzmx.com/forum.php?mod=viewthread&tid=8815 ,速度更好的得两台 VPS(国内+国外),比如:http://bao3.blogspot.com/2012/02/apn-proxy.html ,http://bao3.blogspot.com/2012/01/apn-proxy-apn.html ,https://www.fdb713.com/archives/617 。Google 搜索会有不少相关的呢:https://www.google.com/search?q=APNP+搭建
@老杨: 这种我倒是知道。。。早期做过,不过被人跑了300多G流量。。。这玩意没验证方式,不安全。。
以前用过,后来搭的话还是ss比较好一些,L2TP之前经常会不好用。。。
再后来就直接买服务用了。。。
@公子: 我一直用ss。ss方便,配合规则比较舒服。VPN看运营商,部分限制得好死。
@kn007: 我现在就是自己搭了一台,买了两套服务,换着用。
@公子: 哈,挺好,我自己有一套,然后加上朋友给一套,还行。
@kn007:
看来你还是充裕的很啊
@公子: 主备可以说
@kn007: 哈哈哈 有备无患啊
VPN经常断线,还是SS好些
@小怪物: 是啊
你用又拍云插件吗,我的上传图片后不支持https,你是怎么处理的?
我用的官网提供的第三方插件,hacklog的突然不能上传了!
@张衡Henry: 我是自己写的。
地址我用了钩子:https://kn007.net/topics/cdn-share-my-hook-function/
@kn007: 厉害,我参考参考
我用 racoon,比较简单……
@zwwooooo: 这个没用过。黑猫白猫吧。
收下,新版的mac不支持pptp了。
@peter: 有用就好
基本没接触这些。
@郑永: 你在国外基本上不用,协同办公也很少用这个了。
还是SS好啊,这都什么年头了,VPN很容易被干扰~用一个挂一个~
@Uncle.E: 是啊。
你确定协议就这么多么
@...: 什么意思
@kn007: ios试了一下貌似连不上,之前用openswan,windows倒是可以连上,现在哪个都不行了,好像显示的信息是被阻拦还有拒绝了,这是什么原因阿,防火墙么
@...: 这种协议比较容易被运营商过滤
@...: 你如果用最新版,我这帖子可能不适应,除非你用centos6,那还是旧版。
新版配置要少两项,你可以看下日记,看下报什么错,在ios请求连接的时候
@kn007: 必须是centos?我用的是ubuntu
@...: 方法大同小异,说实在,你这样一点信息都无,我没办法帮你。
环境、日志什么都没有。
我目前在用的新一点的版本有:
strongswan-5.5.3-1.el7.x86_64 、 xl2tpd-1.3.8-2.el7.x86_64
旧的版本也有,在新一点的版本相信也是没问题,但是你不发日志,谁也帮不上。
而且你留的邮箱。。。
@kn007: 你能留个邮箱么
@...: 有心自然找得到。
我的意思并不是说这种聊天方式干嘛,只是你这样留邮箱,我有点迷。
@kn007: 能不能细聊啊
@...: 这算是基础问题,在这里聊就没办法细聊吗?
你把日志放出来,有什么问题吗?
你可以看看别人怎么回复
https://kn007.net/topics/postfix-advanced-to-use-fail2ban-defense-attacks/comment-page-1/#comment-22757
@kn007: strongswan 怎样查看日志啊
@...: 自己搜索吧,小白问题。
@kn007: strongswan.service - strongSwan IPsec services
Loaded: loaded (/lib/systemd/system/strongswan.service; enabled; vendor preset: enabled)
Active: active (running) since 日 2017-07-23 15:07:14 CST; 24min ago
Process: 7932 ExecStart=/usr/sbin/ipsec start (code=exited, status=0/SUCCESS)
Process: 7929 ExecStartPre=/bin/mkdir -p /var/lock/subsys (code=exited, status=0/SUCCESS)
Main PID: 7959 (starter)
CGroup: /system.slice/strongswan.service
├─7959 /usr/lib/ipsec/starter --daemon charon
└─7960 /usr/lib/ipsec/charon --use-syslog
7月 23 15:07:14 123 charon[7960]: 10[LIB] opening '/etc/ipsec.d/certs/serverCert.pem' failed: No such file or d
7月 23 15:07:14 123 charon[7960]: 10[LIB] building CRED_CERTIFICATE - ANY failed, tried 1 builders
7月 23 15:07:14 123 charon[7960]: 10[CFG] loading certificate from 'serverCert.pem' failed
7月 23 15:07:14 123 charon[7960]: 10[CFG] added configuration 'ikev2ios'
7月 23 15:07:14 123 charon[7960]: 11[CFG] received stroke: add connection 'ikev1android'
7月 23 15:07:14 123 charon[7960]: 11[CFG] reusing virtual IP address pool 10.XX.X.0/24
7月 23 15:07:14 123 charon[7960]: 11[LIB] opening '/etc/ipsec.d/certs/serverCert.pem' failed: No such file or d
7月 23 15:07:14 123 charon[7960]: 11[LIB] building CRED_CERTIFICATE - ANY failed, tried 1 builders
7月 23 15:07:14 123 charon[7960]: 11[CFG] loading certificate from 'serverCert.pem' failed
7月 23 15:07:14 123 charon[7960]: 11[CFG] added configuration 'ikev1android'
lines 1-20/20 (END)...skipping...
● strongswan.service - strongSwan IPsec services
Loaded: loaded (/lib/systemd/system/strongswan.service; enabled; vendor preset: enabled)
Active: active (running) since 日 2017-07-23 15:07:14 CST; 24min ago
Process: 7932 ExecStart=/usr/sbin/ipsec start (code=exited, status=0/SUCCESS)
Process: 7929 ExecStartPre=/bin/mkdir -p /var/lock/subsys (code=exited, status=0/SUCCESS)
Main PID: 7959 (starter)
CGroup: /system.slice/strongswan.service
├─7959 /usr/lib/ipsec/starter --daemon charon
└─7960 /usr/lib/ipsec/charon --use-syslog
7月 23 15:07:14 123 charon[7960]: 10[LIB] opening '/etc/ipsec.d/certs/serverCert.pem' failed: No such file or directory
7月 23 15:07:14 123 charon[7960]: 10[LIB] building CRED_CERTIFICATE - ANY failed, tried 1 builders
7月 23 15:07:14 123 charon[7960]: 10[CFG] loading certificate from 'serverCert.pem' failed
7月 23 15:07:14 123 charon[7960]: 10[CFG] added configuration 'ikev2ios'
7月 23 15:07:14 123 charon[7960]: 11[CFG] received stroke: add connection 'ikev1android'
7月 23 15:07:14 123 charon[7960]: 11[CFG] reusing virtual IP address pool 10.XX.X.0/24
7月 23 15:07:14 123 charon[7960]: 11[LIB] opening '/etc/ipsec.d/certs/serverCert.pem' failed: No such file or directory
7月 23 15:07:14 123 charon[7960]: 11[LIB] building CRED_CERTIFICATE - ANY failed, tried 1 builders
7月 23 15:07:14 123 charon[7960]: 11[CFG] loading certificate from 'serverCert.pem' failed
7月 23 15:07:14 123 charon[7960]: 11[CFG] added configuration 'ikev1android'
@...: 你这l2tp从来就没成功启动过。你能连上pptp,肯定是以前配置过pptp,跟这个没关系。
错误已经很明显了,你配置肯定不是用我这个。这个提示是说没有创建pkcs12可用证书。
我注意到你用的是ubuntu,ubuntu的配置文件放的位置,跟centos有些不同。配置是个参考,每个系统的配置文件都不一样,你可以搜索一下。
@kn007: 所以应该用centos?
@...: 查对应系统资料啊
@kn007: 之前我用过openswan,配置也简单不过ios用不了,请问你有什么推荐的么?,自动配置的插件也可以,除了openvpn
@...: 工具都是可以实现功能的,会不会配的问题,勤于思考和搜索,好吧
@kn007: centos总是显示没有可用的软件包安装strongswan的时候
@...: 多查,装个epel源
@kn007: 刚刚网络gg了
@kn007: ios 的怎么弄啊 TOT 是不是需要添加什么啊,window倒是可以了,ios 始终不行阿
@...: 哦,只是ios不行,你用的是哪个版本,个别版本strongwan有问题
@kn007: 那应该用哪个版本啊😭
@kn007: windows 自动的话就变成pptp,可是调成l2tp就显示错误741,不支持这种数据加密之类的TOT
@...: 没道理会变成pptp。。协议不一样,会变说明你配的是pptp不是l2tp
@kn007: 可是我可是遵行了步骤的,选择l2tp连接就会显示不支持这种加密方法在windows上