l2tp ipsec centos7

PPTP、L2TP和IPsec的区别及优缺点

1、PPTP协议是点对点隧道协议:

  其将控制包与数据包分开,控制包采用TCP控制,用于严格的状态查询及信令信息;数据包部分先封装在PPP协议中,然后封装到GRE V2协议中。

2、L2TP是国际标准隧道协议:

  它结合了PPTP协议以及第二层转发L2F协议的优点,能以隧道方式使PPP包通过各种网络协议,包括ATM、SONET和帧中继。但是 L2TP没有任何加密措施,更多是和IPSec协议结合使用,提供隧道验证。

3、两者的联系与区别:

  联系:PPTP和L2TP都使用PPP协议对数据进行封装,然后添加附加包头用于数据在互联网络上的传输。尽管两个协议非常相似,但是仍存在以 下几方面的不同

  区别:

  1)PPTP要求互联网络为IP网络。L2TP只要求隧道媒介提供面向数据包的点对点的连接。L2TP可以在IP(使用UDP),桢中继永久虚 拟电路(PVCs),X.25虚拟电路(VCs)或ATM VCs网络上使用。

  2)PPTP只能在两端点间建立单一隧道。L2TP支持在两端点间使用多隧道。使用L2TP,用户可以针对不同的服务质量创建不同的隧道。

  3)L2TP可以提供包头压缩。当压缩包头时,系统开销(overhead)占用4个字节,而PPTP协议下要占用6个字节。

  4)L2TP可以提供隧道验证,而PPTP不支持隧道验证。但当L2TP或PPTP与IPSEC共同使用时,可由IPSEC提供隧道验证,不需 在第2层协议上验证隧道。

IPSec的优点

如果在路由器或防火墙上执行了IPSec,它就会为周边的通信提供强有力的安全保障。一个公司或工作组内部的通信将不涉及与安全相关的费用。下文叙 述了IPSec的一些优点:

IPSec在传输层之下,对于应用程序来说是透明的。当在路由器或防火墙上安装IPSec时,无需更改用户或服务器系统中的软件设置。即使在终端系 统中执行IPSec,应用程序一类的上层软件也不会被影响。
IPSec对终端用户来说是透明的,因此不必对用户进行安全机制的培训。
如果需要的话,IPSec可以为个体用户提供安全保障,这样做就可以保护企业内部的敏感信息。
IPSec正向Internet靠拢。已经有一些机构部分或全部执行了IPSec。IAB的前任总裁Christian Huitema认为,关于如何保证Internet安全的讨论是他所见过的最激烈的讨论之一。讨论的话题之一就是安全是否在恰当的协议层上被使用。想要提 供IP级的安全,IPSec必须成为配置在所有相关平台(包括Windows NT,Unix和Macintosh系统)的网络代码中的一部分。

实际上,现在发行的许多Internet应用软件中已包含了安全特征。例如,Netscape Navigator和Microsoft Internet Explorer支持保护互联网通信的安全套层协议(SSL),还有一部分产品支持保护Internet上信用卡交易的安全电子交易协议(SET)。然 而,VPN需要的是网络级的功能,这也正是IPSec所提供的。



本文部署基于ipsec 的l2tp

wKioL1jrcc3C-UdbAAAj2qaBgjU768.png-wh_50

