kn007的个人博客
♥ You are here: > > > CentOS配置L2TP/IPsec VPN

CentOS配置L2TP/IPsec VPN

by | 57 Comments

l2tpvpnwithipsec自打脱离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的图:
qq%e6%88%aa%e5%9b%be20161005114435

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

donate
有所帮助?

Comments

57 Comments立即评论
Loading...
  1. LV5回复

    是我,是我,又是我 :x 我看不懂

    1. MOD回复

      @小可: 额,会抄就行。。

  2. SS 啥的更好吧,VPN 好像比较容易撞墙……

    1. MOD回复

      @老杨: 嗯,但是有些人喜欢vpn的方便,特别是在苹果上。。而且在wp10以前,只能创建L2TP和SSTP,L2TP也不得不选择。

    2. @kn007: 苹果上 VPN 并不好用,好用的是 APNP……

    3. MOD回复

      @老杨: 没听过,我周围这些用苹果的喜欢VPN。。。

    4. MOD回复

      @老杨: 看了下,貌似不错,不过相关文档没找到,有没有说具体怎么配置的?

    5. @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+搭建

    6. MOD回复

      @老杨: 这种我倒是知道。。。早期做过,不过被人跑了300多G流量。。。这玩意没验证方式,不安全。。

  3. LV2回复

    以前用过,后来搭的话还是ss比较好一些,L2TP之前经常会不好用。。。 :cry: 再后来就直接买服务用了。。。

    1. MOD回复

      @公子: 我一直用ss。ss方便,配合规则比较舒服。VPN看运营商,部分限制得好死。

    2. LV2回复

      @kn007: 我现在就是自己搭了一台,买了两套服务,换着用。

    3. MOD回复

      @公子: 哈,挺好,我自己有一套,然后加上朋友给一套,还行。

    4. LV2回复

      @kn007: :mrgreen: :mrgreen: :mrgreen: 看来你还是充裕的很啊

    5. MOD回复

      @公子: 主备可以说

    6. LV2回复

      @kn007: 哈哈哈 有备无患啊

  4. VPN经常断线,还是SS好些

    1. MOD回复

      @小怪物: 是啊

  5. 你用又拍云插件吗,我的上传图片后不支持https,你是怎么处理的?
    我用的官网提供的第三方插件,hacklog的突然不能上传了!

    1. MOD回复

      @张衡Henry: 我是自己写的。
      地址我用了钩子:https://kn007.net/topics/cdn-share-my-hook-function/

    2. @kn007: 厉害,我参考参考

  6. 我用 racoon,比较简单……

    1. MOD回复

      @zwwooooo: 这个没用过。黑猫白猫吧。

  7. 回复

    收下,新版的mac不支持pptp了。

    1. MOD回复

      @peter: 有用就好

  8. 基本没接触这些。

    1. MOD回复

      @郑永: 你在国外基本上不用,协同办公也很少用这个了。

  9. LV4回复

    还是SS好啊,这都什么年头了,VPN很容易被干扰~用一个挂一个~

    1. MOD回复

      @Uncle.E: 是啊。

  10. 回复

    你确定协议就这么多么

    1. MOD回复

      @...: 什么意思

    2. LV1回复

      @kn007: ios试了一下貌似连不上,之前用openswan,windows倒是可以连上,现在哪个都不行了,好像显示的信息是被阻拦还有拒绝了,这是什么原因阿,防火墙么

    3. MOD回复

      @...: 这种协议比较容易被运营商过滤

    4. MOD回复

      @...: 你如果用最新版,我这帖子可能不适应,除非你用centos6,那还是旧版。
      新版配置要少两项,你可以看下日记,看下报什么错,在ios请求连接的时候

    5. LV1回复

      @kn007: 必须是centos?我用的是ubuntu

    6. MOD回复

      @...: 方法大同小异,说实在,你这样一点信息都无,我没办法帮你。
      环境、日志什么都没有。

      我目前在用的新一点的版本有:
      strongswan-5.5.3-1.el7.x86_64 、 xl2tpd-1.3.8-2.el7.x86_64
      旧的版本也有,在新一点的版本相信也是没问题,但是你不发日志,谁也帮不上。

      而且你留的邮箱。。。

    7. LV1回复

      @kn007: 你能留个邮箱么

    8. MOD回复

      @...: 有心自然找得到。
      我的意思并不是说这种聊天方式干嘛,只是你这样留邮箱,我有点迷。

    9. LV1回复

      @kn007: 能不能细聊啊

    10. MOD回复

      @...: 这算是基础问题,在这里聊就没办法细聊吗?
      你把日志放出来,有什么问题吗?

      你可以看看别人怎么回复
      https://kn007.net/topics/postfix-advanced-to-use-fail2ban-defense-attacks/comment-page-1/#comment-22757

    11. LV1回复

      @kn007: strongswan 怎样查看日志啊

    12. MOD回复

      @...: 自己搜索吧,小白问题。

    13. LV1回复

      @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'

    14. MOD回复

      @...: 你这l2tp从来就没成功启动过。你能连上pptp,肯定是以前配置过pptp,跟这个没关系。
      错误已经很明显了,你配置肯定不是用我这个。这个提示是说没有创建pkcs12可用证书。

      我注意到你用的是ubuntu,ubuntu的配置文件放的位置,跟centos有些不同。配置是个参考,每个系统的配置文件都不一样,你可以搜索一下。

    15. LV1回复

      @kn007: 所以应该用centos?

    16. MOD回复

      @...: 查对应系统资料啊

    17. LV1回复

      @kn007: 之前我用过openswan,配置也简单不过ios用不了,请问你有什么推荐的么?,自动配置的插件也可以,除了openvpn

    18. MOD回复

      @...: 工具都是可以实现功能的,会不会配的问题,勤于思考和搜索,好吧

    19. LV1回复

      @kn007: centos总是显示没有可用的软件包安装strongswan的时候

    20. MOD回复

      @...: 多查,装个epel源

    21. LV1回复

      @kn007: 刚刚网络gg了

    22. LV1回复

      @kn007: ios 的怎么弄啊 TOT 是不是需要添加什么啊,window倒是可以了,ios 始终不行阿

    23. MOD回复

      @...: 哦,只是ios不行,你用的是哪个版本,个别版本strongwan有问题

    24. 回复

      @kn007: 那应该用哪个版本啊😭

    25. LV1回复

      @kn007: windows 自动的话就变成pptp,可是调成l2tp就显示错误741,不支持这种数据加密之类的TOT

    26. MOD回复

      @...: 没道理会变成pptp。。协议不一样,会变说明你配的是pptp不是l2tp

    27. 回复

      @kn007: 可是我可是遵行了步骤的,选择l2tp连接就会显示不支持这种加密方法在windows上

icon_wink.gificon_neutral.gificon_mad.gificon_twisted.gificon_smile.gificon_eek.gificon_sad.gificon_rolleyes.gificon_razz.gificon_redface.gificon_surprised.gificon_mrgreen.gificon_lol.gificon_idea.gificon_biggrin.gificon_evil.gificon_cry.gificon_cool.gificon_arrow.gificon_confused.gificon_question.gificon_exclaim.gif