新聞中心

        EEPW首頁 > 手機與無線通信 > 設計應用 > 無線局域網中RADIUS協議的分析和設計

        無線局域網中RADIUS協議的分析和設計

        作者: 時間:2011-10-22 來源:網絡 收藏
        WLAN模型中認證系統的與實現#e#

        本文引用地址:http://www.104case.com/article/155603.htm

          3 WLAN模型中認證系統的與實現

          3.1 WLAN網絡模型的簡化

          在實驗室的模擬環境下,由于網絡用戶少,可以采用中、小型的數據庫來存放所需信息,并可以將服務器與數據庫在同一主機上實現。局交換機可以實現端口控制功能。網絡結構可簡化如下:

          圖2 實驗室環境下WLAN網絡模型

          3.2 NAS

         ?。?)RADIUS客戶端處理程序:負責接收申請者的信息;向RADIUS服務器提交認證、計費、管理等數據包;向申請者返回相應結果。

         ?。?)服務器管理程序:為了方便網絡管理員對RADIUS服務器和數據庫的管理,在NAS主機上,還可以運行服務器管理程序,管理程序的功能應該包括有:管理員模塊(添加、刪除網絡管理員,設置管理員權限等);用戶信息模塊(實現用戶的查詢、添加、刪除等操作);計費信息模塊(查詢用戶的計費信息,創建、修改、刪除各種不同的計費方式,);日志信息模塊等。

         ?。?)用戶信息的提交:用戶需要向NAS提交用戶信息,有多種方法可以實現,最簡單的方法是采用Web方式提交。在NAS上建立一個Web服務器,這樣,用戶可以直接使用瀏覽器來和NAS交互,Web服務器接受到用戶提交的信息后,把這些信息傳給RADIUS的客戶端處理程序。后者把這些信息封裝成RADIUS的接入請求(Access-Request)包格式,通過認證端口(1812)向RADIUS服務器提出認證請求。

         ?。?)計費信息的提交:認證通過之后,NAS客戶端程序通過認證端口(1812)向RADIUS服務器發送包含有用戶名、用戶IP、上網起始時間等信息的“計費請求開始”包(Accounting-Request Start),通知RADIUS服務器開始計費。RADIUS服務器在數據庫中紀錄下相應項,并返回“計費響應”包(Accounting-Response)。當用戶下網時,NAS向RADIUS服務器發送包含有結束時間、數據流量等信息的“計費請求結束”包(Accounting-Request Stop)。后者返回“計費響應”包(Accounting-Response)確認。

         ?。?)服務器管理程序的提交:也通過RADIUS客戶端處理程序來向RADIUS服務器提交??蛻舳颂幚沓绦驅⒐芾沓绦虻恼埱蟀b成標準的RADIUS包格式,并通過為服務器管理程序定義一個端口號提交給RADIUS服務器。

          3.3 RADIUS服務器設計

          RADIUS服務器處理來自NAS的各項數據和實現對數據庫的操作,并返回相應的結果。RADIUS客戶端和服務器端的通信采用Socket編程來實現。

          (1)對數據庫的操作:RADIUS服務器通過數據庫接口與數據庫建立起連接。在RADIUS服務器中用SQL語句實現所需的數據庫操作模塊(如:用戶、計費、管理員等信息的查詢、添加、修改等操作),當RADIUS服務器需要對數據庫操作時,就調用相應的模塊。

          (2)認證包處理:通過*認證端口(1812),來監測NAS提交的認證數據包,收到認證包后,查詢數據庫驗證用戶,并把結果以RADIUS數據包格式從1812端口返回。對于多個用戶申請并發的情況,使用多線程方式處理。

         ?。?)計費包的處理:當用戶的認證通過時,查詢該用戶計費信息。確定其計費類型、費率等。當*到NAS在計費端口(1813)提交計費包后,就向數據庫中添加“計費請求開始”包中所提交的計費信息(包括用戶名、上網起始時間等)。在收到用戶下網的“計費請求結束”后,根據包中提交的用戶結束時間、數據流量等信息,計算用戶的上網時長和數據流量,并根據用戶計費類型來計算出用戶本次上網費用,記錄入數據庫。

          (4)服務器管理程序請求的處理:*管理程序請求的端口(自定義),收到后解包并執行相應的處理函數。

          3.4 數據庫的設計

          用于保存所有的用戶信息、計費信息等。數據庫中包含的表項至少應包括以下幾類:

          (1) 用戶信息:包括用戶名、口令、認證方式、訪問權限、付費方式等。

         ?。?) 授權信息:服務器返回給用戶的授權等配置信息,如服務類型,會話時間等。

          (3) 計費信息:存放與計費有關的各種統計信息。如:上網時間、計費費率、用戶

          的歷次上網的數據流量和費用、用戶帳戶余額等。

         ?。?) 管理員信息:網絡管理員的ID號和口令、管理員的權限。

         ?。?) NAS信息:RADIUS服務器所屬的各NAS紀錄。包括各NAS的ID號、與

          RADIUS服務器的共享密碼等。

         ?。?) 日志信息:保存用戶上網的歷史記錄、網絡管理員的登錄及操作紀錄。

          3.5認證端各部分的實現:

          操作系統:RADIUS服務器和NAS均采用Linux(Red Hat 9.0,內核Linux-2.4.20-8)作為操作系統。

          (1) NAS:

          用Apache和Tomcat構建一個支持JSP的Web服務器,這樣申請者可以通過Web頁面來提交登錄信息。服務器管理程序主要是處理系統管理員的信息,用QT3.0完成用戶界面。RADIUS客戶端程序(C語言實現)將用戶或系統管理員提交的消息封裝成RADIUS包,并通過相應的端口轉發給RADIUS服務器。

          (2) 數據庫:

          采用MySQL數據庫來實現,MySQL是一個多用戶、多線程SQL數據庫服務器。它由一個服務器守護程序mysqld和很多不同的客戶程序和庫組成。Red Hat 9.0中自帶有MySQL服務,將服務啟動即可。我們可以將RADIUS服務器與SQL數據庫相連,建立用戶數據庫和計費數據庫,對用戶信息和計費信息進行有效的管理。

          (3) RADIUS服務器 :

          采用freeradius-0.9.0來搭建RADIUS服務器,實現RADIUS,并使用RADIUS服務器的EAP-Identity認證方式(即:RADIUS服務器對申請者的用戶名和口令進行認證)。另外,實現時,在freeradius的源碼中添加了數據庫處理模塊以及服務器管理程序處理模塊。

          freeradius支持訪問SQL數據庫,首先需要建立RADIUS數據庫(以MySQL為例:mysql -uroot -prootpass radius db_mysql.sql),建立后的數據庫會包含如下一些表項:radcheck:用于指明用戶的認證方式;radgroupcheck:將用戶分組進行管理,指明各組的屬性,如限定有些用戶組默認的認證結果就是Accept或Reject;radgroupreply:對各用戶組設定回應的屬性;usergroup:指明用戶與組的關系;radacct:存放與計費有關的各種統計信息。我們還可以添加一些我們所需的其他表項。

          4 結束語

          RADIUS最初作為撥號網絡中協議,由于它易于管理、可擴展性好等特點,而逐漸被廣泛使用,成為多種網絡的認證、授權和計費的協議。但RADIUS協議仍然存在諸如:基于Response Authenticatior對共享密鑰的攻擊、基于User-Password屬性對用戶密碼的攻擊等安全缺陷。這些都有待于作進一步的研究和完善。


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 荥经县| 焦作市| 喀什市| 静海县| 武陟县| 蒙山县| 雷波县| 德格县| 白玉县| 资中县| 临高县| 政和县| 闻喜县| 安宁市| 公安县| 诸城市| 巴彦淖尔市| 阿荣旗| 屏山县| 托里县| 阜宁县| 海南省| 渭源县| 马边| 金华市| 阳山县| 卓尼县| 曲周县| 苏尼特右旗| 洪江市| 莱芜市| 祁东县| 寻乌县| 平原县| 安溪县| 富川| 丁青县| 江永县| 静安区| 滦南县| 玉门市|