PPP中的CHAP認證實驗
一、CHAP認證基本介紹
1.主驗證方和被驗證方都有一對用戶名和密碼。
2.主認證方主動發起請求,向被認證方發送一個隨機提出報文和本端的用戶名。
3.被認證方收到的用戶名查找自己用戶表中與主認證相同的用戶名所對應的密碼,如果沒找到則認證失敗;如找到則把密碼、本端用戶名、連同先前的報文ID用MD5算法加密後的文件發回主認證方。
4.主認證方收到報文後,根據報文中被認證的用戶名,在自己的本地用戶數據庫中查找被認證方用戶名對應的密碼,利用報文ID、該密碼和MD5算法對原隨機報文加密,然後將加密的結果和被認證方發來的加密結果進行比較。如果相同則通過認證,如果不通過則認證失敗。
二、實驗環境
兩臺路由器通過Serial 1/0/0接口互聯,互聯地址分別爲10.0.0.1/24、10.0.0.2/24,做CHAP認證,AR1是主驗證方,AR2是被驗證方。
三、實驗基本配置
AR1接口IP地址配置
[AR1]interface Serial 1/0/0
[AR1-Serial1/0/0]ip address 10.0.0.1 24
AR1建立驗證用戶
[AR1]aaa
[AR1-aaa]local-user r1 password cipher 123
[AR1-aaa]local-user r1 service-type ppp
AR2接口IP地址配置
[AR2]interface Serial 1/0/0
[AR2-Serial1/0/0]ip address 10.0.0.2 24
四、CHAP配置
1.配置命令
[AR1]int Serial 1/0/0
[AR1-Serial1/0/0]ppp authentication-mode chap
[AR2]interface Serial 1/0/0
[AR2-Serial1/0/0]ppp chap user r1
[AR2-Serial1/0/0]ppp chap password cipher 123
2.抓包結果
發現主驗證方並沒有發送用戶名。
被驗證方有主驗證方的用戶名。
3.主驗證方接口沒有配ppp chap user r1,在發起認證請求時就沒有用戶名,不會直接把用戶數據庫的用戶名發給對方驗證。
被驗證方用戶數據庫裏沒有r1,在接口配置了chap認證用戶名r1,接口配置的用戶優先級大於數據庫裏的用戶,所以被驗證方發送的回覆報文用戶名爲r1。
五、CHAP配置二
接上面的實驗,如果在AR1的接口下加上ppp chap user r1,那麼AR1發送的CHAP認證請求就會帶有R1。
在AR1上Serial1/0/0接口上加條命令
[AR1-Serial1/0/0]ppp chap user r1
這樣主驗證方發送的認證請求就有用戶名了。
六、CHAP配置三
繼續上面的實驗,AR2裏沒有用戶數據庫,AR2作爲被驗證方發送認證回覆報文是調用Serial1/0/0接口上配置的用戶名和密碼,如果AR2建立了r1的用戶名和密碼,那麼接口上可以不用配置密碼,直接調用AR2本地r1用戶的密碼。
配置命令
[AR2]aaa
[AR2-aaa]local-user r1 password cipher 123
[AR2-aaa]local-user r1 service-type ppp
[AR2-Serial1/0/0]undo ppp chap password \\密碼可以刪掉,用戶名不可以刪,如果用戶名刪掉主驗證方就不發送驗證請求了
通過驗證
AR1接口上的用戶名不可以刪,如果刪掉的話
無法通過驗證
七、實驗總結
1.主驗證方如果在接口不配用戶名,那麼發給被驗證方的驗證請求中不帶用戶名,被驗證方根據接口配置的用戶名和密碼發送回覆報文。
2.主驗證方配置用戶名的話,被驗證方就可以根據用戶名查找本地的用戶數據庫,找的密碼,然後回覆給主驗證方。