PPP中的认证方式有pap和chap两种,这两种认证既可以单独使用也可以结
合使用。并且既可以进行单向认证也可以进行双向认证。
pap是两次握手,认证首先由被认证方发起认证请求,将自己的用户名和密码以
明文的方式发送给主认证方。然后,主认证方接受请求,并在自己的本地用户数据库里查找是否有对应的条目,如果有就接受请求。如果没有,就拒绝请求。这种认证方式是不安全的,很容易引起密码的泄露,但是,相对于CHAP认证方式来说,节省了宝贵的链路带宽。比如说现在的Internet拨号认证接入方式就是PAP认证。
chap是三次握手,认证首先由主认证方发起认证请求,向被认证方发送“挑战”
字符串(一些经过摘要算法加工过的随机序列)。然后,被认证方接到主认证方的认证请求后,将用户名和密码(这个密码是根据“挑战”字符串进行MD5加密的密码)发回给主认证方。最后,主认证方接收到回应“挑战”字符串后,在自己的本地用户数据库中查找是否有对应的条目,并将用户名对应的密码根据“挑战”字符串进行MD5加密,然后将加密的结果和被认证方发来的加密结果进行比较。如果两者相同,则认为认证通过,如果不同则认为认证失败 先来讲下pap 认证
1、单向认证
R1只做如下配置(验证服务端)
在配置模式下设定用户名和密码(用户名和密码随意)
R1(config)#username a password 123
在端口模式下进行协议的封装和认证方式的指定
R1(config-if)#encapsulation ppp R1(config-if)#ppp authentication pap R2只做如下配置(验证客户端)
在端口模式下进行协议的封装和发送验证信息(对方设置的用户名和密码)
R2(config-if)#encapsulation ppp
R2(config-if)#ppp pap sent-username a password 123
这样就可以完成pap的单向认证
2、双向认证
(其实做完上面的步骤仔细一想,如果两边既是服务端又是客户端口,这样就是双向认证了,不必看下面的也知道该怎么配双向认证了)
R1只做如下配置(既是验证服务端又是客户端)
在配置模式下设定用户名和密码(用户名和密码随意)
R1(config)#username a password 123
在端口模式下进行协议的封装、认证方式的指定和发送验证信息(对方设置的用户名和密码)
R1(config-if)#encapsulation ppp R1(config-if)#ppp authentication pap
R1(config-if)#ppp pap sent-username b password 456 R2只做如下配置(既是验证服务端又是客户端)
在配置模式下设定用户名和密码(用户名和密码随意)
R2(config)#username b password 456
在端口模式下进行协议的封装、认证方式的指定和发送验证信息(对方设置的用户名和密码)
R2(config-if)#encapsulation ppp R2(config-if)#ppp authentication pap
R2(config-if)#ppp pap sent-username a password 123
这样即可完成pap的双向认证 再来说说chap认证
1、单向认证
R1只做如下配置(验证服务端)
在配置模式下设定用户名和密码(用户名和密码随意)
R1(config)#username a password 123
在端口模式下进行协议的封装和认证方式的指定
R1(config-if)#encapsulation ppp R1(config-if)#ppp authentication chap R2只做如下配置(验证客户端)
在端口模式下进行协议的封装和认证时的用户名和密码指定(记住这里不发送用户名和密码,而是发送一个经过加密密码的一个字符串)
R2(config-if)#encapsulation ppp R2(config-if)#ppp chap hostname a R2(config-if)#ppp chap password 123
这样就可以完成chap的单向认证
2、双向认证
(这里和pap有所有同,请注意)
R1只做如下配置(既是验证服务端又是客户端)
在配置模式下设定用户名和密码(用户名可随意且可以不同但密码一定相同,因为最终核对的是同一个密码加密后散列函数,如果密码都不同,认证肯定失败)
R1(config)#username a password 123
在端口模式下进行协议的封装和认证方式的指定
R1(config-if)#encapsulation ppp R1(config-if)#ppp authentication chap
R1(config-if)#ppp chap hostname b //这里只需指定用户名就可以,因为密
码双方都知道
R2只做如下配置(既是验证服务端又是客户端)
在配置模式下设定用户名和密码(同上)
R2(config)#username b password 123
在端口模式下进行协议的封装和认证时的用户名和密码指定(记住这里不发送用户名和密码,而是发送一个经过加密密码的一个字符串,也可以解释为什么这里没有sent-username命令)
R2(config-if)#encapsulation ppp R2(config-if)#ppp authentication chap R2(config-if)#ppp chap hostname a //同上
这样即可完成chap的双向认证
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。