一、PPP

        点到点协议(Point-to-Point Protocol,PPP)提供了一种在点到点链路上封装网络层协议信息的标准方法。PPP也定义了可扩展的链路控制协议(Link Control Protocol,LCP),使用验证协议协商在链路上传输网络层协议前验证链路的对端。

二、PPP的两种验证协议

        PPP支持两种验证协议:密码验证协议(Password Authentication Protocol,PAP)和挑战握手验证协议(Chanllenge Handshake Authentication Protocol,CHAP)。

三、PAP

        PAP提供了一种简单的方法,可以使对端(peer)使用两次握手建立身份验证,这个方法仅仅在链路初始化时使用。链路建立阶段完成后,对端不停地发送ID/Password对给验证者,一直到验证被响应或连接终止为止。

        PAP不是一个健全的身份验证方法。密码在线路上时明文发送的,并且对回送、重复验证和错误攻击没有保护措施。

四、PAP简单实验

        1.拓扑

        2.开启抓包

        在R1设备的s0/0/0口开启抓包,链路类型选择ppp

        3.配置认证方

        password选择simple选项时,密码将以明文形式保存在配置文件中,存在安全风险。建议使用cipher选项,将密码加密保存。

<Huawei>un t m
Info: Current terminal monitor is off.
<Huawei>sy
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R1
[R1]
[R1]int s0/0/0
[R1-Serial0/0/0]ppp authentication-mode pap 
[R1-Serial0/0/0]quit
[R1]
[R1]aaa
[R1-aaa]local-user admin password cipher 123456
[R1-aaa]local-user admin service-type ppp
[R1-aaa]quit

        4.配置被认证方

<Huawei>un t m
Info: Current terminal monitor is off.
<Huawei>sy
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R2
[R2]int s0/0/0
[R2-Serial0/0/0]ppp pap local-user admin password cipher 123456
[R2-Serial0/0/0]quit

        5.重启接口

        注意:如果这里不重启接口,pap认证(验证)不会生效!

[R1]int s0/0/0
[R1-Serial0/0/0]shutdown 
[R1-Serial0/0/0]undo shutdown 
[R1-Serial0/0/0]quit
[R1]
[R2]int s0/0/0
[R2-Serial0/0/0]shutdown 
[R2-Serial0/0/0]undo shutdown 
[R2-Serial0/0/0]quit
[R2]

         6.观察到抓包结果

        观察到两次握手

 五、CHAP

        CHAP使用三次握手验证,这种验证可以在链路建立初始化时进行,也可以在链路建立后的任何时间内重复进行。

        在链路建立完成后,验证者向对端发送一个chanllenge信息,对端使用一个one-way-hash函数计算出的值响应这个信息。验证者使用相同的单向函数计算自己这一端对应的hash值校验响应值。如果两个值匹配,则验证通过;否则连接终止。

六、CHAP单向认证实验

        1.拓扑

        2.开启抓包

        与上述PAP实验同理(即对R1的s0/0/1接口进行抓包,链路类型选择ppp)

        3.配置认证方

<Huawei>
<Huawei>un t m
Info: Current terminal monitor is off.
<Huawei>sy
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R1
[R1]
[R1]int s0/0/1
[R1-Serial0/0/1]ppp authentication-mode chap 
[R1-Serial0/0/1]ppp chap user admin
[R1-Serial0/0/1]quit
[R1]
[R1]aaa
[R1-aaa]local-user admin password cipher 123456
[R1-aaa]local-user admin service-type ppp
[R1-aaa]quit

         4.配置被认证方

<Huawei>
<Huawei>un t m
Info: Current terminal monitor is off.
<Huawei>sy
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R2
[R2]
[R2]int s0/0/1
[R2-Serial0/0/1]ppp chap user admin
[R2-Serial0/0/1]quit
[R2]
[R2]aaa
[R2-aaa]local-user admin password cipher 123456
[R2-aaa]local-user admin service-type ppp
[R2-aaa]quit

        5.重启接口

        注意:如果这里不重启接口,chap认证(验证)同样不会生效!!

[R1]int s0/0/1
[R1-Serial0/0/1]shutdown 
[R1-Serial0/0/1]undo shutdown 
[R1-Serial0/0/1]quit
[R1]
[R2]int s0/0/1
[R2-Serial0/0/1]shutdown 
[R2-Serial0/0/1]undo shutdown 
[R2-Serial0/0/1]quit
[R2]

        6.观察到抓包结果

        观察到三次握手

七、CHAP双向认证实验

        1.拓扑

        2.开启抓包

        同理

        3.配置R1

        R1既作为认证方,也作为被认证方

<Huawei>un t m
Info: Current terminal monitor is off.
<Huawei>sy
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R1
[R1]int s0/0/2
[R1-Serial0/0/2]ppp authentication-mode chap 
[R1-Serial0/0/2]ppp chap user admin
[R1-Serial0/0/2]quit
[R1]
[R1]aaa
[R1-aaa]local-user admin password cipher 123456
[R1-aaa]local-user admin service-type ppp
[R1-aaa]quit

        4.配置R2

        R2同样既作为认证方,也作为被认证方

<Huawei>un t m
Info: Current terminal monitor is off.
<Huawei>sy
Enter system view, return user view with Ctrl+Z.
[Huawei]sys R2
[R2]
[R2]int s0/0/2
[R2-Serial0/0/2]ppp authentication-mode chap
[R2-Serial0/0/2]ppp chap user admin
[R2-Serial0/0/2]quit
[R2]
[R2]aaa
[R2-aaa]local-user admin password cipher 123456
[R2-aaa]local-user admin service-type ppp
[R2-aaa]quit

        5.重启接口

        注意:如果这里不重启接口,chap认证(验证)不会生效!!!

[R1]int s0/0/2
[R1-Serial0/0/2]shutdown 
[R1-Serial0/0/2]undo shutdown 
[R1-Serial0/0/2]quit
[R1]
[R2]int s0/0/2
[R2-Serial0/0/2]shutdown 
[R2-Serial0/0/2]undo shutdown 
[R2-Serial0/0/2]quit
[R2]

         6.观察抓包结果

        同样观察到三次握手

八、参考文献

        [1] 朱小平.网络规划设计师5天修炼[M]. 北京:中国水利水电出版社,2018.

        [2] 华为.Hedex Lite文档

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