欢迎您来到腾讯云!积分商城

腾讯云腾讯云论坛

 找回密码
 立即注册
忘了密码?

扫一扫,访问微社区

快捷导航
搜索
查看: 46025|回复: 36

[经验分享] Centos上搭建基于L2TP的VPN

[复制链接]

7

主题

9

好友

797

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
1139
威望
214
发表于 2015-1-5 16:31:35 |显示全部楼层 |未分类
1.一些预先准备的环境
  1. yum install -y make gcc gmp-devel xmlto bison flex xmlto libpcap-devel lsof vim-enhanced man
复制代码
2.安装
  1. yum install openswan ppp xl2tpd
复制代码
3.配置

(1)编辑 /etc/ipsec.conf

  1. vi  /etc/ipsec.conf
复制代码
替换为如下内容,把下面0.0.0.0换成腾讯云服务器的外网IP,其他的不用修改。
注意:第一行两个**的地方是s e t u(自行更改,字母之间无空格)

  1. config **p
  2.     nat_traversal=yes
  3.     virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
  4.     oe=off
  5.     protostack=netkey
  6. conn L2TP-PSK-NAT
  7.     rightsubnet=vhost:%priv
  8.     also=L2TP-PSK-noNAT
  9. conn L2TP-PSK-noNAT
  10.     authby=secret
  11.     pfs=no
  12.     auto=add
  13.     keyingtries=3
  14.     rekey=no
  15.     ikelifetime=8h
  16.     keylife=1h
  17.     type=transport
  18.     left=0.0.0.0  
  19.     leftprotoport=17/1701
  20.     right=%any
  21.     rightprotoport=17/%any
