强叔侃墙___第5章 L2TP VPN

5.4 L2TP Client-Initiated VPN 


LNS配置

[LNS]display current-configuration 
18:00:31  2018/03/13
#
stp region-configuration
 region-name d0bad715501b
 active region-configuration
#
interface Virtual-Template1
 ppp authentication-mode chap
 alias Virtual-Template1
 ip address 192.168.2.1 255.255.255.0
 remote address pool 1
#
interface GigabitEthernet0/0/0
 alias GE0/MGMT
 ip address 192.168.0.1 255.255.255.0
 dhcp select interface
 dhcp server gateway-list 192.168.0.1
#
interface GigabitEthernet0/0/1
 ip address 192.168.1.1 255.255.255.0
#
interface GigabitEthernet0/0/2
 ip address 1.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/3
#
interface GigabitEthernet0/0/4
#
interface GigabitEthernet0/0/5
#
interface GigabitEthernet0/0/6
#
interface GigabitEthernet0/0/7
#
interface GigabitEthernet0/0/8
#
interface NULL0
 alias NULL0
#
firewall zone local
 set priority 100
#
firewall zone trust
 set priority 85
 add interface GigabitEthernet0/0/0
 add interface GigabitEthernet0/0/1
#
firewall zone untrust
 set priority 5
 add interface GigabitEthernet0/0/2
#
firewall zone dmz
 set priority 50
 add interface Virtual-Template1
#
l2tp-group 1
 undo tunnel authentication
 allow l2tp virtual-template 1
 tunnel name LNS
