河北唐山市教育局電化教育館 崔冬 耿宗玉
隨著信息化建設不斷推進以及信息技術的廣泛應用,信息網(wǎng)絡的快速普及,政府機關、企事業(yè)單位都在不斷增加基于互聯(lián)網(wǎng)的業(yè)務系統(tǒng),如各類網(wǎng)上申報系統(tǒng)、網(wǎng)上評審系統(tǒng)、網(wǎng)絡查詢系統(tǒng)、協(xié)同辦公系統(tǒng)等。這些業(yè)務系統(tǒng)一般都有用戶管理和身份認證要求,根據(jù)登錄系統(tǒng)的用戶身份給予相應的訪問授權。
為了工作的便捷與安全,搭建一個統(tǒng)一的身份認證平臺是必要的。
為了讓大家更完整、清晰地了解統(tǒng)一身份認證平臺構建過程,筆者用VMware Workstation 15 Pro 搭建了如圖1 所示測試環(huán)境。

圖1 測試環(huán)境拓撲結構
在這個測試環(huán)境中需要數(shù)據(jù)庫服務器、證書服務器、Radius 服務器、PPPoE 服務器各一臺,PPPoE 撥號終端兩臺。其中數(shù)據(jù)庫服務器采用的是SQL Server 2008,Radius 服務器采用的是kaplansoft TekRADIUS,證書服務器采用的是kaplansoft TekCERT,三臺服務器均在同一臺虛擬機上,虛擬機操作系統(tǒng)采用的是Windows Server 2008;PPPoE 服務器是采用RouteOS 軟路由操作系統(tǒng)搭建的服務器,單獨占一臺虛擬機;另需兩臺用作PPPoE 客戶端的虛擬機,其作用是檢驗Radius 認證效果,兩臺虛擬機均采用Windows XP 操作系統(tǒng)。
TekRADIUS 是一個基于Windows 平臺的Radius服務器,支持RFC 2865 和RFC 2866,支持和其他設備或軟件平臺進行共享的認證,如本例中的撥號服務器,Microsoft 的ISA Server,思科、華為、3Com、H3C、HP 等網(wǎng)絡設備的認證,支持Windows域用戶身份驗證,支持PAP、CHAP、MS-CHAP 1、MS-CHAP 2、EAP-MD5、EAP-MS-CHAP 2和摘要式等身份驗證方式。
說 明:TekRADIUS 僅支持微軟的SQL Server 服務器,如果沒有SQL Server 服務器,需要先安裝部署SQL Server。如果不想使用SQL Server 數(shù)據(jù)庫,可從官網(wǎng)下載TekRADIUS LT,這是一款配有輕型數(shù)據(jù)庫SQLite 數(shù)據(jù)庫的版本。
TekRADIUS 是一款完全免費的Radius 服務器軟件,可從kaplansoft 官網(wǎng)直接下載,目前最新版本是“5.4.4.33”,下載地址“https://www.kaplansoft.com/tekRadius/release/TekRADIUS.zip”。
下載完成后先解壓此壓縮包。
TekRADIUS 5.4 需Microsoft .NET Framework 4.6 運行時環(huán)境,如果當前操作操作系統(tǒng)沒有安裝.NET Framework 4.6,雙擊TekRAD IUS 安裝文件后會自動下載安裝.NET Framework 4.6。
如果現(xiàn)有系統(tǒng)已安裝.NET Framework 4.6,會直接打開TekRADIUS 安裝向導窗口。
完成.NET Framework 4.6 后自動打開TekRADIUS安裝向導窗口。TekRADIUS的安裝過程較為簡單,出現(xiàn)TekRADIUS 安裝向導窗口后,按照向導安裝即可。
(1)安裝好TekRADIUS后,運行桌面上的TekRADIUS Manager。
注意:此時如果出現(xiàn)“從服務器返回一個參照”的錯誤,說明當前用戶運行TekRADIUS Manager 的權限有限,此時以管理員身份運行TekRADIUS Manager 即可。如果是Windows Server 2008 或Windows 7 操作系統(tǒng),右擊桌面上的TekRADIUS Manager,在右鍵菜單中選擇“屬性”。出現(xiàn)屬性窗口后,單擊“兼容性”選項卡,在“兼容性”選項卡下勾選“以管理員身份運行此程序”,此時在再運行TekRADIUS Manager,就不會出現(xiàn)上述錯誤了。
(2)打開“TekRADIUS Manager 5.4”窗口后,單擊“Settings”(設置)選項卡,在“Settings”選項卡下單擊“DB Connection”(數(shù)據(jù)庫連接)選項卡。
(3)出現(xiàn)“SQL Server Connection”頁面后,在“SQL Server”文本框中輸入SQL Server 服務器的地址,分別在“Username”和“Password”文本框中輸入登錄SQL Server 的用戶名和密碼,設置好數(shù)據(jù)庫連接后單擊“Test Connection”測試連接,此時在窗口底部出現(xiàn)“Connect successful but database does not exists”字樣,表示連接成功,如圖2 所示。

