华为H3C交换机+Radius+mysql Radius认证认证方案,嵌入式客户端代码,配置(上:认证方案)
轉載?EZcast?
(一)Radius認證方案說明:
當交換機設置成需要認證模式,交換機只允許認證協議包通過交換機,其他網絡數據包不允許通過,直到認證通過,交換機開放端口。
Radius認證方案是一個由客戶端,設備和服務器三個實體組成的解決方案。客戶端負責與交換機通信(通過802.1x協議),發(fā)送認證請求和數據包;交換機將客戶端上送的用戶名和密碼通過加密轉送給服務器;服務器存儲認證用戶名和密碼,并對交換機通過CHAP/EAP協議送過來的用戶名和密碼進行驗證,返回認證結果;如果通過認證,交換機開放端口,網絡數據包可以通過交換機。
3.1 Radius認證體系結構
??????
802.1X系統(tǒng)為典型的Client/Server結構,如圖?1?所示,包括三個實體:客戶端(Client)、設備端(Device)和認證服務器(Server)。
?
圖 1 802.1X認證體系結構
客戶端?是位于局域網段一端的一個實體,由該鏈路另一端的設備端對其進行認證。客戶端一般
為一個用戶終端設備,用戶可以通過啟動客戶端軟件發(fā)起802.1X?認證。客戶端必須支持
EAPOL(Extensible Authentication Protocol over LAN,局域網上的可擴展認證協議)。(NCU監(jiān)控在該體系架構中屬于Client的角色,如果監(jiān)控需要支持Radius認證功能,需要做的工作就是移植或者開發(fā)一個802.1X客戶端)。
?
設備端?是位于局域網段一端的另一個實體,對所連接的客戶端進行認證。設備端通常為支持
802.1X?協議的網絡設備,它為客戶端提供接入局域網的端口,該端口可以是物理端口,也可
以是邏輯端口。(設備端一般為交換機,目前華為與思科等廠家的交換機基本上支持Radius認證功能,除少部分較老型號的產品)。
?
認證服務器?是為設備端提供認證服務的實體。認證服務器用于實現對用戶進行認證、授權和計
費,通常為RADIUS(Remote Authentication Dial-In User Service,遠程認證撥號用戶服務)
服務器。(認證服務器一種是純軟件,部署在虛擬機下,例如FreeRadius等開源軟件;一種是硬件加軟件成套設備)。
?
3.2認證客戶端
客戶端為一個802.1x客戶端,通過802.1x協議與交換機交互,客戶端主動向交換機發(fā)送認證請求,交換機接受到請求后向客戶端請求相關的認證協議包。
3.2.1 客戶端對802.1x協議支持
802.1X協議是一種基于端口的網絡接入控制協議(port based network access control protocol)。“基于端口的網絡接入控制”是指在局域網接入設備的端口這一級對所接入的用戶設備進行認證和控制。連接在端口上的用戶設備如果能通過認證,就可以訪問局域網中的資源;如果不能通過認證,則無法訪問局域網中的資源。
?
有協議就有報文,802.1X對應的數據包是EAP(Extensible Authentication Protocol)和EAPOL(Extensible Authentication Protocol over LAN),EAPOL是對EAP的封裝(報文可以看出來)使其能夠在局域網中以廣播包或組播包的形式傳輸。通過EAP數據包再與遠端的RADIUS(用戶遠程撥號接入服務系統(tǒng))服務器進行認證,設備端與認證服務器之間交互信息采用的是radius數據包。
?
?
圖1 EAPOL報文格式
?
?
圖2 EAP報文格式
當EAPOL數據幀格式Type域為EAP-Packet(認證信息幀)時,Packet Body的內容為EAP數據報文(即圖2)。
3.2.2客戶端認證過程
???????802.1X?系統(tǒng)支持EAP?中繼方式和EAP?終結方式與遠端RADIUS?服務器交互完成認證。以下關于兩種認證方式的過程描述,都以客戶端主動發(fā)起認證為例。
?
???????1. EAP?中繼方式
這種方式是?IEEE 802.1X?標準規(guī)定的,將EAP(可擴展認證協議)承載在其它高層協議中,如EAPover RADIUS,以便擴展認證協議報文穿越復雜的網絡到達認證服務器。一般來說,EAP?中繼方式需要RADIUS?服務器支持EAP?屬性:EAP-Message?和Message-Authenticator,分別用來封裝EAP報文及對攜帶EAP-Message?的RADIUS?報文進行保護。
下面以EAP-MD5?方式為例介紹基本業(yè)務流程,如圖?2?所示。
圖 2?IEEE 802.1X?認證系統(tǒng)的EAP?中繼方式業(yè)務流程
?
認證過程如下:
(1)?當用戶有訪問網絡需求時打開802.1X?客戶端程序,輸入已經申請、登記過的用戶名和密碼,
發(fā)起連接請求(EAPOL-Start?報文)。此時,客戶端程序將發(fā)出請求認證的報文給設備端,
開始啟動一次認證過程。
?
(2)?設備端收到請求認證的數據幀后,將發(fā)出一個請求幀(EAP-Request/Identity?報文)要求用戶
的客戶端程序發(fā)送輸入的用戶名。
?
(3)?客戶端程序響應設備端發(fā)出的請求,將用戶名信息通過數據幀(EAP-Response/Identity?報文)
發(fā)送給設備端。設備端將客戶端發(fā)送的數據幀經過封包處理后(RADIUS Access-Request?報
文)送給認證服務器進行處理。
?
(4) RADIUS?服務器收到設備端轉發(fā)的用戶名信息后,將該信息與數據庫中的用戶名表對比,找到
該用戶名對應的密碼信息,用隨機生成的一個加密字對它進行加密處理,同時也將此加密字通
過RADIUS Access-Challenge?報文發(fā)送給設備端,由設備端轉發(fā)給客戶端程序。
?
(5)?客戶端程序收到由設備端傳來的加密字(EAP-Request/MD5 Challenge?報文)后,用該加密
字對密碼部分進行加密處理(此種加密算法通常是不可逆的),生成EAP-Response/MD5
Challenge?報文,并通過設備端傳給認證服務器。
?
(6) RADIUS?服務器將收到的已加密的密碼信息(RADIUS Access-Request?報文)和本地經過加
密運算后的密碼信息進行對比,如果相同,則認為該用戶為合法用戶,反饋認證通過的消息
(RADIUS Access-Accept?報文和EAP-Success?報文)。
?
(7)?設備收到認證通過消息后將端口改為授權狀態(tài),允許用戶通過端口訪問網絡。在此期間,設備
端會通過向客戶端定期發(fā)送握手報文的方法,對用戶的在線情況進行監(jiān)測。缺省情況下,兩次
握手請求報文都得不到客戶端應答,設備端就會讓用戶下線,防止用戶因為異常原因下線而設
備無法感知。
?
(8)?客戶端也可以發(fā)送EAPOL-Logoff?報文給設備端,主動要求下線。設備端把端口狀態(tài)從授權狀
態(tài)改變成未授權狀態(tài),并向客戶端發(fā)送EAP-Failure?報文。
?
2. EAP?終結方式
這種方式將EAP報文在設備端終結并映射到RADIUS報文中,利用標準RADIUS協議完成認證、授權和計費。設備端與RADIUS服務器之間可以采用PAP或者CHAP認證方法。以下以CHAP認證方法為例介紹基本業(yè)務流程,如圖?3?所示。
??????
???????????????????????????????????圖?3 IEEE 802.1X?認證系統(tǒng)的EAP?終結方式業(yè)務流程
(1)?用戶有上網需求時打開802.1x客戶端,輸入已經登記過的用戶名和密碼,發(fā)起連接請求(EAPOL-Start報文)。此時,客戶端程序將發(fā)出請求認證的報文給NAS,開始啟動一次認證過程。(2) NAS收到請求認證的數據幀(EAPOL-Start)后,將發(fā)出一個請求幀(EAP-Request/Identity報文)要求用戶的客戶端程序發(fā)送輸入的用戶名。
(3)?客戶端程序將用戶名信息通過數據幀(EAP-Response/Identity報文)送給NAS。直到這里,認證過程中的前三步和EVP中繼方式完全相同。
(4)?接下來, NAS收到客戶端送上來的數據幀(EAP-Response/Identity報文)后,沒有上傳至認證服務器,而是用服務器的一個加密字,并將將此加密字的通過數據幀(EAP-Request/MD5 Challenge報文)交給客戶端程序。
(5)?客戶端程序收到加密字(EAP-Request/MD5 Challenge報文)后,用該加密字對密碼部分進行加密處理,生成EAP-Response/MD5 Challenge報文發(fā)送給NAS。
(6) NAS收到加密密碼(EAP-Response/MD5 Challenge)后,用CHAP協議對用戶名、加密密碼、加密字等認證信息重新封裝成標準的Radius報文(RADIUS Access-Requeset報文) ,送給認證服務器進行處理。
(7)?認證服務器收到的認證信息(RADIUS Access-Requeset報文)后,根據收到的用戶名信息在數據庫中查找對應的密碼信息,用收到的加密字對密碼信息進行加密處理得到自己的加密密碼。然后和收到的加密密碼信息進行對比,如果相同,則認為該用戶為合法用戶,反饋認證通過的消息(RADIUS Access-Accept報文)給NAS。
(8) NAS向客戶端程序反饋認證通過消息( EAP-Success報文),將端口狀態(tài)改為授權狀態(tài),允許用戶通過該端口訪問網絡。
(9)?客戶端可以發(fā)送EAPOL-Logoff報文給NAS,主動終止已認證狀態(tài),交換機將端口狀態(tài)從授權狀態(tài)改變成未授權狀態(tài)。
兩種認證方式比較:
EAP中繼方式與EAP終結方式的認證流程十分類似,不同之處主要在于加密字的生成處理及傳遞方式。在EAP中繼方式中,用來對用戶口令信息進行加密處理的隨機加密字由認證服務器生成,交換機只是負責將EAP報文透傳認證服務器,整個認證處理都由認證服務器來完成。而在EAP終結方式中,用來對用戶密碼信息進行加密處理的隨機加密字由NAS生成,NAS會把用戶名、隨機加密字和客戶端加密后的密碼信息一起送給認證服務器,進行相關的認證處理。
優(yōu)缺點:
EAP中繼方式優(yōu)點是NAS設備處理更簡單,支持更多的認證方式,缺點則是認證服務器必須支持EAP;而EAP終結方式的優(yōu)點是認證服務器無需升級,現有的Radius服務器可以繼續(xù)使用,缺點是NAS設備處理更復雜。
若為了兼容Radius服務器,節(jié)省用戶投資,建議NAS選擇EAP終結方式。
3.3.認證設備
認證設備為交換機,設備需要支持Radius協議,客戶端接入到認證設備一端,認證設備另一端接Radius服務器。
3.3.1設備網絡認證選擇
不認證:信任用戶,無需任何認證,無網絡安全需求時使用。
本地認證:將用戶信息(用戶名,密碼,屬性)配置在接入服務器上(Switch)。本地認證優(yōu)點是速度快,運營成本低,但存儲信息量受限制。
只在交換機本地上完成認證,而不需要經過Radius服務器,這種認證方式一般用于備用方案,以交換機本地配置的認證用戶名和密碼進行認證,這樣可以保證當Radius Server宕機時,不至于整個網絡都無法使用。
遠端認證:通過協議進行遠端認證。
客戶端先通過8021.x協議與交換機通信,交換機通過MD5加密將用戶名和密碼通過EAP中繼/終結方式轉送給Radius服務器進行認證,Radius返回認證結果給交換機,開放交換機端口。
3.3.2設備接入控制方式
基于端口:
當采用基于端口的接入控制方式時,只要該端口下的第一個用戶認證成功后,其它接入用戶無須認證就可使用網絡資源,但是當第一個用戶下線后,其它用戶也會被拒絕使用網絡。
基于端口的認證方式下,一旦有一個用戶通過認證,端口就處于打開狀態(tài),任何其他用戶都可以通過該端口訪問網絡,這對無線接入訪問點而言是足夠的,因為一個用戶占用一個信道。但在電信接入和學校等環(huán)境中,以端口為對象的控制粒度難以滿足安全要求,基于MAC地址邏輯端口控制勢在必行
基于MAC地址:
基于MAC的認證方式下,H3C公司的實現是通過在MAC表項中添加/刪除用戶主機MAC的方式來實現的,通過認證的用戶MAC將被添加到MAC表項中,這樣用戶就具備權限訪問網絡了。反之,沒有通過認證的用戶主機MAC是不會出現在MAC表項中的,因此就沒有訪問網絡的權限。
3.3.3 設備認證方式
CHAP認證方式:
EAP認證方式:
對于EAP方式的話,由于設備是實行EAP透傳,不對用戶名和其后綴域名進行改動。分析和上面一致。差別就是上傳到3A的username是帶域名還是不帶域名是由認證輸入來決定(即用戶輸入),而不再是設備。
H3C交換機默認采用chap認證方式。
注:交換機根據域名查找其對應的配置的Radius scheme。
3.4認證服務器
認證服務器接入在交換機的另外一端,為 RADIUS 客戶端發(fā)送的所有訪問請求提供中心身份驗證和授權服務。當用戶通過認證后,認證服務器會把用戶的相關信息傳遞給NAS,由NAS構建動態(tài)的訪問控制列表。
3.4.1服務器端認證協議
AAA是認證(Authentication)、授權(Authorization)和計費(Accounting)的縮寫,它是運行于NAS(網絡訪問服務器)上的客戶端程序。提供了一個用來對認證、授權和計費這三種安全功能進行配置的一致性框架,實際上是對網絡安全的一種管理。這里的網絡安全主要指訪問控制。包括哪些用戶可以訪問網絡服務器;具有訪問權的用戶可以得到哪些服務;以及如何對正在使用網絡資源的用戶進行計費網絡認證方式。
常用的AAA協議是Radius協議。
3.4.2認證服務器選擇
LDAP服務器:
LDAP是輕量目錄訪問協議,英文全稱是Lightweight Directory Access Protocol,它是基于X.500標準的,主要用于統(tǒng)一認證服務器。
比如要使用samba做文件共享,在windows中訪問共享文件是需要輸入用戶名密碼,驗證通過后才可以讀或者寫文件。在未配置ldap服務器以前,samba用戶信息在本地保存,也就是說如果有多個samba服務器則需要在多臺機器上重復建立認證賬戶信息,管理不方便。建立ldap后就可以將需要認證的用戶全部放到ldap服務器上,這樣就可以避免重復建立samba的認證賬戶,方便統(tǒng)一管理賬戶信息
目錄服務,給予不同的用戶不同的訪問權限,LDAP的支持,因為他們根本不用考慮另一端(客戶端或服務端)是怎么樣的,LDAP服務器安裝起來很簡單,也容易維護和優(yōu)化。
?
Radius服務器:
Radius是一種專門的認證協議,支持多樣的認證方式。除了最常見的pap,chap等,還支持EAP(擴展認證協議),這是LDAP協議中沒有的。
服務器選擇:
LDAP是一種簡化了的數據庫,而Radius則提供多樣的認證方式。
目前的電信網絡成熟認證方案基本802.1x+Radius+LADP,LDAP作為統(tǒng)一用戶名和密碼,不單獨做認證功能。根據實際的需求和方案的成熟性我們選擇Radius作為認證服務器。
3.4.3 RADIUS網絡安全
RADIUS協議的加密是使用MD5加密算法進行的,在RADIUS的客戶端(NAS)和服務器端(RADIUS Server)保存了一個密鑰(key),RADIUS協議利用這個密鑰使用MD5算法對RADIUS中的數據進行加密處理。密鑰不會在網絡上傳送。
RADIUS的加密主要體現在以下兩方面:
包加密:
在RADIUS包中,有16字節(jié)的驗證字(authenticator)用于對包進行簽名,收到RADIUS包的一方要查看該簽名的正確性。如果包的簽名不正確,那么該包將被丟棄,對包進行簽名時使用的也是MD5算法(利用密鑰),沒有密鑰的人是不能構造出該簽名的。
口令加密:
在認證用戶時,用戶的口令在NAS和RADIUS Server之間不會以明文方式傳送,而是使用了MD5算法對口令進行加密。沒有密鑰的人是無法正確加密口令的,也無法正確地對加密過的口令進行解密。
口令加密與口令驗證過程:
例如CHAP(挑戰(zhàn)握手認證協議),它提供對用戶口令進行加密的機制。
?
當用戶請求上網時,NAS產生一個16字節(jié)的隨機碼給用戶(同時還有一個ID號,本地路由器的Host name)。用戶端得到這個包后使用自己獨有的設備或軟件客戶端將CHAP ID、用戶密碼(口令字)用MD5算法對該隨機碼進行加密生成一個Secret Password,隨同用戶名user name一并傳給NAS。
NAS把傳回來的user name和Secret Password分別作為用戶名和密碼,并把原來的16字節(jié)隨機碼以及CHAP ID傳給RADIUS服務器。RADIUS根據用戶名在服務器端查找數據庫,得到和用戶端進行加密所用的一樣的密鑰,用MD5算法對CHAP ID,密鑰和傳來的16字節(jié)的隨機碼進行加密,將其結果與傳來的Password作比較,如果相匹配,服務器送回一個接入允許數據包,否則送回一個接入拒絕數據包。
總結
以上是生活随笔為你收集整理的华为H3C交换机+Radius+mysql Radius认证认证方案,嵌入式客户端代码,配置(上:认证方案)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CCSP 云安全认证-法律与合规风险
- 下一篇: 2016百度之星 - 初赛(Astar