河北唐山市教育局電化教育館 崔冬 耿宗玉
隨著信息化建設(shè)不斷推進(jìn)以及信息技術(shù)的廣泛應(yīng)用,信息網(wǎng)絡(luò)的快速普及,政府機(jī)關(guān)、企事業(yè)單位都在不斷增加基于互聯(lián)網(wǎng)的業(yè)務(wù)系統(tǒng),如各類(lèi)網(wǎng)上申報(bào)系統(tǒng)、網(wǎng)上評(píng)審系統(tǒng)、網(wǎng)絡(luò)查詢(xún)系統(tǒng)、協(xié)同辦公系統(tǒng)等。這些業(yè)務(wù)系統(tǒng)一般都有用戶(hù)管理和身份認(rèn)證要求,根據(jù)登錄系統(tǒng)的用戶(hù)身份給予相應(yīng)的訪(fǎng)問(wèn)授權(quán)。
為了工作的便捷與安全,搭建一個(gè)統(tǒng)一的身份認(rèn)證平臺(tái)是必要的。
為了讓大家更完整、清晰地了解統(tǒng)一身份認(rèn)證平臺(tái)構(gòu)建過(guò)程,筆者用VMware Workstation 15 Pro 搭建了如圖1 所示測(cè)試環(huán)境。
圖1 測(cè)試環(huán)境拓?fù)浣Y(jié)構(gòu)
在這個(gè)測(cè)試環(huán)境中需要數(shù)據(jù)庫(kù)服務(wù)器、證書(shū)服務(wù)器、Radius 服務(wù)器、PPPoE 服務(wù)器各一臺(tái),PPPoE 撥號(hào)終端兩臺(tái)。其中數(shù)據(jù)庫(kù)服務(wù)器采用的是SQL Server 2008,Radius 服務(wù)器采用的是kaplansoft TekRADIUS,證書(shū)服務(wù)器采用的是kaplansoft TekCERT,三臺(tái)服務(wù)器均在同一臺(tái)虛擬機(jī)上,虛擬機(jī)操作系統(tǒng)采用的是Windows Server 2008;PPPoE 服務(wù)器是采用RouteOS 軟路由操作系統(tǒng)搭建的服務(wù)器,單獨(dú)占一臺(tái)虛擬機(jī);另需兩臺(tái)用作PPPoE 客戶(hù)端的虛擬機(jī),其作用是檢驗(yàn)Radius 認(rèn)證效果,兩臺(tái)虛擬機(jī)均采用Windows XP 操作系統(tǒng)。
TekRADIUS 是一個(gè)基于Windows 平臺(tái)的Radius服務(wù)器,支持RFC 2865 和RFC 2866,支持和其他設(shè)備或軟件平臺(tái)進(jìn)行共享的認(rèn)證,如本例中的撥號(hào)服務(wù)器,Microsoft 的ISA Server,思科、華為、3Com、H3C、HP 等網(wǎng)絡(luò)設(shè)備的認(rèn)證,支持Windows域用戶(hù)身份驗(yàn)證,支持PAP、CHAP、MS-CHAP 1、MS-CHAP 2、EAP-MD5、EAP-MS-CHAP 2和摘要式等身份驗(yàn)證方式。
說(shuō) 明:TekRADIUS 僅支持微軟的SQL Server 服務(wù)器,如果沒(méi)有SQL Server 服務(wù)器,需要先安裝部署SQL Server。如果不想使用SQL Server 數(shù)據(jù)庫(kù),可從官網(wǎng)下載TekRADIUS LT,這是一款配有輕型數(shù)據(jù)庫(kù)SQLite 數(shù)據(jù)庫(kù)的版本。
TekRADIUS 是一款完全免費(fèi)的Radius 服務(wù)器軟件,可從kaplansoft 官網(wǎng)直接下載,目前最新版本是“5.4.4.33”,下載地址“https://www.kaplansoft.com/tekRadius/release/TekRADIUS.zip”。
下載完成后先解壓此壓縮包。
TekRADIUS 5.4 需Microsoft .NET Framework 4.6 運(yùn)行時(shí)環(huán)境,如果當(dāng)前操作操作系統(tǒng)沒(méi)有安裝.NET Framework 4.6,雙擊TekRAD IUS 安裝文件后會(huì)自動(dòng)下載安裝.NET Framework 4.6。
如果現(xiàn)有系統(tǒng)已安裝.NET Framework 4.6,會(huì)直接打開(kāi)TekRADIUS 安裝向?qū)Т翱凇?/p>
完成.NET Framework 4.6 后自動(dòng)打開(kāi)TekRADIUS安裝向?qū)Т翱?。TekRADIUS的安裝過(guò)程較為簡(jiǎn)單,出現(xiàn)TekRADIUS 安裝向?qū)Т翱诤螅凑障驅(qū)О惭b即可。
(1)安裝好TekRADIUS后,運(yùn)行桌面上的TekRADIUS Manager。
注意:此時(shí)如果出現(xiàn)“從服務(wù)器返回一個(gè)參照”的錯(cuò)誤,說(shuō)明當(dāng)前用戶(hù)運(yùn)行TekRADIUS Manager 的權(quán)限有限,此時(shí)以管理員身份運(yùn)行TekRADIUS Manager 即可。如果是Windows Server 2008 或Windows 7 操作系統(tǒng),右擊桌面上的TekRADIUS Manager,在右鍵菜單中選擇“屬性”。出現(xiàn)屬性窗口后,單擊“兼容性”選項(xiàng)卡,在“兼容性”選項(xiàng)卡下勾選“以管理員身份運(yùn)行此程序”,此時(shí)在再運(yùn)行TekRADIUS Manager,就不會(huì)出現(xiàn)上述錯(cuò)誤了。
(2)打開(kāi)“TekRADIUS Manager 5.4”窗口后,單擊“Settings”(設(shè)置)選項(xiàng)卡,在“Settings”選項(xiàng)卡下單擊“DB Connection”(數(shù)據(jù)庫(kù)連接)選項(xiàng)卡。
(3)出現(xiàn)“SQL Server Connection”頁(yè)面后,在“SQL Server”文本框中輸入SQL Server 服務(wù)器的地址,分別在“Username”和“Password”文本框中輸入登錄SQL Server 的用戶(hù)名和密碼,設(shè)置好數(shù)據(jù)庫(kù)連接后單擊“Test Connection”測(cè)試連接,此時(shí)在窗口底部出現(xiàn)“Connect successful but database does not exists”字樣,表示連接成功,如圖2 所示。
圖2 設(shè)置窗口
(4)單擊“Database”選項(xiàng)卡,進(jìn)入“Database”選項(xiàng)卡頁(yè)面后單擊“Create Database”按鈕創(chuàng)建數(shù)據(jù)庫(kù)。
如果數(shù)據(jù)庫(kù)創(chuàng)建成功,此時(shí)在“Create Database”欄目中可以觀察到Database Size(數(shù)據(jù)庫(kù)大?。┖汀癓og Size”(日志大?。┎辉亠@示為沒(méi)有初始化,而是實(shí)際空間占有情況。
(5)單擊“Create Tables”按鈕創(chuàng)建表。
說(shuō)明:上面創(chuàng)建的表主要包括“Users Table”(用戶(hù)表)、“Accounting Table”(記賬表)、“Groups Table”(用戶(hù)組表)和“Sessions Table”(會(huì)話(huà)表)等四個(gè)表。除這四個(gè)表外,TekRADIUS 會(huì)在使用過(guò)程中創(chuàng)建其他各種表,如配置共享加密信息的Radius 客戶(hù)端(應(yīng)用程序)使用的“Clients”(客戶(hù)端)表。如果對(duì)SQL Server熟悉,可以直接查看這些表的內(nèi)容。
(6)單擊“Service Para meters”選項(xiàng)卡,在該選項(xiàng)卡下可以修改服務(wù)參數(shù),例如,默認(rèn)的認(rèn)證端口是1812,記賬端口是1813,默認(rèn)的身份驗(yàn)證協(xié)議是“PEAP-EAP-MSCHAP-v2”,也就是微軟的質(zhì)詢(xún)握手身份驗(yàn)證協(xié)議 2。
在服務(wù)器配置參數(shù)中有一項(xiàng)很重要的參數(shù)“TLS Port|Server Certificate”,是Radius 服務(wù)器證書(shū)。
如果沒(méi)有為服務(wù)器配置證書(shū),此時(shí)顯示的是“No certificate found”(未找到證書(shū))。如果沒(méi)有數(shù)字證書(shū),用戶(hù)訪(fǎng)問(wèn)某些經(jīng)Radius認(rèn)證的應(yīng)用程序時(shí),可能會(huì)報(bào)“證書(shū)不可用”之類(lèi)的錯(cuò)誤。
X.509 標(biāo)準(zhǔn)是ITU-T 設(shè)計(jì)的PKI 標(biāo)準(zhǔn),在X.509 標(biāo)準(zhǔn)中,使用大量的篇幅來(lái)定義證書(shū)和CRL 的數(shù)據(jù)格式。
目前X.509 證書(shū)已廣泛應(yīng)用在包括TLS/SSL 在內(nèi)的互聯(lián)網(wǎng)協(xié)議里,也用在諸如電子簽名服務(wù)等非在線(xiàn)應(yīng)用場(chǎng)景里。X.509 證書(shū)里含有公鑰、身份信息和簽名信息(可以是證書(shū)簽發(fā)機(jī)構(gòu)CA 的簽名,也可以是自簽名)。
對(duì)于一份經(jīng)由可信的證書(shū)簽發(fā)機(jī)構(gòu)簽名或者可以通過(guò)其它方式驗(yàn)證的證書(shū),證書(shū)的擁有者就可以用證書(shū)及相應(yīng)的私鑰來(lái)創(chuàng)建安全的通信。
TekCERT 是一款基于Windows 桌面的X.509 證書(shū)生成工具,和TekRADIUS 一樣,也是kaplansoft 提供的免費(fèi)工具,官網(wǎng)下載地址:“https://www.kaplansoft.com/tekcert/release/TekCERT.zip”。
TekCERT 的安裝過(guò)程很簡(jiǎn)單,先解壓下載的壓縮包,雙擊解壓后的安裝程序,按向?qū)崾疽徊讲桨惭b即可。
安裝好TekCERT 以后,運(yùn)行TekCERT,打開(kāi)TekCERT窗口后,默認(rèn)頁(yè)面就是“Certificate Generation”(生成證書(shū))選項(xiàng)卡頁(yè)面。在頁(yè)面左上部"issued to"(頒發(fā)給)欄目中輸入證書(shū)擁有者的名稱(chēng)、組織單位、組織和國(guó)家或者證書(shū)持有人的姓名、服務(wù)處所等信息。
在右側(cè)“Certificate Store”下拉列表中選擇證書(shū)的存儲(chǔ)位置,有“本地機(jī)器”和“當(dāng)前用戶(hù)”兩個(gè)選項(xiàng),在本例中,選擇的是“Local Machine”(本地計(jì)算機(jī)),勾選“Self Signed”(自簽名證書(shū))復(fù)選框,如果創(chuàng)建的是CA 證書(shū),可以勾選“CA”復(fù)選框。
配置好X.509 數(shù)字證書(shū)后,單擊“Generate Certificate”即可生成證書(shū)。
如果證書(shū)成功生成,在頁(yè)面右下部證書(shū)列表框中會(huì)顯示生成的證書(shū),選中新生成的證書(shū),單擊綠色的“+”按鈕,即可信任所選擇的證書(shū)。
如果單位已有CA 證書(shū),單擊(導(dǎo)入)按鈕可將單位的證書(shū)導(dǎo)入到證書(shū)列表中。單擊(導(dǎo)出)可導(dǎo)出選中的證書(shū)。
給Radius 服務(wù)器配置好X.509 數(shù)字證書(shū)后,進(jìn)入TekRADIUS Manager 的“Service Parameters”頁(yè)面,此時(shí)“TLS Port|Server Certificate”參數(shù)的證書(shū)就變成了前面生成的證書(shū)。
TekRADIUS 支持用戶(hù)分組權(quán)限管理。例如,對(duì)于學(xué)校的在線(xiàn)教學(xué)平臺(tái)而言,可以將用戶(hù)分為學(xué)生、教師、家長(zhǎng)、企業(yè)員工和一般的社會(huì)學(xué)習(xí)者等幾類(lèi)用戶(hù),也可以按組織架構(gòu)進(jìn)行分類(lèi)。
在本例中,創(chuàng)建了一個(gè)名為“testgroup”的用戶(hù)組和一個(gè)該用戶(hù)組下為“test”的用戶(hù),創(chuàng)建過(guò)程如下:
(1)打開(kāi)“TekRADIUS Manager”窗口后,單擊“Groups”選項(xiàng)卡,在窗口左下側(cè)文本框中輸入新建組的名稱(chēng),本例為“testgroup”,設(shè)置好用戶(hù)組名稱(chēng)后,單擊右側(cè)綠色的“+”按鈕,將新建的用戶(hù)組添加到用戶(hù)組列表中。
(2)添加好用戶(hù)組后,單擊“Users”選項(xiàng)卡,在窗口左下側(cè)文本框中輸入新用戶(hù)的名稱(chēng),本例為“test”,設(shè)置好用戶(hù)名后,在用戶(hù)組下拉列表中選擇剛建的用戶(hù)組“testgroup”,單擊右側(cè)綠色的“+”按鈕,將新建的用戶(hù)添加到用戶(hù)列表中。
(3)接下來(lái)設(shè)置用戶(hù)屬性,TekRADIUS 用戶(hù)具有開(kāi)放的屬性設(shè)置,可以根據(jù)需要添加或刪除用戶(hù)屬性,如限速、限時(shí)、限流量、限終端數(shù)量、MAC 地址綁定等,都可以設(shè)置用戶(hù)屬性達(dá)到上述目標(biāo)。
在TekRADIUS 用戶(hù)屬性列表中,有三個(gè)字段,分別是“Attribute”“Type”和“Value”?!癆ttribute”是Radius 屬性名;“Type”是Radius 屬性的類(lèi)型,TekRAD IUS 支持“check”“Success-Reply”“Failure-Replay”“Informational”等類(lèi)型;“Vlaue”是屬性值。
有關(guān)用戶(hù)屬性的設(shè)置,后面還要做相應(yīng)的嘗試,這里通過(guò)設(shè)置用戶(hù)密碼這個(gè)用戶(hù)必須具有的屬性來(lái)說(shuō)明用戶(hù)屬性設(shè)置辦法。
圖3 用戶(hù)設(shè)置窗口
(4)在窗口左側(cè)用戶(hù)選中需要設(shè)置密碼的用戶(hù),在窗口最右下側(cè)屬性類(lèi)型下拉菜單中選擇“Check”,在屬性名稱(chēng)下拉列表中選擇“User-Password”,在其旁邊的密碼文本框中為新用戶(hù)指定密碼,設(shè)置好用戶(hù)密碼后,單擊綠色的“+”按鈕即可將“User-Password”(用戶(hù)密碼)添加到Radius 屬性列表中如圖3 所示。
前面已經(jīng)介紹過(guò),Radius客戶(hù)端和Radius 服務(wù)器之間的事務(wù)是通過(guò)使用共享密鑰進(jìn)行身份驗(yàn)證的。Radius客戶(hù)端和Radius 服務(wù)器之間怎么建立的聯(lián)系?如何共享的密鑰?
下面將PPPoE 服務(wù)器配置為Radius 客戶(hù)端,以此說(shuō)明Radius 客戶(hù)端和Radius服務(wù)器之間是如何共享密鑰的。
打開(kāi)“TekRADIUS Manag er”窗口后,單擊“Clients”選項(xiàng)卡。在窗口下端“NAS”文本框輸入Radius 客戶(hù)端的IP 地址。在本例中,Radius客戶(hù)端是PPPoE 服務(wù)器,IP地址是“192.168.0.1”。
在“Secret”文本框中設(shè)置共享密鑰,在“Vendor”下拉列表中選擇Radius 客戶(hù)端的供應(yīng)商名稱(chēng),按實(shí)際填寫(xiě)即可。
圖4 配置客戶(hù)端信息
如果不清楚Radius 客戶(hù)端是哪家供應(yīng)商,使用默認(rèn)的“ietf”即可。配置好Radius 客戶(hù)端信息后,單擊窗口右下角綠色“+”按鈕,將Radius 客戶(hù)端添加到“Clients”列表中,如圖4 所示。
注意:此處設(shè)置的共享密鑰是Radius 客戶(hù)端和Radius服務(wù)器之間的事務(wù)往來(lái)所要使用的密鑰,共享密鑰在密碼加密以及數(shù)據(jù)包的鑒別碼部分都參與了運(yùn)算,即使Radius 數(shù)據(jù)包被截獲,但不知道共享密鑰,很難通過(guò)破解用戶(hù)的密碼來(lái)偽造數(shù)據(jù)。共享密鑰應(yīng)采用合適的長(zhǎng)度,只要適當(dāng)增加密碼的復(fù)雜度,采用暴力破解(窮舉密碼的破解方式)所花費(fèi)的時(shí)間將大大增加。
說(shuō)明:ietf 是國(guó)際互聯(lián)網(wǎng)工程任務(wù)組的簡(jiǎn)稱(chēng),其主要任務(wù)是負(fù)責(zé)互聯(lián)網(wǎng)相關(guān)技術(shù)標(biāo)準(zhǔn)的研發(fā)和制定,是國(guó)際互聯(lián)網(wǎng)業(yè)界具有一定權(quán)威的網(wǎng)絡(luò)相關(guān)技術(shù)研究團(tuán)體。
在初次配置Radius 服務(wù)器時(shí),可能會(huì)遇到各種錯(cuò)誤,Radius 服務(wù)沒(méi)有正常啟動(dòng)、配置Radius 后沒(méi)有重新啟動(dòng)Radius 服務(wù)等都是主要的錯(cuò)誤來(lái)源。
因此,遇到錯(cuò)誤或重新配置Radius 后,可以先停止Radius 服務(wù),再啟動(dòng)Radius服務(wù)。
打開(kāi)“TekRADIUS Manage r”窗口后,單擊“Service”菜單下的“Stop”子菜單項(xiàng)可停止Radius 服務(wù),單擊“Start”子菜單項(xiàng)可啟動(dòng)Radius 服務(wù)。