圖2 設置窗口
(4)單擊“Database”選項卡,進入“Database”選項卡頁面后單擊“Create Database”按鈕創(chuàng)建數(shù)據(jù)庫。
如果數(shù)據(jù)庫創(chuàng)建成功,此時在“Create Database”欄目中可以觀察到Database Size(數(shù)據(jù)庫大小)和“Log Size”(日志大小)不再顯示為沒有初始化,而是實際空間占有情況。
(5)單擊“Create Tables”按鈕創(chuàng)建表。
說明:上面創(chuàng)建的表主要包括“Users Table”(用戶表)、“Accounting Table”(記賬表)、“Groups Table”(用戶組表)和“Sessions Table”(會話表)等四個表。除這四個表外,TekRADIUS 會在使用過程中創(chuàng)建其他各種表,如配置共享加密信息的Radius 客戶端(應用程序)使用的“Clients”(客戶端)表。如果對SQL Server熟悉,可以直接查看這些表的內容。
(6)單擊“Service Para meters”選項卡,在該選項卡下可以修改服務參數(shù),例如,默認的認證端口是1812,記賬端口是1813,默認的身份驗證協(xié)議是“PEAP-EAP-MSCHAP-v2”,也就是微軟的質詢握手身份驗證協(xié)議 2。
在服務器配置參數(shù)中有一項很重要的參數(shù)“TLS Port|Server Certificate”,是Radius 服務器證書。
如果沒有為服務器配置證書,此時顯示的是“No certificate found”(未找到證書)。如果沒有數(shù)字證書,用戶訪問某些經(jīng)Radius認證的應用程序時,可能會報“證書不可用”之類的錯誤。
X.509 標準是ITU-T 設計的PKI 標準,在X.509 標準中,使用大量的篇幅來定義證書和CRL 的數(shù)據(jù)格式。
目前X.509 證書已廣泛應用在包括TLS/SSL 在內的互聯(lián)網(wǎng)協(xié)議里,也用在諸如電子簽名服務等非在線應用場景里。X.509 證書里含有公鑰、身份信息和簽名信息(可以是證書簽發(fā)機構CA 的簽名,也可以是自簽名)。
對于一份經(jīng)由可信的證書簽發(fā)機構簽名或者可以通過其它方式驗證的證書,證書的擁有者就可以用證書及相應的私鑰來創(chuàng)建安全的通信。
TekCERT 是一款基于Windows 桌面的X.509 證書生成工具,和TekRADIUS 一樣,也是kaplansoft 提供的免費工具,官網(wǎng)下載地址:“https://www.kaplansoft.com/tekcert/release/TekCERT.zip”。
TekCERT 的安裝過程很簡單,先解壓下載的壓縮包,雙擊解壓后的安裝程序,按向導提示一步步安裝即可。
安裝好TekCERT 以后,運行TekCERT,打開TekCERT窗口后,默認頁面就是“Certificate Generation”(生成證書)選項卡頁面。在頁面左上部"issued to"(頒發(fā)給)欄目中輸入證書擁有者的名稱、組織單位、組織和國家或者證書持有人的姓名、服務處所等信息。
在右側“Certificate Store”下拉列表中選擇證書的存儲位置,有“本地機器”和“當前用戶”兩個選項,在本例中,選擇的是“Local Machine”(本地計算機),勾選“Self Signed”(自簽名證書)復選框,如果創(chuàng)建的是CA 證書,可以勾選“CA”復選框。
配置好X.509 數(shù)字證書后,單擊“Generate Certificate”即可生成證書。
如果證書成功生成,在頁面右下部證書列表框中會顯示生成的證書,選中新生成的證書,單擊綠色的“+”按鈕,即可信任所選擇的證書。
如果單位已有CA 證書,單擊(導入)按鈕可將單位的證書導入到證書列表中。單擊(導出)可導出選中的證書。
給Radius 服務器配置好X.509 數(shù)字證書后,進入TekRADIUS Manager 的“Service Parameters”頁面,此時“TLS Port|Server Certificate”參數(shù)的證書就變成了前面生成的證書。
TekRADIUS 支持用戶分組權限管理。例如,對于學校的在線教學平臺而言,可以將用戶分為學生、教師、家長、企業(yè)員工和一般的社會學習者等幾類用戶,也可以按組織架構進行分類。
在本例中,創(chuàng)建了一個名為“testgroup”的用戶組和一個該用戶組下為“test”的用戶,創(chuàng)建過程如下:
(1)打開“TekRADIUS Manager”窗口后,單擊“Groups”選項卡,在窗口左下側文本框中輸入新建組的名稱,本例為“testgroup”,設置好用戶組名稱后,單擊右側綠色的“+”按鈕,將新建的用戶組添加到用戶組列表中。
(2)添加好用戶組后,單擊“Users”選項卡,在窗口左下側文本框中輸入新用戶的名稱,本例為“test”,設置好用戶名后,在用戶組下拉列表中選擇剛建的用戶組“testgroup”,單擊右側綠色的“+”按鈕,將新建的用戶添加到用戶列表中。
(3)接下來設置用戶屬性,TekRADIUS 用戶具有開放的屬性設置,可以根據(jù)需要添加或刪除用戶屬性,如限速、限時、限流量、限終端數(shù)量、MAC 地址綁定等,都可以設置用戶屬性達到上述目標。
在TekRADIUS 用戶屬性列表中,有三個字段,分別是“Attribute”“Type”和“Value”。“Attribute”是Radius 屬性名;“Type”是Radius 屬性的類型,TekRAD IUS 支持“check”“Success-Reply”“Failure-Replay”“Informational”等類型;“Vlaue”是屬性值。
有關用戶屬性的設置,后面還要做相應的嘗試,這里通過設置用戶密碼這個用戶必須具有的屬性來說明用戶屬性設置辦法。

