自主服務校園網認證 讓計費變得人性化 下篇
認證計費系統技術分析:自主服務校園網認證 讓計費變得人性化 上篇
認證計費系統組成—工作原理
系統主要由認證網關、radius服務器和后臺數據庫三部分組成。認證網關和radius服務器之間通過UDP協議進行傳輸,傳輸時用共享密鑰來加密,且共享密鑰不在網上傳輸。默認認證端口是1812,計費端口是1813。
用戶向認證網關提交認證請求;認證網關向radius服務器轉交用戶認證信息;radius服務器將用戶信息與數據庫信息進行比對,如果符合,則認證通過并授權,用戶可以順利訪問網絡資源,并開始計費,否則,認證失敗,用戶被拒絕訪問網絡資源。
可見,radius服務器是整個系統的核心,它與認證網關連接,處理用戶的認證和計費請求。在認證階段,從認證網關提取用戶名和密碼,連接數據庫,進行查詢比較。在計費階段,連接數據庫,更新計費信息記錄、上網日志記錄等。
認證計費系統組成—功能模塊
本系統可分為三個子系統:網管子系統、用戶自助服務子系統和后臺通信子系統。
網管子系統由系統管理維護功能模塊(數據庫備份與恢復、日志管理、系統信息管理、系統升級管理)和用戶管理維護功能模塊(用戶信息管理、賬戶使用明細查詢等)組成。用戶自助服務子系統功能主要包括用戶注冊、賬號充值申請、賬號續費申請、使用明細查詢和用戶信息維護。
通信子系統是解決認證網關和radius服務器的實時信息交互問題,是基于radius協議的UDP數據包傳輸。
認證計費系統的實現—FreeRADIUS安裝
從http://freeradius.org/download.html下載freeradius2.0.0.tar.gz文件,解壓縮后執行./configure、make all、make install,然后編譯并安裝。FreeRADIUS的主配置文件(包括raduisd.conf、sql.conf、client.conf)放在/usr/local/etc/raddb目錄下,radiusd運行文件放置在/usr/local/sbin目錄下。最后,執行radiusdX命令,啟動FreeRADIUS服務。若正常啟動,則會出現:
- Listening on authentication address * port 1812
- Listening on accounting address * port 1813
- Listening on proxy address * port 1814
- Ready to process requests.
認證計費系統的實現—數據庫設計
系統后臺數據庫使用的是MySQL數據庫。我們利用PowerDesiger工具軟件創建xkradius數據庫。通過對系統三大功能模塊的功能細化和詳細設計,將庫表分為四類:用戶信息表類、賬戶信息表類、計費策略表類、radius后臺通信表類。
用戶信息表類中的表字段信息可以從校園網信息平臺的學籍管理系統和教務管理系統直接獲取;
賬戶信息表類可以同校園一卡通系統和財務管理系統共享;
計費策略表類為系統計費功能的擴展提供了有效的后臺數據庫支持,以實現計費策略靈活管理;
radius后臺通信表類的設計主要是為了存放認證網關上定時接收到的賬戶信息(IP、MAC、上線時間、下線時間等)。
xkradius數據庫包括18個表:
用戶基本信息表(user_base_info)、radius響應信息表(radreply)、radius檢測信息表(radcheck)、radius組響應信息表(radgroupreply)、radius組檢測信息表(radgroupcheck)、radius用戶組信息表(radusergroup)、radius授權信息表(radpostauth)、badusers_table(黑名單表)、account_log_table(賬戶日志表)、online_table(在線信息表)、admin_table(管理員信息表)、user_traffic_table(用戶流量表)、prepaid_log_table(充值日志表)、conpaid_log_table(續費日志表)、accountclapol(計費策略分類表)、pakgepol(包月策略表)、timepol(計時策略表)、trafficpol(計流量策略表)。在表中添加相應的字段后,生成xkradius.sql文件,以便導入到MySQL數據庫中。
認證計費系統的實現—配置FreeRADIUS服務
我們主要對以下文件進行操作:在radiusd.conf文件中去掉authorize和accouting函數體內的SQL注釋(#),確保SQL功能可用;在sql.conf文件中修改Server(數據庫服務器IP地址值)、login(root)、password(MySQL的root密碼)、radius_db(數據庫名)的值;在clients.conf文件中插入client{}函數,以添加認證網關服務器的相關信息(IP、secret、shortname)等。
Web服務管理
系統Web服務是建立在目前最流行的Web應用基礎架構LAMP(Linux+Apache+MySQl+PHP)上的。因此,我們只需考慮Web服務的管理問題,webmin應用服務軟件提供了一個友好的可視化Web管理平臺。在webmin中,只要打開Apache Webserver選項,修改virtual server下的address、port、Document root(dialup_admin文件包路徑)的值,配置Web Server服務。然后,打開MySQL Database Server選項,添加數據庫xkradius,導入已生成的xkradius.sql數據庫文件,這相當于在MySQL數據庫中創建了18個表,并且可以進行管理和修改。
子系統的實現
1. 網管子系統和用戶自助服務子系統
這兩個子系統功能主要是通過PHP語言技術對后臺數據庫的操作來實現。
2. 通信子系統
該子系統功能通過C語言技術對基于radius協議的FreeRADIUS服務的實現來完成。
系統運營一年多,成功實現了對教師和學生用戶統一有效的認證計費管理,為用戶提供了相對安全的網絡環境。它不僅解決了校園網絡管理的問題,而且給局域網(公司、校區、網吧、酒店等)認證計費系統的建設提供了一種思路。隨著用戶數量的不斷增加,網絡負荷會逐漸加重,為保證系統的快速性和穩健性,可結合接收數據流和發送數據流的分離、認證流和計費流的分離的技術對系統進行改進。
【編輯推薦】