复制代码
(2)编辑/etc/ipsec.secrets
  1. vi /etc/ipsec.secrets
  2. include /etc/ipsec.d/*.secrets
  3. 0.0.0.0 %any: PSK "YourPsk"
复制代码
0.0.0.0换成腾讯云服务器的外网IP, YourPsk你自己定一个

(3) 修改/添加 /etc/sysctl.conf并生效

  1. vim /etc/sysctl.conf
复制代码

在/etc/sysctl.conf的末尾加上如下内容。

  1. net.ipv4.ip_forward = 1
  2. net.ipv4.conf.default.rp_filter = 0
  3. net.ipv4.conf.all.send_redirects = 0
  4. net.ipv4.conf.default.send_redirects = 0
  5. net.ipv4.conf.all.log_martians = 0
  6. net.ipv4.conf.default.log_martians = 0
  7. net.ipv4.conf.default.accept_source_route = 0
  8. net.ipv4.conf.all.accept_redirects = 0
  9. net.ipv4.conf.default.accept_redirects = 0
  10. net.ipv4.icmp_ignore_bogus_error_responses = 1
复制代码
生效上面的修改使用如下命令
  1. sysctl -p
复制代码
(4)验证ipsec运行状态
  1. ipsec restart
  2. ipsec verify
复制代码
如果出现如下内容,说明已经成功
  1. Checking your system to see if IPsec got installed and started correctly:
  2. Version check and ipsec on-path                                 [OK]
  3. Linux Openswan U2.6.32/K2.6.32-431.20.3.0.1.el6.centos.plus.x86_64 (netkey)
  4. Checking for IPsec support in kernel                            [OK]
  5. SAref kernel support                                           [N/A]
  6. NETKEY:  Testing for disabled ICMP send_redirects              [OK]
  7. NETKEY detected, testing for disabled ICMP accept_redirects     [OK]
  8. Checking that pluto is running                                  [OK]
  9. Pluto listening for IKE on udp 500                             [OK]
  10. Pluto listening for NAT-T on udp 4500                          [OK]
  11. Checking for 'ip' command                                       [OK]
  12. Checking /bin/sh is not /bin/dash                               [OK]
  13. Checking for 'iptables' command                                 [OK]
  14. Opportunistic Encryption Support                                [DISABLED]
复制代码
(5) 编辑 /etc/xl2tpd/xl2tpd.conf  这一步可以跳过
ip range 写客户端的内网IP段,local ip写客户端内网IP
  1. vim /etc/xl2tpd/xl2tpd.conf
  2. [lns default]
  3. ip range = 10.3.154.192-10.3.154.254
  4. local ip = 10.3.154.202
  5. require chap = yes
  6. refuse pap = yes
  7. require authentication = yes
  8. name = LinuxVPNserver
  9. ppp debug = yes
  10. pppoptfile = /etc/ppp/options.xl2tpd
  11. length bit = yes
复制代码
(6)配置用户名,密码:编辑 /etc/ppp/chap-secrets
  1. vim /etc/ppp/chap-secrets  
复制代码
username 写登录vpn的用户名,userpass 写登录vpn的密码
  1. # Secrets for authentication using CHAP
  2. # client        server  secret                  IP addresses
  3. username * "userpass" *
复制代码
(7)重启xl2tp
  1. service xl2tpd restart
复制代码
(8)添加自启动
  1. chkconfig xl2tpd on
  2. chkconfig iptables on
  3. chkconfig ipsec on
复制代码
接下来就是你通过电脑连接vpn

首先,需要修改注册表regedit
[HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/RasMan/Parameters]
ProhibitIPSec的值修改为1


如果没有ProhibitIPSec项,需要点击右键新建dword,重命名为ProhibitIPSec,值设置为1

其次,重启你的本地电脑(必须重启哦)

另外,Windows连接VPN可参考下面的链接:
http://jingyan.baidu.com/article/455a99508833cca166277831.html




-------------------------------------------------------------------------------------------

赞与谢,及时收割

如果本篇文章对您有用,请您小手一抖,给予我们最好的鼓励~~

Centos上搭建基于L2TP的VPN

Centos上搭建基于L2TP的VPN
QQ截图20150113143651.png

0

主题

0

好友

111

积分

小白[LV1]

Rank: 1

云币
283
威望
111
发表于 2015-1-6 11:09:27 |显示全部楼层
楼主,按着你的方法yum完了之后,/etc/ipsec.conf  这个文件的内容基本是空的,没你贴的这些内容啊!求指点
回复

使用道具 举报

0

主题

0

好友

18

积分

小白[LV1]

Rank: 1

云币
13
威望
1
发表于 2015-1-6 12:10:55 |显示全部楼层
win 支持l2tp吗                             
回复

使用道具 举报

0

主题

1

好友

168

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
109
威望
13
发表于 2015-1-7 11:16:11 |显示全部楼层
看不清~~ 发表于 2015-1-6 11:09
楼主,按着你的方法yum完了之后,/etc/ipsec.conf  这个文件的内容基本是空的,没你贴的这些内容啊!求指点 ...

那就把我那段贴进去,修改下 left=0.0.0.0
回复

使用道具 举报

0

主题

1

好友

168

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
109
威望
13
发表于 2015-1-7 11:18:57 |显示全部楼层
online 发表于 2015-1-6 12:10
win 支持l2tp吗

理论上是可以的,还没有实战搭建
回复

使用道具 举报

1

主题

0

好友

55

积分

小白[LV1]

Rank: 1

云币
32
威望
4
发表于 2015-1-17 19:58:39 |显示全部楼层
试了,搭完了,连接不上
回复

使用道具 举报

1

主题

0

好友

55

积分

小白[LV1]

Rank: 1

云币
32
威望
4
发表于 2015-1-17 20:06:00 |显示全部楼层
  1. version 2.0
  2. config **p

  3. nat_traversal=yes
  4.      virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12
  5.      oe=off
  6.      protostack=netkey
  7. conn L2TP-PSK-NAT
  8.      rightsubnet=vhost:%priv
  9.      also=L2TP-PSK-noNAT
  10. conn L2TP-PSK-noNAT
  11.      authby=secret
  12.      pfs=no
  13.      auto=add
  14.      keyingtries=3
  15.      rekey=no
  16.      ikelifetime=8h
  17.      keylife=1h
  18.      type=transport
  19.      left=x.x.x.x
  20.      leftprotoport=17/1701
  21.      right=%any
  22.      rightprotoport=17/%any
  23.     dpddelay=40
  24.     dpdtimeout=130
  25.     dpdaction=clear
复制代码
应该要加上这三行,不然ipsec verify 报错,但加上了,虽然不报错,客户端还是连接不到。到验证用户名和密码的时候就报:691错误了,请官方回答一下,是怎么回事,是不是服务器不支持?
dpddelay=40
    dpdtimeout=130
    dpdaction=clear

点评

joyes  我单独联系您看看  发表于 2015-1-20 09:44
回复

使用道具 举报

1

主题

2

好友

233

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
430
威望
53
发表于 2015-3-21 10:58:10 |显示全部楼层
请问你这个iptables如何设置???打开iptables,不能上网把,请大婶贴出你的iptables
回复

使用道具 举报

0

主题

0

好友

14

积分

小白[LV1]

Rank: 1

云币
9
威望
1
发表于 2015-4-13 11:13:42 |显示全部楼层
请问客户端如何拨号到其他的vpn服务器上?
回复

使用道具 举报

4

主题

0

好友

156

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
143
威望
62
发表于 2015-10-19 12:46:15 |显示全部楼层
提示 L2TP 连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误
回复

使用道具 举报

0

主题

0

好友

12

积分

小白[LV1]

Rank: 1

云币
7
威望
1
发表于 2015-10-30 00:05:42 |显示全部楼层
版主,按照你得教程已经安装,但是无法链接,我用mac本链接,错误代码提示也没有,就是无法链接,能否帮忙提示一下,谢谢
回复

使用道具 举报

0

主题

0

好友

2

积分

小白[LV1]

Rank: 1

云币
147
威望
2
发表于 2015-11-15 20:00:41 |显示全部楼层
星乐点网络 发表于 2015-10-19 12:46
提示 L2TP 连接尝试失败,因为安全层在初始化与远程计算机的协商时遇到一个处理错误 ...

我也是这个问题,求解答
回复

使用道具 举报

35

主题

13

好友

7744

积分

资深攻城师[LV4]

Rank: 4

云币
12188
威望
7744
发表于 2015-12-3 02:42:58 |显示全部楼层
这个帖子堪称完美,非常适合新手在搭建环境时进行参考的说明。
回复

使用道具 举报

0

主题

0

好友

42

积分

小白[LV1]

Rank: 1

云币
48
威望
18
发表于 2015-12-20 19:56:00 |显示全部楼层
l2tp在pc已经可以连上外网,注意点:
1、“可选”的那一步,是必须的,请把localip设置为你机器的内网ip,remoteip设置在相同的网段
2、iptables还需要设置forward规则,类似:iptables -A FORWARD -s [你的remoteip段] -j ACCEPT 比如iptables -A FORWARD -s 10.1.56.0/24 -j ACCEPT
目前可以科学上google,但是脸书油管不行,原因不明。。。

---------------------------------------------分割线--------------------------------------------
如果要上外网应该需要iptables 设置转发:
iptables -t nat -A POSTROUTING -s [你的remoteip段] -o eth0 -j MASQUERADE
可能还需要打开一些端口?

反正到我的l2tp到现在还是上不了外网,搭pptp协议的vpn倒是可以(北美机器)
此外android连接这种l2tp/ipsec的vpn,似乎有bug一直连接失败(同时pc能连上,虽然不能访问外网)

总之建议用pptp协议


回复

使用道具 举报

9

主题

6

好友

1973

积分

版主

Rank: 7Rank: 7Rank: 7Rank: 7

云币
2373
威望
1973
发表于 2015-12-20 23:19:40 |显示全部楼层
正准备搭建   多谢
回复

使用道具 举报

3

主题

0

好友

71

积分

小白[LV1]

Rank: 1

云币
254
威望
71
发表于 2016-1-2 00:49:27 |显示全部楼层
789错误该怎么办?
回复

使用道具 举报

1

主题

0

好友

24

积分

小白[LV1]

Rank: 1

云币
6
威望
3
发表于 2016-2-4 20:44:37 |显示全部楼层
星光流年 发表于 2015-12-20 19:56
l2tp在pc已经可以连上外网,注意点:
1、“可选”的那一步,是必须的,请把localip设置为你机器的内网ip,r ...

这位仁兄,请问你也是腾讯云的?客服说都不支持PPTP呀,我买了香港节点的,上不了外网,然而这个L2TP好像也用不了
回复

使用道具 举报

0

主题

0

好友

4

积分

小白[LV1]

Rank: 1

云币
4
威望
1
发表于 2016-2-18 11:23:16 |显示全部楼层
香港的主机  根本就不支持  vpn的链接  
回复

使用道具 举报

0

主题

0

好友

202

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
100
威望
100
发表于 2016-2-26 14:48:59 |显示全部楼层
vps系统 centos 7
按照lz的步骤一直坐下来到最后
但是死在了最后的iptables 防火墙上
chkconfig iptables on 报错: no such file or diretory
而且我的iptables 启动 关闭等等的命令都是这样。。。
我确定我已经安装了iptables并关闭的自带的firewalld  

乌龙。。。
上面按照lz的步骤没错,但是
centos 7 需要在安装一个service
#yum install iptables-services -y

然后就好了现在我先去试试vpn。。。
回复

使用道具 举报

0

主题

0

好友

54

积分

小白[LV1]

Rank: 1

云币
25
威望
25
发表于 2016-3-25 17:29:32 |显示全部楼层
一步步按照博主的来的,结果是“失败”!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册
您需要登录后才可以发帖 QQ登录

联系我们|腾讯云平台|积分商城|腾讯云官方论坛    

GMT+8, 2018-7-18 18:46 , Processed in 1.203807 second(s), 35 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部