防御保护-----第十三章:L2TP VPN
文章目录
- 第十三章:L2TP VPN
- 基于LAC拨号的L2TP VPN场景
- PPPoE
- 实验案例配置
- 基础配置
- **第一步:建立PPPoE连接,设定拨号接口VT接口**
- Client(PPPoE Client)
- Server(NAS)
- 第二步:建立L2TP隧道
- NAS(LAC)配置
- LNS配置
- 安全策略
- 路由补充
- 安全策略配置
- LAC(NAS)
- LNS
- 基于Client的L2TP VPN拨号场景
- 实验案例配置
- 移动办公用户与LNS建立L2TP VPN隧道
- 移动办公用户与LNS建立L2TP会话
- 移动办公用户与LNS建立PPP连接
- 命令行配置
- 1、配置IP地址池
- 2、业务方案及用户信息
- 3、设定VT接口
- 4、配置L2TP
- 5、安全策略
- LAC-Auto-Initiated VPN
- 实验配置
- 基础配置
- L2TP配置
- LNS配置
- 总结
第十三章:L2TP VPN
个人用户和企业用户使用电话线上网的年代。企业分支机构、出差用户----->PSTN(公共交换电话网)/综合业务数据网接入企业总部。
VPN被命名为VPDN ---- 虚拟专用拨号网。
个人用户和企业用户可以直接通过以太网接入Internet。
- PPP协议屈尊于以太网
- 好处:用户可以安装PPPoE Client,直接实现以太网上的拨号行为。
- L2TP延伸到PC
- PC可以通过系统自带的L2TP Client来直接与LNS建立L2TP VPN隧道。
基于LAC拨号的L2TP VPN场景
PPPoE
PPP over Ethernet ----> 以太网承载PPP协议。把PPP协议的数据帧封装在以太网的数据链路层中。
一般在需要服务器为客户端提供认证、授权、控制、计费等场景中使用。
PPPoE的三个阶段:
-
发现阶段 ---- 进行PPPoE协商。建立PPPoE虚拟链路。
-
会话阶段 ---- 进行PPP协商,LCP、PAP/CHAP认证、NCP协商阶段。
-
终结阶段 ---- 用户下线,断开连接。
实验案例配置
基础配置
接口IP配置
[NAS]interface GigabitEthernet 1/0/1
[NAS-GigabitEthernet1/0/1]ip add 20.1.1.1 24[LNS]interface GigabitEthernet 1/0/0
[LNS-GigabitEthernet1/0/0]ip add 20.1.1.2 24
[LNS]int g 1/0/1
[LNS-GigabitEthernet1/0/1]ip add 192.168.1.254 24
安全区域划分
[PPPoE Client]firewall zone trust
[PPPoE Client-zone-trust]add int g 1/0/0[NAS]firewall zone trust
[NAS-zone-trust]add int g 1/0/0
[NAS]firewall zone untrust
[NAS-zone-untrust]add int g 1/0/1[LNS]firewall zone untrust
[LNS-zone-untrust]add int g 1/0/0
[LNS]firewall zone trust
[LNS-zone-trust]add int g 1/0/1
安全策略
[PPPoE Client]security-policy
[PPPoE Client-policy-security]default action permit ---- 临时开启默认策略,方便后面的实验操作
第一步:建立PPPoE连接,设定拨号接口VT接口
PPPoE发明了两个虚拟接口,Dialer接口(客户端),VT接口(服务端)。
Client(PPPoE Client)
创建拨号接口
[PPPoE Client]interface Dialer 1
[PPPoE Client-Dialer1]dialer user user1 ----- 设定拨号用户名
[PPPoE Client-Dialer1]dialer-group 1 ---- 创建拨号组
[PPPoE Client-Dialer1]dialer bundle 1 ------ 设定拨号程序捆绑包
[PPPoE Client-Dialer1]ip address ppp-negotiate ------ 设定IP地址获取方式为PPP邻居分配,PPP邻居通过IPCP协议进行分配,即PPP的NCP协商过程所用协议
[PPPoE Client-Dialer1]ppp chap user user1
[PPPoE Client-Dialer1]ppp chap password cipher Password123[PPPoE Client]dialer-rule 1 ip permit ------ 配置拨号访问控制列表,允许所有IPv4报文通过拨号口,数字1必须与拨号组编号相同。[PPPoE Client]int g 1/0/0
[PPPoE Client-GigabitEthernet1/0/0]pppoe-client dial-bundle-number 1 ---在物理接口上启动PPPoE Client程序,绑定拨号程序包,编号为1
Server(NAS)
[NAS]interface Virtual-Template 1
[NAS-Virtual-Template1]ppp authentication-mode chap ----- 修改认证模式
[NAS-Virtual-Template1]ip address 2.2.2.2 24 ---- (配置的IP地址仅是为了激活该接口)[NAS]firewall zone dmz
[NAS-zone-dmz]add interface Virtual-Template 1
说明:1、该VT接口的IP地址不参与报文封装,只需要指定一个合法的IP地址即可,但需要注意跟其他接口IP地址区分;2、该VT接口需要加入到任意安全区域,否则VT接口不能正常运行,但是安全区域可以随意选择,因为该接口不参与数据转发,即不受安全策略控制。
[NAS]interface GigabitEthernet 1/0/0
[NAS-GigabitEthernet1/0/0]pppoe-server bind virtual-template 1 ----- 将VT接口绑定在物理接口[NAS]aaa
[NAS-aaa]domain default
[NAS-aaa-domain-default]service-type l2tp ----- 设定认证域的服务类型为L2TP设定用户名和密码信息:
[NAS]user-manage user user1 domain default
[NAS-localuser-user1]password Password123
注意:用户的IP地址,都是由总部LNS进行统一分配的,所以在LAC上不需要配置地址池信息。即使你配置了地址池,在L2TP隧道建立的情况下,也会优先使用总部的地址进行分配。而如果是普通的PPPoE配置,则必须配置地址池。
第二步:建立L2TP隧道
NAS(LAC)配置
[NAS]l2tp enable ----- 启动L2TP协议
[NAS]l2tp-group 1 ----- 设置L2TP组名
[NAS-l2tp-1]tunnel authentication ----- 开启隧道认证
[NAS-l2tp-1]tunnel password cipher Hello123 ---- 配置隧道密码信息
[NAS-l2tp-1]tunnel name lac ----- 设置隧道名称
[NAS-l2tp-1]start l2tp ip 20.1.1.2 fullusername user1 ---- 设定LAC模式和LNS地址,以及设置认证用户的方式为“完全用户认证”,并指定用户名
LNS配置
[LNS]ip pool l2tp --- 创建地址池
[LNS-ip-pool-l2tp]section 0 172.16.1.2 172.16.1.100[LNS]aaa
[LNS-aaa]service-scheme l2tp
[LNS-aaa-service-l2tp]ip-pool l2tp
[LNS-aaa]domain default
[LNS-aaa-domain-default]service-type l2tp [LNS]user-manage user user1 domain default
[LNS-localuser-user1]password Password123[LNS]interface Virtual-Template 1
[LNS-Virtual-Template1]ppp authentication-mode chap
[LNS-Virtual-Template1]ip address 172.16.1.1 24
[LNS-Virtual-Template1]remote service-scheme l2tp[LNS]firewall zone dmz
[LNS-zone-dmz]add interface Virtual-Template 1[LNS]l2tp enable [LNS]l2tp-group 1
[LNS-l2tp-1]allow l2tp virtual-template 1 remote lac domain default
[LNS-l2tp-1]tunnel authentication
[LNS-l2tp-1]tunnel password cipher Hello123
安全策略
临时全放通:
[NAS]security-policy
[NAS-policy-security]default action permit[LNS]security-policy
[LNS-policy-security]default action permit
路由补充
[PPPoE Client]ip route-static 0.0.0.0 0 Dialer 1 ---- 出接口方式# 将Dialer 1接口划分到dmz区域,方便发包:
[PPPoE Client]firewall zone dmz
[PPPoE Client-zone-dmz]add interface Dialer 1测试:
[PPPoE Client]ping 192.168.1.1PING 192.168.1.1: 56 data bytes, press CTRL_C to breakRequest time outReply from 192.168.1.1: bytes=56 Sequence=2 ttl=254 time=11 msReply from 192.168.1.1: bytes=56 Sequence=3 ttl=254 time=3 msReply from 192.168.1.1: bytes=56 Sequence=4 ttl=254 time=3 msReply from 192.168.1.1: bytes=56 Sequence=5 ttl=254 time=4 ms
L2TP VPN协议中,是由LNS进行分配IP,前提是认证通过。
在默认情况下,LAC的作用,是完成用户的认证,再将用户的认证成功信息反馈给LNS设备,然后LNS设备进行地址分配。
LAC分配模式:
- LAC代理认证模式 ---- 默认情况
- 强制CHAP认证
- 不相信LAC设备,要求重新对用户进行审查。
- LCP重协商
- 不仅不相信LAC设备,还对前面LAC和客户端签订的服务不满意,要求与客户端重新洽谈业务。
- 重新发起LCP协商。
强制CHAP认证,以及LCP重协商,都属于LNS二次认证。选配。特点:LNS都绕过了LAC,直接验证Client,可以提高更高的安全保障。但是,如果PPPoE Server,即LAC不支持二次认证,那么L2TP VPN无法建立。
[LNS]l2tp-group 1 ----- 只能在命令行配置
[LNS-l2tp-1]mandatory-chap
[LNS-l2tp-1]mandatory-lcp
当一个用户触发拨号行为时,才会触发建立LAC和LNS之间的L2TP隧道。只要该用户为下线,则其余用户拨号时,会在已建立L2TP隧道的基础上,直接建立L2TP会话。如果没有任何用户,则隧到超过一定时间后会被拆除。
安全策略配置
LAC(NAS)
LAC上只存在一条会话信息,并且该会话属于L2TP协议,并没有ICMP会话,所以LAC上配置安全策略时,只需要配置一条从Local区域—>Untrust区域的安全策略,允许LAC和LNS建立L2TP隧道。
[NAS]security-policy
[NAS-policy-security]default action deny ----- 先恢复默认策略为拒绝
[NAS-policy-security]rule name local_to_untrustsource-zone localdestination-zone untrustsource-address 20.1.1.1 mask 255.255.255.255destination-address 20.1.1.2 mask 255.255.255.255service l2tpservice protocol udp source-port 0 to 65535 destination-port 1701action permit
LNS
[LNS]security-policy
[LNS-policy-security]default action deny
[LNS-policy-security]dis this
security-policyrule name untrust_to_localsource-zone untrustdestination-zone localsource-address 20.1.1.1 mask 255.255.255.255destination-address 20.1.1.2 mask 255.255.255.255service l2tpservice protocol udp destination-port 1701action permitrule name dmz_to_trustsource-zone dmzdestination-zone trustsource-address 172.16.1.0 mask 255.255.255.0destination-address 192.168.1.0 mask 255.255.255.0action permit
基于Client的L2TP VPN拨号场景
VPN客户端的作用:帮助用户在PC或手机上触发建立一条直通公司总部网络的隧道,实现用户自由访问公司总部的资源。
用户可以轻松进入隧道,并自由离开隧道。
用户需要借助L2TP客户端,来进入隧道,从而进入到公司网络。----->LNS,公司总部守门员,需要对请求建立隧道的数据,进行身份验证。如果身份验证通过,那么LNS会为用户发放通行证(公司内网IP地址)。
实验案例配置
前提配置:
[FW]interface GigabitEthernet 1/0/1
[FW-GigabitEthernet1/0/1] ip address 192.168.0.1 255.255.255.0 -----给1/0/1口配置IP(先要将0/0/0口的IP删除)
[FW-GigabitEthernet1/0/1] service-manage all permit ----开启该接口的相关服务划分安全区域:
[FW]firewall zone untrust
[FW-zone-untrust] add interface GigabitEthernet1/0/1
[FW]firewall zone trust
[FW-zone-trust] add interface GigabitEthernet1/0/0
保证物理主机能够ping通防火墙的1/0/1接口:
1、修改用户管理的应用场景,并创建用户
一定要点击应用
2、启用L2TP协议
3、配置L2TP隧道
LNS的L2TP配置参数 | 参数数据 |
---|---|
对端隧道名称 用户名 用户密码 隧道密码 地址池 | client user0001 Password123 Hello123 172.16.1.2-172.16.1.100 |
创建地址池:
查看Virtual-Template接口:
服务器地址 ----> 就是LNS上的VT(Virtual-Template)接口配置。虚拟模板接口,可以理解为防火墙上的环回接口。
4、补充缺省路由
[FW]ip route-static 0.0.0.0 0 192.168.0.100
5、配置安全策略
目的:允许总部设备对客户的请求进行回复,而回复的报文会被送到VT接口进行VPN封装,所以目的IP为客户端的IP,即地址池地址,目的区域为VT接口所在区域。
目的:允许客户端发送的L2TP隧道建立报文可以被防火墙进行处理,此时的客户端IP不固定,所以源地址为any,而目的地址为防火墙的公网IP地址,即192.168.0.0/24网段。
当该报文被防火墙接收,并且防火墙认证通过后,会建立L2TP VPN隧道,之后基于隧道,为客户端分配地址池中的IP地址,即172.16.1.0/24网段的地址信息。
此时,客户端具备与内网设备通信的能力,源IP为172.16.1.0/24网段,目的IP为内网设备IP。
6、创建VPN连接
7、连接
由上图可以得知连接成功。
移动办公用户与LNS建立L2TP VPN隧道
第一步,由Client发送,名称为SCCRQ,告知LNS使用 111 作为Tunnel ID进行通信。此时Client本地的Tunnel ID为0。
LNS设备,Tunnel ID就是用来区分不同用户申请并建立的隧道。
L2TP报文,使用UDP发送,初始化时,源端口为随机数,目的端口为1701端口。如果LNS收到报文并回复后,则双方的端口就选定了。
第二步,LNS返回SCCRP报文,告知Client使用1作为TunnelID进行通信。
第三步,Client发送SCCCN报文,进行确认回复。此时L2TPVPN隧道建立完毕。
仅仅交互三个报文,用来协商参数–>隧道ID,UDP端口、主机名称、L2TP版本…
移动办公用户与LNS建立L2TP会话
用户与LNS之间建立PPP连接,L2TP会话用来记录和管理它们之间的PPP连接。L2TP会话的功能 -----> 为后续建立PPP连接来进行参数协商。
移动办公用户与LNS建立PPP连接
前两步,完成了隧道ID和会话ID的协商,Client终于可以和LNS进行对话了。
该步,才是真正L2TP的工作过程:认证和地址分配。
PPP协议:
1、LCP协商 --- 双向认证1.MRU2.是否认证,以及认证方式,PAP(明文)/CHAP(挑战握手协议,通过对比摘要值来认证)3.魔术字
2、认证---可选
3、NCP协商 ---网络层协议协商阶段 ---双向协商1.IP地址是否可用,合法2.网络层压缩方式
---目的:建立起PPP会话连接,存在该连接后,双方才可以正常发送数据报文
选择PPP协议的原因,就是因为PPP协议本身具备认证和地址分配机制。只不过这个IP地址是由L2TP协议选择出来的。
VT接口:VT接口是一个虚拟接口,这个接口用途与企业内部网络的终端设备进行通信。VT用来对L2TP和PPP协议内容进行封装和解封装。VT接口IP -----> 1、地址池中的IP需要与VT接口IP处于相同网段,是地址池中不能包含VT接口IP地址;2、VT接口IP地址,不能使用内网真实用到的网段。
1、移动用户向总部发送数据时:
- 应用层数据 + 私有IP封装
- 会被L2TP VPN进行封装
- 使用PPP头部进行第一次封装
- 使用L2TP头部进行第二次封装
- 使用UDP头部进行封装
- 使用公网IP,即用户的网卡信息和LNS的公网地址信息 ---- VPN隧道两端的地址信息
2、LNS收到报文后,先通过安全策略检查,Untrust→Local
- 使用VT接口进行解封装,接触公网IP头部、UDP头部、L2TP头部、PPP头部
- 查找路由表确定转发接口
- 根据安全策略进行检查,是否允许从VT接口发往内部Trust网络。
3、内网回复报文
总结:GRE协议是一个没有状态的协议,也就无法查看隧道的状态,但是L2TP VPN是存在控制连接的隧道,可以查看隧道和会话信息。------ 客户端直接访问LNS建立隧道,该隧道只有一条L2TP会话,而PPP连接是承载在这条L2TP会话之上的。
安全策略总结:
- 用户与LNS之间的L2TP报文
- Untrust ----> Local
- 用户访问企业资源的报文
- VT接口将报文封装后发送给内网:VT接口区域(DMZ)----> Trust
- 内网回复报文给VT接口:Trust ----> VT接口区域
在LNS上,每下放一个IP地址给用户,本地都会产生一条到达用户IP的主机路由,出接口为VT接口,代表该流量会被引导到L2TP VPN隧道中。
命令行配置
1、配置IP地址池
[FW]ip pool l2tp ----创建地址池
[FW-ip-pool-l2tp]section 0 172.16.1.2 172.16.1.100 ----设定地址池范围
2、业务方案及用户信息
[FW]aaa
[FW-aaa]service-scheme l2tp ---- 配置服务方案
[FW-aaa-service-l2tp]ip-pool l2tp ----- 服务任务为分配IP地址信息[FW-aaa]domain default ----- 进入默认区域
[FW-aaa-domain-default]service-type l2tp [FW]user-manage user user0001
[FW-localuser-user0001]parent-group /default
[FW-localuser-user0001]password Password123
3、设定VT接口
[FW]interface Virtual-Template 1
[FW-Virtual-Template1] ip address 172.16.1.1 24 ----- 该地址必须与地址池处于相同网段,但是在地址池中不能包含该IP地址
[FW-Virtual-Template1] ppp authentication-mode chap
[FW-Virtual-Template1] remote service-scheme l2tp ---- 绑定服务方案[FW]firewall zone dmz
[FW-zone-dmz] add interface Virtual-Template1 --- 将接口加入安全区域
4、配置L2TP
[FW]l2tp enable ---- 开启L2TP功能[FW]l2tp-group aa ------ 创建L2TP组
[FW-l2tp-aa]allow l2tp virtual-template 1 remote client domain default
[FW-l2tp-aa]tunnel authentication ----- 开启隧道认证
[FW-l2tp-aa]tunnel password cipher Hello123
5、安全策略
security-policyrule name trust_to_dmzsource-zone trustdestination-zone dmzsource-address 20.1.1.0 mask 255.255.255.0destination-address 172.16.1.0 mask 255.255.255.0action permitrule name dmz_to_trustsource-zone dmzdestination-zone trustsource-address 172.16.1.0 mask 255.255.255.0destination-address 20.1.1.0 mask 255.255.255.0action permitrule name untrust_to_localsource-zone untrustdestination-zone localdestination-address 192.168.0.0 mask 255.255.255.0action permit
LAC-Auto-Initiated VPN
LAC自动拨号到LNS的场景 —> 省略了员工拨号的行为。
特点:LNS只能对LAC进行认证,不能对分支员工进行认证。
认证通过后,LNS只会给LAC分配IP地址。
实验配置
基础配置
[LAC]interface GigabitEthernet 0/0/0
[LAC-GigabitEthernet0/0/0]service-manage all permit [LAC]int g 1/0/0
[LAC-GigabitEthernet1/0/0]ip add 10.1.1.254 24
[LAC-GigabitEthernet1/0/0]int g 1/0/1
[LAC-GigabitEthernet1/0/1]ip add 20.1.1.1 24[LAC]firewall zone untrust
[LAC-zone-untrust]add int g 1/0/1
[LAC]firewall zone trust
[LAC-zone-trust]add int g 1/0/0
[FW2]int g 0/0/0
[FW2-GigabitEthernet0/0/0]ip add 192.168.0.2 24
[FW2-GigabitEthernet0/0/0]service-manage all permit [FW2]int g 1/0/0
[FW2-GigabitEthernet1/0/0]ip add 20.1.1.2 24
[FW2-GigabitEthernet1/0/0]int g 1/0/1
[FW2-GigabitEthernet1/0/1]ip add 192.168.1.254 24[FW2]firewall zone untrust
[FW2-zone-untrust]add int g 1/0/0
[FW2]firewall zone trust
[FW2-zone-trust]add int g 1/0/1
L2TP配置
[LAC]interface Virtual-Template 1
[LAC-Virtual-Template1]ppp authentication-mode chap
[LAC-Virtual-Template1]ppp chap user user0001
[LAC-Virtual-Template1]ppp chap password cipher Password123
[LAC-Virtual-Template1]ip address ppp-negotiate
[LAC-Virtual-Template1]call-lns local-user user0001 binding l2tp-group l2tp
隧道路由 — 指的是需要通过隧道才能到达目的地,即总部网段。
补充缺省路由:(在该实验中,该缺省路由无意义,但LAC为边界设备,需要有一条缺省路由指向公网环境)
[LAC]ip route-static 0.0.0.0 0 20.1.1.2
在LAC上必须增加一条**出接口方式的源NAT策略**,目的是为了让LNS的回程报文可以顺利发送回LAC上。
使用出接口方式的原因:是因为LNS一旦进行地址分配后,会在本地路由表中添加一条主机路由,而下一跳就是LAC设备的VT接口的IP地址。-----> 即从分支发送的报文,经过LAC时,被LAC将源IP转换为VT接口地址。
[LAC-policy-nat]dis th
nat-policyrule name aasource-zone trustegress-interface Virtual-Template1source-address 10.1.1.0 mask 255.255.255.0action source-nat easy-ip
LNS配置
[LNS]ip route-static 0.0.0.0 0 20.1.1.1
总结
项目 | Client建立 | LAC触发建立 | LAC自动建立 |
---|---|---|---|
协商方式 | 客户与LNS之间建立L2TP隧道、会话和PPP链接。 | 用户拨号触发LAC和LNS之间建立L2TP隧道、会话,然后由接入用户和LNS建立PPP连接。 | LAC主动与LNS建立L2TP隧道、会话以及PPP连接。 |
隧道和会话关系 | 每个L2TP都需要建立一个隧道,在隧道中承载一条L2TP会话,以及PPP连接。 | LAC和LNS之间可以存在多条L2TP隧道,并且每个隧道中可以承载多个L2TP会话。 | LAC和LNS之间永久建立一条L2TP隧道,且仅承载一条L2TP会话。 |
安全性 | 选择PAP或CHAP | 可以进行二次认证;安全性最高 | 安全性最低 |
分配IP | 用户终端获取IP | 用户终端获取IP | LAC的VT接口获取IP |