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

CentOS配置L2TP/IPsec VPN

by | 29 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

29 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: 是啊。

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