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。