1.基础环境

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[root@bogon tmp] # cat  /etc/redhat-release 
CentOS Linux release 7.3.1611 (Core) 
[root@bogon tmp] # ifconfig 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
         inet 192.168.56.11  netmask 255.255.255.0  broadcast 192.168.56.255
         inet6 fe80::20c:29ff:fe19:7f25  prefixlen 64  scopeid 0x20<link>
         ether 00:0c:29:19:7f:25  txqueuelen 1000  (Ethernet)
         RX packets 655392  bytes 86779661 (82.7 MiB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 853465  bytes 156410883 (149.1 MiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
         inet 10.0.0.1  netmask 255.0.0.0  broadcast 10.255.255.255
         inet6 fe80::20c:29ff:fe19:7f2f  prefixlen 64  scopeid 0x20<link>
         ether 00:0c:29:19:7f:2f  txqueuelen 1000  (Ethernet)
         RX packets 222  bytes 22794 (22.2 KiB)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 215  bytes 26245 (25.6 KiB)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
         inet 127.0.0.1  netmask 255.0.0.0
         inet6 ::1  prefixlen 128  scopeid 0x10<host>
         loop  txqueuelen 1  (Local Loopback)
         RX packets 0  bytes 0 (0.0 B)
         RX errors 0  dropped 0  overruns 0  frame 0
         TX packets 0  bytes 0 (0.0 B)
         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
[root@bogon tmp] #

2.安装软件

在centos7 版本后, 提供ipsec 服务包由libreswan替代了openswan

1
2
yum  install  xl2tpd
yum  install  libreswan

3.修改ipsec的配置文件(在配置文件里加入这一行,充许传透nat建立l2tp连接

1
2
3
4
[root@bogon tmp] # vim /etc/ipsec.conf  #其余的不变
  nat_traversal= yes    #新加的
     virtual_private=%v4:10.0.0.0 /8 ,%v4:192.168.0.0 /16 ,%v4:172.16.0.0 /12 ,%v4:25.0.0.0 /8 ,%v4:100.64.0.0 /10 ,
      %v6:fd00:: /8 ,%v6:fe80:: /10

4.建立ipsec 与 l2tp 服务关联的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
cd  /etc/ipsec .d/
[root@bogon ipsec.d] # cat l2tp_psk.conf   #此文件不存在 需要手动创建
conn L2TP-PSK-NAT
     rightsubnet=vhost:%priv
     also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
     authby=secret
     pfs=no
     auto=add
     keyingtries=3
     dpddelay=30
     dpdtimeout=120
     dpdaction= clear
     rekey=no
     ikelifetime=8h
     keylife=1h
     type =transport
     left=192.168.56.11
     leftprotoport=17 /1701
     right=%any
     rightprotoport=17/%any
[root@bogon ipsec.d] #

5.当建立l2tp连接时,需要输入预共享密匙,以下为预共享密匙的配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[root@bogon ipsec.d] # cat  /etc/ipsec.secrets 
include  /etc/ipsec .d/*.secrets
[root@bogon ipsec.d] # cd  /etc/ipsec.d/
[root@bogon ipsec.d] # ll
total 40
-rw------- 1 root root  9216 Apr 11 01:50 cert9.db
-rw------- 1 root root 11264 Apr 11 01:50 key4.db
-rw-r--r-- 1 root root   362 Apr 11 01:47 l2tp_psk.conf
-rw-r--r-- 1 root root    33 Apr 11 01:49 linuxcc_l2tp.secrets
-rw------- 1 root root   419 Apr 11 01:50 pkcs11.txt
drwx------ 2 root root    90 Apr 11 01:44 policies
-rw-r--r-- 1 root root  1338 Nov 12 09:58 v6neighbor-hole.conf
[root@bogon ipsec.d] # cat  linuxcc_l2tp.secrets   #没有的话自己创建
192.168.56.11 %any: PSK  "123456"
[root@bogon ipsec.d] #

6.修改内核支持,可以对照以下配置修改,或者直接复制,修改完后运行sysctl -p 使配置生效

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
vim   /etc/sysctl .conf  添加进去 sysctl -p 生效
vm.swappiness = 0
net.ipv4.neigh.default.gc_stale_time=120
net.ipv4.conf.all.rp_filter=0
net.ipv4.conf.default.rp_filter=0
net.ipv4.conf.default.arp_announce = 2
net.ipv4.conf.all.arp_announce=2
net.ipv4.tcp_max_tw_buckets = 5000
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 1024
net.ipv4.tcp_synack_retries = 2
net.ipv4.conf.lo.arp_announce=2
net.ipv4.ip_forward = 1
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.default.accept_source_route = 0

7.检验ipsec服务配置:

 ipsec setup start

  ipsec verify     此处出错 以及解决办法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
[root@bogon ipsec.d] # ipsec verify
Verifying installed system and configuration files
 
Version check and ipsec on-path                      [OK]
Libreswan 3.15 (netkey) on 3.10.0-514.10.2.el7.x86_64
Checking  for  IPsec support  in  kernel                 [OK]
  NETKEY: Testing XFRM related proc values
          ICMP default /send_redirects                 [OK]
          ICMP default /accept_redirects                 [OK]
          XFRM larval drop                           [OK]
Pluto ipsec.conf syntax                            [OK]
Hardware random device                                [N /A ]
Two or  more  interfaces found, checking IP forwarding [OK]
Checking rp_filter                                 [ENABLED]
  /proc/sys/net/ipv4/conf/eth0/rp_filter              [ENABLED]
   rp_filter is not fully aware of IPsec and should be disabled
Checking that pluto is running                      [OK]
  Pluto listening  for  IKE on udp 500                   [OK]
  Pluto listening  for  IKE /NAT-T  on udp 4500           [OK]
  Pluto ipsec.secret syntax                           [OK]
Checking  'ip'  command                                 [OK]
Checking  'iptables'  command                         [OK]
Checking  'prelink'  command  does not interfere with FIPSChecking  for  obsolete ipsec.conf options            [OK]
Opportunistic Encryption                             [DISABLED]
 
ipsec verify: encountered 3 errors - see  'man ipsec_verify'  for  help
[root@bogon ipsec.d] # echo  0 >/proc/sys/net/ipv4/conf/eth0/rp_filter  #解决办法
[root@bogon ipsec.d] # ipsec verify
Verifying installed system and configuration files
 
Version check and ipsec on-path                      [OK]
Libreswan 3.15 (netkey) on 3.10.0-514.10.2.el7.x86_64
Checking  for  IPsec support  in  kernel                 [OK]
  NETKEY: Testing XFRM related proc values
          ICMP default /send_redirects                 [OK]
          ICMP default /accept_redirects                 [OK]
          XFRM larval drop                           [OK]
Pluto ipsec.conf syntax                            [OK]
Hardware random device                                [N /A ]
Two or  more  interfaces found, checking IP forwarding [OK]
Checking rp_filter                                 [OK]
Checking that pluto is running                      [OK]
  Pluto listening  for  IKE on udp 500                   [OK]
  Pluto listening  for  IKE /NAT-T  on udp 4500           [OK]
  Pluto ipsec.secret syntax                           [OK]
Checking  'ip'  command                                 [OK]
Checking  'iptables'  command                         [OK]
Checking  'prelink'  command  does not interfere with FIPSChecking  for  obsolete ipsec.conf options            [OK]
Opportunistic Encryption                             [DISABLED]
[root@bogon ipsec.d] #

8.启动服务

1
2
systemctl start ipsec
systemctl  enable  ipsec

9.安装配置xl2tpd服务

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
yum  install  xl2tpd
vi  /etc/xl2tpd/xl2tpd .conf  #修改l2tp的配置文件
[root@bogon xl2tpd] # cat xl2tpd.conf
;
; This is a minimal sample xl2tpd configuration  file  for  use
; with L2TP over IPsec.
;
; The idea is to provide an L2TP daemon to  which  remote Windows L2TP /IPsec
; clients connect. In this example, the internal (protected) network 
; is 192.168.1.0 /24 .  A special IP range within this network is reserved
for  the remote clients: 192.168.1.128 /25
; (i.e. 192.168.1.128 ... 192.168.1.254)
;
; The listen-addr parameter can be used  if  you want to bind the L2TP daemon
; to a specific IP address instead of to all interfaces. For instance,
; you could bind it to the interface of the internal LAN (e.g. 192.168.1.98
in  the example below). Yet another IP address ( local  ip, e.g. 192.168.1.99)
; will be used by xl2tpd as its address on pppX interfaces.
 
[global]
ipsec saref =  yes   #此处添加上去
listen-addr = 192.168.56.11  #外网
;
; requires openswan-2.5.18 or higher - Also does not yet work  in  combination
; with kernel mode l2tp as present  in  linux 2.6.23+
; ipsec saref =  yes
; Use refinfo of 22  if  using an SAref kernel patch based on openswan 2.6.35 or
;  when using any of the SAref kernel patches  for  kernels up to 2.6.35.
; saref refinfo = 30
;
; force userspace =  yes
;
; debug tunnel =  yes
[lns default]
ip range = 10.0.0.100-10.0.0.200   #要和自己的内网一直 分配给客户端的IP地址
local  ip = 192.168.56.11
require chap =  yes
refuse pap =  yes
require authentication =  yes
name = LinuxVPNserver
ppp debug =  yes
pppoptfile =  /etc/ppp/options .xl2tpd
length bit =  yes

10.修改xl2tpd属性配置文件

 vi /etc/ppp/options.xl2tpd

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@bogon xl2tpd] # cat /etc/ppp/options.xl2tpd
ipcp-accept- local
ipcp-accept-remote
ms-dns  8.8.8.8   #只修改DNS 建议改成网关的IP
# ms-dns  192.168.1.1
# ms-dns  192.168.1.3
# ms-wins 192.168.1.2
# ms-wins 192.168.1.4
noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
# To allow authentication against a Windows domain EXAMPLE, and require the
# user to be in a group "VPN Users". Requires the samba-winbind package
require-mschap-v2
# plugin winbind.so
# ntlm_auth-helper '/usr/bin/ntlm_auth --helper-protocol=ntlm-server-1 --require-membership-of="EXAMPLE\\VPN Users"' 
# You need to join the domain on the server, for example using samba:
# http://rootmanager.com/ubuntu-ipsec-l2tp-windows-domain-auth/setting-up-openswan-xl2tpd-with-native-windows-clients-lucid.html
 
[root@bogon xl2tpd] #

11.添加用户名密码

1
2
3
4
5
[root@bogon xl2tpd] # cat /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client   server  secret          IP addresses
vpn12345    *   123456  *
[root@bogon xl2tpd] #

12.启动l2tp服务

1
2
3
  systemctl start xl2tpd
   systemctl  enable  xl2tpd
  systemctl status xl2tpd

13.客户端连接windows

windows+R

输入  regedit  找到此路径

1
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Rasman\


wKioL1jrd1ey-lUXABoI_ASuMuc868.png-wh_50

wKioL1jrd4yT144aAACmFkPQQSw299.png-wh_50

1
然后重启电脑

14.开启连接 切记按照顺序

wKioL1jreW7y_0WJAAC3TXuQylg046.png-wh_50

wKioL1jreW7y6DwsAACY911q3rU962.png-wh_50

wKiom1jreW_CaWN1AACl6nIMywg306.png-wh_50

wKiom1jreXCitreUAADT_fQvw5w024.png-wh_50

wKioL1jreXDTlx2dAABuVn7DFXw552.png-wh_50

wKioL1jreXGxa7-PAANef-QuJFo028.png-wh_50

wKiom1jreXLyLoEkAADRUV-Ee6Y359.png-wh_50

wKioL1jreXOymx4SAABwV61uqVg010.png-wh_50

到此完毕 


错误:手机连接不了 电脑可以连接

wKiom1mai7ezlswbAABUIFZMUPo909.png-wh_50










本文转自 小小三郎1 51CTO博客,原文链接:http://blog.51cto.com/wsxxsl/1914678,如需转载请自行联系原作者
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值