原理概述
PPP能提供验证协议CHAP(Challenge-Handshake Authentication Protocol,挑战式握手验证协议)、PAP(Password Authentication Protocol,密码验证协议),更好保证网络安全性。
PAP为两次握手验证,口令为明文,验证过程仅在链路初始建立阶段进行。当链路建立阶段结束后,用户名和密码将由被验证方重复地在链路上发送给验证方,直到验证通过或者链路终止。PAP不是一种安全的验证协议,因为口令是以明文方式在链路上发送的,并且用户名和口令还会被被验证方在链路上反复发送,导致很容易被截获。
CHAP是三次握手验证协议,只在网络上传输用户名,而并不传输用户密码,因此安全性要比PAP高。CHAP协议是在链路建立开始就完成的,在链路建立完成后的任何时间都可以进行再次验证。当链路建立完成后,验证方发送一个“challenge”报文给被验证方;被验证方经过一次Hash算法后,给验证方返回一个值;验证方把自己经过Hash算法生成的值和被验证方返回的值进行比较。如果两者匹配,验证通过,否则验证不通过,连接被终止。
实验目的
掌握配置PPP PAP认证的方法
掌握配置PPP CHAP认证的方法
理解PPP PAP和PPP CHAP认证的区别
实验内容
本实验模拟企业网络环境。R1为分支机构接入端网关设备,PC1为企业分支机构终端。R2为企业总部接入终端网关设备,PC2为企业总部终端,R3为企业总部核心路由器。处于安全角度考虑,网络管理员在分支机构访问总部时部署PPP认证,R1是被认证方路由器,R3是认证方路由器,只有认证通过才能建立PPP连接进行正常访问。
实验编址
设备 | 接口 | IP地址 | 子网掩码 | 默认网关 |
PC1 | Ethernet0/0/1 | 10.0.1.1 | 255.255.255.0 | 10.0.1.254 |
PC2 | Ethernet0/0/1 | 10.0.2.1 | 255.255.255.0 | 10.0.2.254 |
R1 | GE0/0/0 | 10.0.1.254 | 255.255.255.0 | N/A |
Serial4/0/0 | 10.0.13.1 | 255.255.255.0 | N/A | |
R2 | GE0/0/0 | 10.0.23.2 | 255.255.255.0 | N/A |
GE0/0/1 | 10.0.2.254 | 255.255.255.0 | N/A | |
R3 | GE0/0/0 | 10.0.23.3 | 255.255.255.0 | N/A |
Serial4/0/0 | 10.0.13.3 | 255.255.255.0 | N/A |
实验拓扑
实验步骤
1.基本配置
根据实验编制表进行相应的基本配置,并检测各直连链路的连通性。
2.搭建OSPF网络
[R1]ospf 1
[R1-ospf-1]area 0
[R1-ospf-1-area-0.0.0.0]network 10.0.1.0 0.0.0.255
[R1-ospf-1-area-0.0.0.0]network 10.0.13.0 0.0.0.255
[R2]ospf 1
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 10.0.2.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]network 10.0.23.0 0.0.0.255
[R3]ospf 1
[R3-ospf-1]area 0
[R3-ospf-1-area-0.0.0.0]network 10.0.13.0 0.0.0.255
[R3-ospf-1-area-0.0.0.0]network 10.0.23.0 0.0.0.255
配置完成后,测试总部与分支机构终端之间的连通性。
PC>ping 10.0.2.1
Ping 10.0.2.1: 32 data bytes, Press Ctrl_C to break
Request timeout!
From 10.0.2.1: bytes=32 seq=2 ttl=125 time=31 ms
From 10.0.2.1: bytes=32 seq=3 ttl=125 time=31 ms
From 10.0.2.1: bytes=32 seq=4 ttl=125 time=16 ms
From 10.0.2.1: bytes=32 seq=5 ttl=125 time=31 ms
3.配置PPP的PAP认证
为了提升分支机构与总部通信时的安全性,在分支网关设备R1与公司核心设备R3上部署PPP的PAP认证。R3为认证路由器,R1为被认证路由器。
由于在华为路由器上,广域网串行接口默认链路层协议为PPP,因此可以直接配置PPP认证。在总部设备R3上使用 ppp authentication-mode 命令设置本端的PPP协议对对端设备的认证方式为PAP,认证采用的域名为huawei。
[R3]int s4/0/0
[R3-Serial4/0/0]ppp authentication-mode pap domain huawei
接下来配置认证路由器R3的本地认证信息。
执行aaa命令,进入AAA视图。使用authentication-scheme 命令创建认证方案huawei_1,并进入认证方案视图。
[R3]aaa
[R3-aaa]authentication-scheme huawei_1
使用 authentication-mode 命令配置认证模式为本地认证。
[R3-aaa-authen-huawei_1]authentication-mode local
使用 domain 命令创建 huaweiyu,并进入视图。使用 authentication-scheme 命令配置域的认证方案为huawei_1,注意必须和创建的认证方案一致。
[R3-aaa]domain huaweiyu
Info: Success to create a new domain.
[R3-aaa-domain-huaweiyu]authentication-scheme huawei_1
退回到AAA视图,使用 local-user 命令配置存储本地,为对端认证方所使用的用户名为R1@huaweiyu,密码为Huawei。
[R3-aaa]local-user R1@huaweiyu password cipher Huawei
Info: Add a new user.
[R3-aaa]local-user R1@huaweiyu service-type ppp
配置完成后,关闭R1和R3相连接口一段时间以后再打开,使R1和R3间的链路重新协商,并检查链路状态和连通性。
[R3-Serial4/0/0]shutdown
[R3-Serial4/0/0]undo shutdown
*down: administratively down
......
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.23.3/24 up up
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
NULL0 unassigned up up(s)
Serial4/0/0 10.0.13.3/24 up down
Serial4/0/1 unassigned down down
PING 10.0.13.1: 56 data bytes, press CTRL_C to break
Request time out
Request time out
......
可以观察到,现在R1和R3间无法正常通信,链路物理状态正常,但是链路层协议状态不正常。这是因为此时PPP链路上的PAP认证未通过,现在仅仅配置了认证方设备R3,还需要在被认证方设备R1上配置相关的PAP认证参数。
在R1的S4/0/0接口下,使用 ppp pap local-user 命令配置本端被对端以PAP方式验证时本地发送的PAP同户名和密码。
[R1]int s4/0/0
[R1-Serial4/0/0]ppp pap local-user R1@huaweiyu password cipher
配置完成后,再次查看链路状态并测试连通性。
*down: administratively down
^down: standby
......
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.1.254/24 up up
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
NULL0 unassigned up up(s)
Serial4/0/0 10.0.13.1/24 up up
Serial4/0/1 unassigned down down
PING 10.0.13.3: 56 data bytes, press CTRL_C to break
Reply from 10.0.13.3: bytes=56 Sequence=1 ttl=255 time=20 ms
Reply from 10.0.13.3: bytes=56 Sequence=2 ttl=255 time=20 ms
Reply from 10.0.13.3: bytes=56 Sequence=3 ttl=255 time=30 ms
Reply from 10.0.13.3: bytes=56 Sequence=4 ttl=255 time=20 ms
Reply from 10.0.13.3: bytes=56 Sequence=5 ttl=255 time=10 ms
可以发现,现在R1与R3间的链路层协议状态正常,且可以正常通信。
测试PC1与PC2的连通性
PC>ping 10.0.2.1
Ping 10.0.2.1: 32 data bytes, Press Ctrl_C to break
Request timeout!
From 10.0.2.1: bytes=32 seq=2 ttl=125 time=31 ms
From 10.0.2.1: bytes=32 seq=3 ttl=125 time=31 ms
From 10.0.2.1: bytes=32 seq=4 ttl=125 time=31 ms
From 10.0.2.1: bytes=32 seq=5 ttl=125 time=16 ms
总部与分支机构之间通信正常。
4.配置PPP的CHAP认证
公司网络管理员日常维护中发现,分部公司频繁遭受攻击,PPP认证密码经常被盗用,对网络状况进行分析。抓取R1的S4/0/0数据包进行分析:
可以观察到,在数据包中很容易找到所配置的用户名和密码。因此验证了使用PAP认证时,口令将以明文方式在链路上传送,并且由于完成PPP链路建立后,被认证方会不停的在链路上反复发送用户名和口令,知道身份认证过程结束,所以不能防止攻击。而使用CHAP认证时口令用MD5算法加密后在链路上发送,能有效的防止攻击。为进一步提高链路安全性,网络管理员需要重新部署PPP的CHAP认证。
首先删除原有的PAP认证配置,域名保持不变。
[R3]int s4/0/0
[R3-Serial4/0/0]undo ppp authentication-mode
[R1]int s4/0/0
[R1-Serial4/0/0]undo ppp pap local-user
删除后,在认证设备R3的S4/0/0接口下配置PPP的认证方式为CHAP。
[R3-Serial4/0/0]ppp authentication-mode chap
配置存储在本地,对端认证方所使用的用户名为R1,密码为huawei
[R3-aaa]local-user R1 password cipher huawei
Info: Add a new user.
[R3-aaa]local-user R1 service-type ppp
其余认证方案和域的配置保持不变。
配置完成后,关闭R1与R3相连接口一段时间后再打开,使链路重新协商。查看链路状态,并测试连通性。
[R3-aaa]dis ip int b
*down: administratively down
^down: standby
......
Interface IP Address/Mask Physical Protocol
GigabitEthernet0/0/0 10.0.23.3/24 up up
GigabitEthernet0/0/1 unassigned down down
GigabitEthernet0/0/2 unassigned down down
NULL0 unassigned up up(s)
Serial4/0/0 10.0.13.3/24 up down
Serial4/0/1 unassigned down down
PING 10.0.13.1: 56 data bytes, press CTRL_C to break
Request time out
Request time out
可以看到,目前R1与R3间的链路层协议状态不正常,无法正常通信。这是由于此时被认证方R1上海没有配置用户名和密码。
在R1的S4/0/0接口下配置CHAP认证的用户名和密码。
[R1]int s4/0/0
[R1-Serial4/0/0]ppp chap user R1
[R1-Serial4/0/0]ppp chap password cipher huawei
配置完成后,测试R1与R3的连通性。
[R1-Serial4/0/0]ping 10.0.13.3
PING 10.0.13.3: 56 data bytes, press CTRL_C to break
Reply from 10.0.13.3: bytes=56 Sequence=1 ttl=255 time=20 ms
Reply from 10.0.13.3: bytes=56 Sequence=2 ttl=255 time=30 ms
Reply from 10.0.13.3: bytes=56 Sequence=3 ttl=255 time=20 ms
Reply from 10.0.13.3: bytes=56 Sequence=4 ttl=255 time=20 ms
Reply from 10.0.13.3: bytes=56 Sequence=5 ttl=255 time=20 ms
PC>ping 10.0.2.1
Ping 10.0.2.1: 32 data bytes, Press Ctrl_C to break
Request timeout!
From 10.0.2.1: bytes=32 seq=2 ttl=125 time=31 ms
From 10.0.2.1: bytes=32 seq=3 ttl=125 time=31 ms
From 10.0.2.1: bytes=32 seq=4 ttl=125 time=31 ms
From 10.0.2.1: bytes=32 seq=5 ttl=125 time=16 ms
再R1的4/0/0接口抓包:
可以观察到,现在数据包内容已经为加密方式发送,无法被攻击者截获认证密码,安全性得到了提升。