演示:使用PKI架構完成VPN的PEAP身份認證
目標:
1理解PEAP(protectedExtensible Authentication Protocol )
2關於PEAP的工作過程:
3PEAP-MS-CHAP v2和MS-CHAP v2是不是同一個協議,如果不是區別在哪裡?
4演示:使用PKI架構完成VPN的PEAP身份認證
解PEAP(protectedExtensible Authentication Protocol )
受保護的可擴充套件身份驗證協議 (PEAP) 是可擴充套件身份驗證協議 (EAP) 協議的一個新成員,PEAP是為在TLS保護的通道中執行某種EAP型別的身份驗證,這個某種EAP型別的身份驗證可能是基於微軟可擴充套件身份驗證協議EAP-MS-CHAPv2,它要求基於鑑別伺服器的證書完成。或者說PEAP只需要VPN伺服器的證書就可完成安全通訊的建立,通常在沒有活動目錄的獨立網路環境中,建議使用PEAP來加強身份驗證的安全性。具體工作過程如下所述:
關於PEAP的工作過程:
如下圖4.79所示,VPN伺服器將代表自己身份的機器證書(事實上證書上存放的正是VPN伺服器的公鑰)傳送給VPN客戶端,客戶端使用VPN伺服器的證書來建立加密隧道保護MSCHAPv2的身證鑑別過程,這樣使其MSCHAPv2的身證鑑別過程更安全,因為它的整個過程被安全隧道所保護,只有VPN伺服器可以使用自己的私鑰來解密。
PEAP-MS-CHAPv2和MS-CHAP v2是不是同一個協議,如果不是區別在哪裡?
事實上它們是同一個協議,區別在於PEAP-MS-CHAP v2在實施身份鑑別過程時,被加密隧道所保護,而MS-CHAPv2則沒有被保護,所以PEAP-MS-CHAPv2的安全性高於MS-CHAPv2,它們的具體區別下表4.80所示:
演示:使用PKI架構完成VPN的PEAP身份認證
演示目標:在微軟的VPN解決方案中使用PEAP完成身份鑑別
演示環境:如下圖4.81所示。
演示背景:邊界VPN閘道器將企業網路分為內外兩個部分,為了證實驗更真實路由器允當電信運營商裝置(公共網路上的路由器),202.202.2.2為VPN客戶端,它需要使用遠端撥號VPN的形式訪問企業內部網路上的檔案伺服器,在通常的情況下多數使用者都使使用PPTP的撥號方式,MS-CHAPv2的方案來完成身份鑑別,因為這種方案實施簡單且快捷,但是在這個演示任務中,需要提升VPN網路的身份鑑別安全級別,要求在PKI的環境中,使用證書來完成PEAP的身份鑑別,事實上就是使用VPN伺服器安全證書來建立保護MS-CHAPv2的鑑別過程。關於PEAP的身份鑑別的原理請參看本專案的任務一。
演示步驟:
第一步:完成圖4.81所示網路環境的基礎配置,其中包括配置路由器R1、在路由器R1上啟動路由,具體配置如下所示:
路由器R1的介面地址配置:
R1(config)#inte e1/0
R1(config-if)#ip address 202.202.1.2 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#exit
R1(config)#inte e1/1
R1(config-if)#ipaddress 202.202.2.1 255.255.255.0
R1(config-if)#noshutdown
R1(config-if)#exit
R1(config)#inte e1/2
R1(config-if)#ipaddress 202.202.3.1 255.255.255.0
R1(config-if)#noshutdown
R1(config-if)#exit
在路由器R1為各個子網啟動RIPv2的路由:
R1(config)#router rip
R1(config-router)#version 2
R1(config-router)#no auto-summary
R1(config-router)#network202.202.1.0
R1(config-router)#network202.202.2.0
R1(config-router)#network202.202.3.0
R1(config-router)#exit
第二步:現在開始配置VPN伺服器的VPN功能和路由功能,在配置前就將伺服器上的兩張網路卡,分別如下圖4.82所示,進行標識性命名,這樣在配置時,可以更直觀的讓管理明白,哪張網路卡連線的是內網,哪張連線的是外網。然後啟動Windows2003的路由和遠端訪問功能,彈出如下圖4.83所示,要求為遠端訪問伺服器確定遠端訪問的功能,在這裡請選擇“遠端訪問(撥號或者VPN)”。然後單擊下一步。
在圖4.84的對話方塊中選擇遠端訪問伺服器的具體功能,在這裡請選擇“VPN”,然後下一步,在圖4.85的對話方塊中選擇用於連線到Internet網路的介面(事實上,就是要求管理員指定外部介面),選擇“out”這張網路卡。然後單擊下一步。
出現如圖4.86的對話方塊,要求為VPN客戶端指定分配IP地址的方案,這裡有兩個選項,它們的意義分別如下所述:
ü自動:指示如果使用者的內部網路中存在DHCP伺服器,那麼這將是一個很好的選擇,你就不需要在VPN伺服器上為VPN客戶端指派需要分配的IP地址,整個過程將由DHCP伺服器完成。
ü來自一個指定地址範圍:指示如果使用者的內部網路上不存在DHCP伺服器,那麼,此時可以在VPN伺服器上為VPN客戶端指派需要分配的IP地址。
在這裡請選擇“來自一個指定地址範圍:”然後彈出如下圖4.87所示的對話方塊,在其中
輸入當VPN客戶端撥號時,需要分配給它們的開始地址和結束地址,那麼在這個開始地址和結束地址之間的IP地址將被分配給VPN客戶端。確定後下一步。
注意:微軟的VPN伺服器在給VPN客戶端分配IP地址時遵守這樣一個原則:在配置的地址池中的第一個地址將被VPN閘道器所使用(也可以理解成VPN客戶端撥號成功後,用於連入內網的閘道器)然後將第二個地址分配給VPN客戶端,比如圖4.87所配置的地址範圍,192.168.1.200將被VPN伺服器所使用,然後將192.168.1.201分配給第一個VPN客戶,那麼VPN客戶就使用192.1681.201這個地址來連線VPN閘道器192.168.1.200。
在圖4.88的對話方塊中,提示是否管理多個遠端訪問伺服器,也就是選擇VPN伺服器完成身份驗證的方式,它提供瞭如下兩種方式:
ü否,使用路由和遠端訪問來對連線請求進行身份驗證:如果網路上暫時只有一臺VPN伺服器,不存在多臺VPN伺服器需要被管理,可以選擇該選項,選擇該選項的意思就是,使用VPN伺服器對遠端VPN客戶端進行身份驗證,此時的鑑別伺服器就是VPN伺服器。鑑別所需要的使用者名稱和密碼,就儲存在VPN伺服器本地,使用這種驗證方式存在一個問題如果網路上有多臺VPN伺服器,那麼進行安全驗證的資料庫將被分存在多個不同的地方,這對提升安全的可靠性不太有利,因為分散的安全驗證永不如集中的安全驗證。
ü否,設定此伺服器與RADIUS伺服器一起工作:如果網路上有多臺VPN伺服器,那麼這將是一個不錯的選擇,如下圖4.89所示,此時所有的VPN伺服器不再充當身份鑑別伺服器,最多算是個身份鑑別代理,它將接收所有客戶端發來的身份驗證請求,但是它不負責驗證,只將這些驗證請求轉發給網路中的RADIUS伺服器(也就是集中驗證伺服器),由它來負責誰可撥入,誰不可撥入。因為所有驗證要求的使用者名稱和密碼不再儲存於多臺且分散的VPN伺服器上,而是統一的儲存在RADIUS伺服器上,因為集中安全總比分散安全更好。
當完成上述配置後,單擊下一步,會出現路由和遠端訪問服務配置完成的對話方塊,請點選完成,然後待系統啟動路由和遠端訪問服務即可,啟動完成後,最終會得到如圖4.90的介面。
現在來配置VPN伺服器的路由功能,為了讓實驗的效果完全與真實環境的VPN一樣,所以該演示專案嚴格區別公共IP地址和RFC1918(私有網路專用IP地址),並且使用了一臺路由器來模擬運營商的裝置,所以必須要為VPN伺服器啟動路由,達到兩個目標,第一:VPN伺服器的內部網路不被RIP所公告,因為在真實的工作環境中,你公告企業網路的私有專用IP也沒有任何意義,因為公共網路不認可RFC1918地址。第二:必須保證VPN客戶端在沒有進行VPN撥號之前,可以使用本身的公共IP到達 VPN伺服器的外部介面202.202.1.1,同理,VPN伺服器,必須能成功的到達202.202.2.0/24和202.202.3.0/24的目標公共網路。具體配置如下所述:
首先如下圖4.91在“IP路由選擇”下的“常規”選擇“新增路由協議”,出現圖4.92先擇“用於Internet協議的RIP版本2”單擊“確定”完成路由協議RIPv2的新增。
當完成對VPN伺服器增加RIPv2路由協議後如下圖4.93所示,選擇RIP右擊,選擇“新增介面”為RIP路由協議增加需要公告路由的介面,出現如圖4.94選擇“out”外部介面,在該環境中只需要在外部介面上啟動RIP路由,沒必要在“in”介面上啟動RIP路由,原因在真實環境中啟動了也沒有任何意義,記住公共網路不會認可RFC1918地址。
確保在“out”介面上啟動RIP路由協議後,出現如圖4.95所示的對話方塊,包括RIP的操作查式、更新週期、傳入或者傳出的RIP版本,請保持預設屬性,點選確定。當完成上述RIP的所有配置後,等待30秒左右,然後,在VPN伺服器上使用routeprint指令,檢視路由表,如下圖4.96所示,必須確保202.202.2.0和202.202.3.0的子網被VPN伺服器成功學習。到此為止,完成所有通訊必須的基礎配置。
現在來建立VPN撥號的使用者並配置該使用者允許撥入,如下圖4.97所示,在VPN伺服器的“計算機管理”中的“本地使用者和組”中建立一個名為vpnuser1的撥號使用者,然後選擇該使用者,使用滑鼠右擊屬性,在如圖4.98所示的撥入對話方塊中選擇“允許訪問”。
注意:到此處為止,完成基本VPN的配置,但是目前不包括任何PEAP和使用證書的配置,在現在的配置基礎上,VPN可以使用PPTP協議接合常規的認證方案比如:MS-CHAPv2完成撥入身份鑑別,現在首先償試常規鑑別方式進行VPN撥號,為什麼在這裡需要做一次常規鑑別的VPN撥號?原因很簡單,為了讓學生體會,常規VPN鑑別與PEAP鑑別的差異。
第三步:沒有實施PEAP保護的VPN客戶端的撥號配置,首新建立一個連線嚮導,在如圖4.99中選擇“虛擬專用網路連線”然後下一步,跟著嚮導的提示配置,在圖4.100的對話方塊中輸入VPN伺服器的IP地址(事實上,就是VPN伺服器的外部網路卡上的IP地址)。
當完成新建VPN連線的配置後,如圖4.101開始正式撥號,在撥號對話方塊中輸入撥號的使用者名稱和密碼,該使用者名稱和密碼被事先配置並儲存在VPN伺服器上。如果前面的配置沒有錯誤,那麼此時,應該撥號成功,可以看到如圖4.102所示的成功撥號的詳細資訊,可以看出它所使用的身份驗證方式是MS CHAPV2。
最後你在VPN客戶端上跟蹤到內網192.168.1.100的路徑,如下圖4.103所示,可以看到VPN客戶端直接通過192.168.1.200就到達了192.168.1.100,這裡的192.168.1.200正是VPN伺服器所引用的地址池中的第一個IP地址,在第二步中對此有相關描述。可看出整個的路由跟蹤過程中,沒有出現任何公共IP地址,因為VPN執行了隧道化轉發。
引出PEAP的配置:現在管理員認為常規的MS-CHAPV2的身份鑑別不安全,要求配置VPN伺服器支援PEAP認證,要求客戶端在撥號時通過VPN伺服器證書確認VPN伺服器的身份,並要求VPN客戶端使用VPN伺服器的證書建立安全通道,讓MS-CHAPV2的身份鑑別在安全通道中進行。
第四步:部署202.202.3.100為證書伺服器,並讓VPN伺服器身證書伺服器去申請一張機器證書。在該環境中部署的證書伺服器是基於獨立環境下的CA,如下圖4.104所示,注意使用者在安裝獨立CA之前,必須安裝IIS元件,因為客戶端將使用Web頁面去向CA申請證書,當根據嚮導完成證書伺服器的安裝後,會得到如下圖4.105所示的證書管控臺。
第五步:現在讓VPN伺服器去向CA申請一張伺服器驗證的證書,在VPN伺服器的IE中輸入證書伺服器的Web註冊頁面,如下圖4.106所示,在該頁面中填入申請證書相關的唯一性標識資訊,然後在“需要的證書型別”中選擇“伺服器身份驗證證書”然後鉤選“將證書儲存在本地計算機儲存中”這樣可以確何使用者得到將是一張機器證書,因為PEAP必須使用VPN伺服器的機器證書。
注意:基於部署PEAP鑑別型別VPN的原理,只要求使用VPN伺服器的機器證書,不要求客戶端使用任何證書,所以VPN客戶端不需要向CA申請任何證書,關於這一點可參看本專案任務四中對PEAP工作過程的描述。
當完成上述的證書申請後,待CA上的證書管理員為VPN伺服器頒發證書後,在VPN伺服器的IE中再次定位到證書申請 Web頁面,如圖4.107可看到一張伺服器身份驗證證書,請在VPN伺服器上點選並安裝該證書。然後在如圖4.108的提示安裝證書鏈,這樣可以使VPN伺服器信任該證書頒發機構所頒發的證書,如果不安裝證書鏈,在VPN伺服器上的證書將不受信任,出現一把紅色的小叉。
當VPN伺服器完成了證書安裝,並下載了證書鏈後,可以通過MMC(基於計算機帳戶而不是使用者)開啟證書管控臺,如下圖4.109所示,可看出,該證書的目的是用於保證遠端計算機的身份。
第六步:配置VPN伺服器使用自己的機器證書支援PEAP,要配置VPN伺服器支援PEAP,那麼此時就需要調整VPN伺服器的遠端訪問策略,首先就要理解什麼是VPN的遠端訪問策略。
理解遠端訪問策略:
遠端訪問策略是控制遠端訪問行為(當然也包括VPN撥號)的一種控制措施,它包括了具體什麼時間、哪些使用者可以進行遠端接入,對這些遠端接入是否授予接入許可權、使用什麼樣的身份鑑別技術、允許訪問到什麼程度,訪問多長時間等。Windows 2003的VPN伺服器有一個預設的遠端訪問策略。使用者可以配置預設的遠端訪問策略來支援PEAP的認證,也可以新建一個遠端訪問策略來支援PEAP認證。在這裡將選擇新建一個遠端訪問策略來支援PEAP的認證。
開啟VPN伺服器的“路由和遠端訪問”控制檯,選擇“遠端訪問策略”,可以看到系統預設的遠端訪問策略,現在將這個預設的遠端訪問策略刪除,然後選擇“遠端訪問策略”右擊滑鼠選擇新一個遠端訪問策略,彈出如下圖4.110的對話方塊要求為新建的遠端訪問策略命名,在這裡將其命名為“VPN+EAP”,然後下一步,在如圖4.111的對話方塊中選擇為“VPN”網路建立訪問方法然後下一步。
在如圖4.112的對話方塊中,選擇將訪問許可權授予給“使用者”,然後下一步,在如圖4.113身份驗證對話方塊中,確何只選中“可擴充套件身份驗證協議(EAP)”,在“型別(基於訪問方法和網路配置)”中選中“受保護的EAP(PEAP)”,然後點選“配置”。
彈出如圖4.114所示的對話方塊,在其中選擇要用於保護EAP協議的證書,在這裡請選擇VPNserver這張證書,然後在EAP型別中選擇“受保護的密碼(EAP-MSCHAPv2)”然後點選確定。事實上,這是整個VPN使用PEAP驗證的關鍵,選擇的VPNserver這張證書,是VPN伺服器向客戶端證實自己身份的證書,也是VPN客戶端使用建立安全隧道所使用的公鑰,然而MSCHAPv2將在這個安全隧道中受保護的執行。然後在圖4.115所示的對話方塊內選擇需要使用的加密演算法,可以將40位、56位、128位的加密演算法全部鉤選。然後下一步,在圖4.116的對話方塊中,提示整個針對VPN網路的安全策略配置完成,然後顯示你完成關於該策略的重點配置引數有那些,確保所有資訊無誤後點選完成。
當完成VPN遠端訪問策略的配置後,還需要雙擊策略,在如圖4.117的對話方塊中明確申明“授予遠端訪問許可權”。注意必須這樣做,否則VPN客戶端將無法撥入,因為配置遠端策略的一個重要指導思想就是:“誰能接入,它的接入是被允許還是拒絕”。
當完成上述運程訪問策略的建立後,還必須在VPN伺服器的“計算機管理”的“本地使用者和組”中選中VPN撥號使用者vpnuser1,然後選擇“撥入”屬性中的“遠端訪問許可權”的“通過遠端訪問策略控制訪問”,具體如圖4.118所示,這也是必須的,因為管理員現在已經建立了遠端訪問策略,所以要求使用者在撥號時通過策略來評估是否允許接入。而不是簡單的“允許訪問”或者“拒絕訪問”。
第七步:配置VPN客戶端支援PEAP在如圖4.199的對話方塊中選擇“屬性”,然後擇選安全選項卡下的“高階(自定義設定)”的“設定”,如圖4.120所示。
設定受保護的EAP屬性,如下圖4.121所示,選擇當發生連線時“驗證伺服器證書”選擇“連線到這些伺服器:”並填寫VPN伺服器的IP地址202.202.1.1,然後在受信任的根證書頒發機構中選擇當前環境的證書頒發機構(VPNCA517),使用者可以根據自身網路環境中的證書頒發機構進行設定。然後選擇身份驗證的方法為“安全密碼(EAP-CHAPV2)”最後點選確定,在如圖4.122對話方塊中,輸入訪問憑證,使用者和密碼開始撥號。
當開始撥號時,會彈出如圖4.123所示的提示,您已經到達了VPN伺服器,要求驗證伺服器的證書,問您是否確認它是正確的伺服器,此時你可以點選“檢視伺服器證書”出現如圖4.124所示的VPN伺服器證書來確認是否是VPN伺服器。如果核實證書無誤後請在圖4.123中單擊確定。
當完成撥號後,檢視成功撥號的屬性,可看到如圖4.125所示的資訊,可看到身份證書的方法從傳統的MS-CHAPv2變成了EAP驗證方式。
注意:此時,完成了整個關於PEAP作為VPN身份鑑別方案的配置,PEAP只需要鑑別伺服器的證書,也就VPN伺服器的證書,不需要客戶端提供任何證書,如果為了更高的安全性,要求伺服器和客戶端都提供證書完成VPN的身份鑑別,這需要實施EAP-TLS驗證,關於這種驗證方案的配置將在下一個任務中描述。
本文轉自 kingsir827 51CTO部落格,原文連結:http://blog.51cto.com/7658423/1273108,如需轉載請自行聯絡原作者
相關文章
- 使用java完成ldap身份驗證JavaLDA
- 使用 JWT 認證使用者身份JWT
- Solon Auth 認證框架使用演示(更簡單的認證框架)框架
- PHP 使用 jwt 使用者身份認證PHPJWT
- Java身份證實名認證、身份證識別介面讓您認證任性的“懶”Java
- 增強版實名認證介面-Java身份證實名認證介面程式碼-身份認證Java
- Kerberos身份認證方案ROS
- 網路身份認證——Kerberos配置及認證ROS
- node.js -- 身份認證Node.js
- C++身份核驗介面程式碼、身份證OCR、身份證實名認證APIC++API
- 前端架構之node jwt認證前端架構JWT
- 使用Oracle外部身份認證登入資料庫Oracle資料庫
- 使用Oracle外部身份認證增強安全性Oracle
- 在身份認證後建立使用者物件ICurrentUser物件
- Java身份證實名認證介面解鎖認證新速度Java
- WebApi的建立,部署,Oauth身份認證(一)WebAPIOAuth
- AWS助理架構師認證考經架構
- WebApi身份認證解決方案(1):Basic基礎認證WebAPI
- 重新認識Java微服務架構-認證服務Java微服務架構
- Php中使用者身份認證實現二法PHP
- 基於J2EE架構的統一使用者認證架構
- 企業應用架構研究系列二十八:身份認證 Beginning Out With IdentityServer4應用架構IDEServer
- C++身份證二要素實名認證api、實名認證介面C++API
- [ Office 365 開發系列 ] 身份認證
- oracle 身份認證相關引數Oracle
- C++批次核驗身份證真偽、實名認證介面、身份證識別C++
- 微服務架構 | 7.2 構建使用 JWT 令牌儲存的 OAuth2 安全認證微服務架構JWTOAuth
- 微軟:99.9%的被黑賬戶沒有使用多因素身份認證微軟
- 網路實名制、電商實名認證、身份證實名認證介面
- 去除windows身份認證帶來的安全隱患Windows
- go-kit微服務:JWT身份認證Go微服務JWT
- 紅帽認證架構師(RHCA)-EL6.5架構
- [譯] Angular 安全 —— 使用 JSON 網路令牌(JWT)的身份認證:完全指南AngularJSONJWT
- 使用總結:Laravel 的 passport 密碼授權模式完成 API 認證LaravelPassport密碼模式API
- 蘋果裝置被曝存在PEAP認證漏洞 研究人員對官方修復方案存疑蘋果
- 統一身份認證系統的簡單看法
- 身份認證的盡頭竟然是無密碼 ?密碼
- JWT身份認證(附帶原始碼講解)JWT原始碼