在《xl2tpd極簡配置部署》中,所使用的xl2tpd沒有用戶名和密碼的驗證。
xl2tpd的驗證可以是雙向的,LNS可以要求LAC進行驗證,LAC同樣可以要求LNS進行驗證,兩個方向的驗證可以同時存在。
一般而言僅設置LNS對LAC的驗證。本例中假設LNS為驗證發起方,LNC為驗證響應方。
驗證發起方設置
1)編輯服務器pppd驗證配置文件。
若使用EAP(Extensible Authentication Protocol,可擴展的身份驗證協議)和CHAP(Challenge Handshake Authentication Protocol,質詢握手認證協議)驗證,編輯文件/etc/ppp/chap-secrets。
若使用PAP(PasswordAuthenticationProtocol,密碼認證協議),編輯文件/etc/ppp/pap-secrets。
若在pppd的配置文件中可以使用require-xxx和refuse-xxx指定或者拒絕某種驗證方法,如require-mschap-v2,refuse-pap。
若無特別指明,默認使用EAP驗證,不推薦使用PAP認證,因為該方法在認證時密碼為明文。
以下為chap-secrets文件內容:
# Secrets for authentication using CHAP
# client server secret IP addresses
test * 111111 *
上述配置共四列信息,分別為:
client 允許通過驗證的用戶名,此例中為"test"。
server 為那個/etc/xl2tpd.conf中的哪個LNS服務提供驗證,若為星號則不區分。
secret 密碼,可以加上雙引號,此例中為“111111”。
IP address 限定前來連接的IP地址,星號表示不限制,若需要限制,可以配置成靜態IP(如192.168.1.5)或帶掩碼長度的動態IP段(如192.168.1.128/25)。
以#開頭的內容為注釋內容。
2)編輯服務器pppd配置文件:/etc/ppp/options.xl2tpd,增加配置信息“auth”:
#要求客戶端進行用戶名和密碼的認證
auth
options.xl2tpd文件名及其路徑可以自定義,只要和/etc/xl2td/xl2tpd.conf中配置的路徑相符即可。
3)修改服務器xl2tpd配置文件:/etc/xl2tpd/xl2tpd.conf,增加options.xl2tpd配置文件的路徑pppoptfile:
[lns default] ip range = 172.16.0.1-172.16.0.254 local ip range = 172.17.0.1 pppoptfile = /etc/ppp/options.xl2tpd
(也可以在/etc/xl2tpd/xl2tpd.conf中增加 require authentication = yes,與第二步中在pppd選項配置文件options.xl2tpd中增加auth效果一樣,都是要求對端進行驗證)
4)重啟xl2tpd服務。
驗證響應方配置
編輯pppd配置文件:/etc/ppp/peers/vpntest.xl2tpd
user 'test'
password '111111'
user 用於撥號驗證的用戶名
password 用於撥號驗證的密碼
用戶名與密碼要在服務端pppd的配置文件chap-secrets或pap-secrets中存在。
注意:客戶端服務器上/etc/xl2tpd/xl2tpd.conf配置文件中的[lac xxx]與/etc/ppp/peers/xxx.xl2tpd中的xxx要一致,這里都是vpntest。可以配置多個LAC以對應不同的LNS服務,但要在/etc/ppp/peers目錄下為每個LAC創建對應的xxx.xl2tpd配置文件。
在驗證時如果用戶名或密碼不對,或者一方要求某種驗證方式但是另一方不支持該方式時,都會連接失敗並在系統日志中提示 。