#
aaa
 local-user l2tpuser password cipher %$%$K!g=@TJoK+KGb0I*K2t@A%yp%$%$
 local-user l2tpuser service-type ppp
 local-user admin password cipher %$%$[oZE$X0deYN~Pd@/cK"RA.%y%$%$
 local-user admin service-type web terminal telnet
 local-user admin level 15
 ip pool 1 192.168.2.2 192.168.2.100
 #
 authentication-scheme default
 #
 authorization-scheme default
 #
 accounting-scheme default
 #
 domain default
 #
#
nqa-jitter tag-version 1

#
 banner enable
#
user-interface con 0
 authentication-mode none
user-interface vty 0 4
 authentication-mode none
 protocol inbound all
#
 slb
#
right-manager server-group
#
 sysname LNS
#
 l2tp enable
 l2tp domain suffix-separator @
#
 firewall packet-filter default permit interzone local trust direction inbound
 firewall packet-filter default permit interzone local trust direction outbound
 firewall packet-filter default permit interzone local untrust direction inbound
 firewall packet-filter default permit interzone local untrust direction outboun
d
 firewall packet-filter default permit interzone local dmz direction inbound
 firewall packet-filter default permit interzone local dmz direction outbound
 firewall packet-filter default permit interzone trust untrust direction inbound
 firewall packet-filter default permit interzone trust untrust direction outboun
d
 firewall packet-filter default permit interzone trust dmz direction inbound
 firewall packet-filter default permit interzone trust dmz direction outbound
 firewall packet-filter default permit interzone dmz untrust direction inbound
 firewall packet-filter default permit interzone dmz untrust direction outbound
#
 ip df-unreachables enable
#
 firewall ipv6 session link-state check
 firewall ipv6 statistic system enable
#
 dns resolve
#
 firewall statistic system enable
#
 pki ocsp response cache refresh interval 0
 pki ocsp response cache number 0
#
 undo dns proxy
#
 license-server domain lic.huawei.com
#
 web-manager enable
#
return

WIN7 创建L2TP连接。

        1、网络和共享中心,设置新的连接和网络,连接到工作区,使用我的Internet连接到(VPN)

            

        输入Internet地址,和目标名称。 现在不连接:公进行设置以便稍后连接


 输入用户名,密码,创建 。



2、打开L2TP VPN连接属性



5.4.1  阶段1 建立L2TP 隧道:3条消息协商进入虫洞时机

L2TP Client和LAS通过交互三条消息协商隧道ID、UDP端口(LNS用1701端口响应Client 隧道建立请求)、主机名称、L2TP的版本、隧道验证(Clieent不支持隧道验证时LNS的隧道验证功能要关闭,例如WIN7操作系统)等参数。


隧道ID协商过程

    步骤1 SCCRQ

                L2TP Client:LNA兄,用1作为TunnelID跟我通信吧!

            

     步骤2 SCCRP

            LAS:OK,L2TP client,你也用1作为TunnelID跟我通信

                

步骤3 SCCCN

                L2TP  Client:OK


5.4.2 建立L2TP会话:3条消息唤醒虫洞门神

L2TP Client 和LAS通过交互三条消息协商Session ID,建立 L2TP会话。只有先跟“门神”对上话了 ,才可能提交微分认证材料呀!

Sessiion ID协商过程

步骤1 ICRQ

            L2TP Client:LNS兄,用1作为Sessiion ID跟我通信吧

            

    步骤2 ICRP

            LNS:OK,L2TP Client,你也用1作为Session ID跟我通信

                    

    步骤3 Client:OK

5.4.3  阶段3 创建PPP连接:身份认证,发放特别通行证

        1. LCP协商

                LCP协商是两个方向分开协商的,主要协商MRU大小。MRU是PPP的数据链路层参数,类似以太网中的MTU。如果PPP链路一端设备发送的报文载荷大于对端的MRU,这个报文在会被分片。



从图中可知,协商后的MRU值是1400。


2.PPP验证

验证方式包括CHAP、PAP、EAP。CHAP或PAP可以在本地认证,与可在AAA服务器上认证;EAP只能在AAA服务器上认证。EAP认证比较复杂,而且不同型号的防火墙支持情况有差异,所以此处只给出最常用的CHAP验证过程。


PPP三次握手验证的过程

步骤1

        LNA:L2TP Client,发给你一个“挑战(challenges)”,用它来加密你的密码吧

            

步骤2

        L2TP Client:OK,把我的用户名和加密后的密码发给你,请验证

                

步骤3

        LNS:验证通过,欢迎来到PPP的世界

        

LAS上配置的用户名和密码是用来验证Client的,当然要求“本人”和“签证”完全一致,即要求L2TP Client 和LAS上配置的用户名和密码完全一致。这时详解一下什么叫用户名完全一致。

    如果在LAS上配置的签证为username(不有doain),则L2TP Client便当的用户名也要是username。

    如果在LAS上配置的签证为fullusername(username@default或usename@domian),则L2TP Client 登录的用户名也要是12tpuser,所以Client 登录时务必要输入完全一致的用户名。这个道理很简单,但却是大家在配置时常犯的错误。

    在AAA认证中一定会用到“domain(认证域)“这个概念的,大家肯定会瓿用户名称后面加上domain有何意义?

在磊企业中,往往会把不同部门划分到不同的domain中,然后LAS上根据domain给不同部门创建不同的地址池,也就是说不同的部门的网段可以通过地址池规划分开,这样方便后续针对不同部门部署不同的安全策略。

3.IPCP协商,成功后分配IP地址。

LAN分配给L2TP Client的IP  地址是192.168.2.5



看到这里大家应该明白,LNS上地址池里的地址就是用来给远端Client分配IP地址用的,当然应该是私网地址,应该跟其他内网

主机一样遵循内网IP地址规划原则。那么VT接口呢?基实VT 接口也是内网接口,也应该遵循内网IP地址规划原则统一进行规划。I地址规划总的原则如下。

    建议为VT接口、地址池和总部网络地址分别规划独立的网段,三者的地址不要重叠。

    如果地址池地址和总部网络地址配置为同一网段,则必须在LNS连接总部网络的接口上开启ARP代理功能,并且开启L2TP虚拟转发功能,保证LNS可以对总部内网服务器发出的ARP请求进行应答。

[LAS-GigabitEthernet0/0/2]arp-proxy enable 	    //开启ARP代理功能
[LAS-GigabitEthernet0/0/2]virtual-l2tpforward enable   //开启L2TP虚拟转发功能

看完PPP 认证过程大家应该明白了,L2TP巧妙的利用了PPP的认证功能 达到了自己认证远程接入用户的目的。是谁促成了这个合作项目的呢?就是VT接口。

l2tp-group 1
 undo tunnel authentication
 allow l2tp virtual-template 1
 tunnel name LAS

就是上面这条命令将L2TP与PPP联系了起来:VT接口管理PPP认证,二者的合作就这样实现了L2TP模块又是VT接口的老板,VT接口只在L2TP和PPP之间起作用,是个无名英雄,不参与封装,也不需要对外发布,所以其IP地址配置成私网IP地址即可。

L2TP Client-Initiated VPN的协商过程远比 GRE VPN要复杂,总结一下Client-Initiated VPN隧道的特点,如下所示。

    L2TP VPN 跟GRE VPN有很大不同。GRE VPN没有隧道协商过程,是没有控制连接和状态的隧道,所以也无法查看隧道、

    检查隧道状态。但L2TP VPN是有控制连接的隧道,可以查看到隧道和会话。

    如图5-22所示,对于Client-Initiatd VPN 来说,L2TP Client和LNS之间存在一条L2TP隧道,隧道中只有一条L2TP会话,PPP

    连接就承载在此L2TP会话上。这一点跟NAS-Initiated VPN不同,需要关注一下。

            

5.4.4 阶段4 数据封装传输:穿越虫洞,访问地球 

查看LNS上的路由表,发出了一个有趣的现象:LNS为获取私网IP地址的L2TP Client自动下发了一条主机路由。

<LNS>display ip routing-table 
18:20:21  2018/03/13
Route Flags: R - relay, D - download to fib
------------------------------------------------------------------------------
Routing Tables: Public
	Destinations : 9	Routes : 9

Destination/Mask    Proto  Pre  Cost     Flags NextHop         Interface

        1.1.1.0/24  Direct 0    0           D  1.1.1.1         GigabitEthernet0/
0/1
        1.1.1.1/32  Direct 0    0           D  127.0.0.1       InLoopBack0
      127.0.0.0/8   Direct 0    0           D  127.0.0.1       InLoopBack0
      127.0.0.1/32  Direct 0    0           D  127.0.0.1       InLoopBack0
    192.168.1.0/24  Direct 0    0           D  192.168.1.1     GigabitEthernet0/
0/2
    192.168.1.1/32  Direct 0    0           D  127.0.0.1       InLoopBack0
    192.168.2.0/24  Direct 0    0           D  192.168.2.1     Virtual-Template1
    192.168.2.1/32  Direct 0    0           D  127.0.0.1       InLoopBack0
    192.168.2.4/32  Direct 0    0           D  192.168.2.4     Virtual-Template1

这条自动生成的主机路由属于UNR(User Network Route)路由,目的地址和下一跳都为LNS为L2TP Client分配的私网IP地址,出接口是VT口。这条路由就是LNS上虫洞的入口,引导去往L2TP Client的报文进入隧道。


5.4.5 安全策略配置思路

在LNS上将域间缺省包过滤的动作设置为permit。

(1)我们先配置一个最宽泛的域间安全策略,以便调测L2TP VPN。

[LNS]firewall packet-filter default permit all
(2)配置好后,在L2TP Client上ping 内网服务器, 在服务器上Ping L2TP Client,然后查看会话表
[LNS]display firewall session table verbose
17:58:06  2018/03/13
 Current Total Sessions : 3
  l2tp  VPN:public --> public
  Zone: untrust--> local  TTL: 00:02:00  Left: 00:02:00
  Interface: InLoopBack0  NextHop: 127.0.0.1  MAC: 00-00-00-00-00-00
  <--packets:23 bytes:1226   -->packets:221 bytes:26768
  1.1.1.2:1701-->1.1.1.1:1701

  icmp  VPN:public --> public
  Zone: dmz--> trust  TTL: 00:00:20  Left: 00:00:20
  Interface: GigabitEthernet0/0/1  NextHop: 192.168.1.2  MAC: 54-89-98-fa-0c-08
  <--packets:69 bytes:4140   -->packets:70 bytes:4200
  192.168.2.2:1-->192.168.1.2:2048

  icmp  VPN:public --> public
  Zone: trust--> dmz  TTL: 00:00:20  Left: 00:00:17
  Interface: Virtual-Template1:0  NextHop: 192.168.2.2  MAC: 02-00-4c-4f-4f-50
  <--packets:11 bytes:660   -->packets:11 bytes:660
  192.168.1.2:256-->192.168.2.2:2048

(3)分析会话表得到精细化的安全策略的匹配条件。

有三条流

一条是untrust-->local  这间的ICMP报文,允许L2TP Client与LNS建立L2TP隧道。

一条是dmz-->trust之间的ICMP报文,允许L2TP Client访问内网服务器的报文通过;

一条是trust-->dmz之间的ICMP报文,内网服务器访问L2TP Client的数据。


可见,在Client-Initiated 方式的L2TP VPN场景中,LNS上的VT接口必须加入安全区域,而且VT接口所属的安全区域决定了

报文在防火墙内部的走向。

(4)最后,将缺省包过滤的动作改为deny。



猜你喜欢

转载自blog.csdn.net/tjjingpan/article/details/79512155