圖3 用戶設置窗口
(4)在窗口左側用戶選中需要設置密碼的用戶,在窗口最右下側屬性類型下拉菜單中選擇“Check”,在屬性名稱下拉列表中選擇“User-Password”,在其旁邊的密碼文本框中為新用戶指定密碼,設置好用戶密碼后,單擊綠色的“+”按鈕即可將“User-Password”(用戶密碼)添加到Radius 屬性列表中如圖3 所示。
前面已經(jīng)介紹過,Radius客戶端和Radius 服務器之間的事務是通過使用共享密鑰進行身份驗證的。Radius客戶端和Radius 服務器之間怎么建立的聯(lián)系?如何共享的密鑰?
下面將PPPoE 服務器配置為Radius 客戶端,以此說明Radius 客戶端和Radius服務器之間是如何共享密鑰的。
打開“TekRADIUS Manag er”窗口后,單擊“Clients”選項卡。在窗口下端“NAS”文本框輸入Radius 客戶端的IP 地址。在本例中,Radius客戶端是PPPoE 服務器,IP地址是“192.168.0.1”。
在“Secret”文本框中設置共享密鑰,在“Vendor”下拉列表中選擇Radius 客戶端的供應商名稱,按實際填寫即可。

圖4 配置客戶端信息
如果不清楚Radius 客戶端是哪家供應商,使用默認的“ietf”即可。配置好Radius 客戶端信息后,單擊窗口右下角綠色“+”按鈕,將Radius 客戶端添加到“Clients”列表中,如圖4 所示。
注意:此處設置的共享密鑰是Radius 客戶端和Radius服務器之間的事務往來所要使用的密鑰,共享密鑰在密碼加密以及數(shù)據(jù)包的鑒別碼部分都參與了運算,即使Radius 數(shù)據(jù)包被截獲,但不知道共享密鑰,很難通過破解用戶的密碼來偽造數(shù)據(jù)。共享密鑰應采用合適的長度,只要適當增加密碼的復雜度,采用暴力破解(窮舉密碼的破解方式)所花費的時間將大大增加。
說明:ietf 是國際互聯(lián)網(wǎng)工程任務組的簡稱,其主要任務是負責互聯(lián)網(wǎng)相關技術標準的研發(fā)和制定,是國際互聯(lián)網(wǎng)業(yè)界具有一定權威的網(wǎng)絡相關技術研究團體。
在初次配置Radius 服務器時,可能會遇到各種錯誤,Radius 服務沒有正常啟動、配置Radius 后沒有重新啟動Radius 服務等都是主要的錯誤來源。
因此,遇到錯誤或重新配置Radius 后,可以先停止Radius 服務,再啟動Radius服務。
打開“TekRADIUS Manage r”窗口后,單擊“Service”菜單下的“Stop”子菜單項可停止Radius 服務,單擊“Start”子菜單項可啟動Radius 服務。