同Radius相比,Tacacs+就安全可靠的多。例如后者的認(rèn)證、授權(quán)和審計(jì)功能是分離的,而前者是一體的,分別使用的是不同的UDP端口號(hào)。Tacacs+的所有數(shù)據(jù)包均處于加密狀態(tài),而Radius僅僅對(duì)密碼進(jìn)行加密。但Radius具有很好的通用性,諸 如 IPSEC VPN、802.1X 等技術(shù)均使用的是Raduis協(xié)議。這里面存在兩臺(tái)ISE設(shè)備,分別作為主從設(shè)備使用。
在某路由器上執(zhí)行“radius server ISEMaster address ipv4 172.16.1.101 auth-port 1645 acct-port 1646 key passw0rd”命令,定義主ISE設(shè)備作為認(rèn)證授權(quán)設(shè)備,連接密碼為“passw0rd”,IP為172.16.1.101。執(zhí)行“radius server ISE-slave address ipv4 172.16.1.1.102 authport 1645 acct-port 1646 key cisco”命令,定義從屬I(mǎi)SE設(shè)備作為認(rèn)證授權(quán)設(shè)備,其 IP為 172.16.1.102。
執(zhí)行“aaa group server radius ISE1 server name ISEMaster”命令,將主ISE設(shè)備放置到名為“ISEGrp1”的 3A組 中。 執(zhí) 行“aaa new-model”、“aaa group server radius ISEGrp2 server name ISEslave”命令,將從屬I(mǎi)SE放置到名為“ISEGrp1”的3A組中。執(zhí)行“aaa authentication login vty group ISEGrp1”、“aaa authorization exex vty group ISEGrp1”命令,使用名為“vty”的認(rèn)證策略,并調(diào)用了“ISEGrp1”組。執(zhí)行“l(fā)ine vty 0 4”、“Authorization exec vty”、“l(fā)ogin authentication vty”、“l(fā)ine vty 5 15”、“Authorization exec vty”、“l(fā)ogin authentication vty”命令,將該策略調(diào)用到VTY線(xiàn)路。
登錄到主ISE設(shè)備管理界面,點(diǎn)擊“Administration→Idebtity Management→Identities”項(xiàng),在“Network Access Users”窗口中點(diǎn)擊“Add”按鈕,創(chuàng)建名為“gly”的用戶(hù),并設(shè)置密碼,本例中使用該賬戶(hù)登錄。點(diǎn)擊菜單“Policy→Results”項(xiàng),在左側(cè)點(diǎn)擊“Authorization→Authorization Profiles”項(xiàng),在右側(cè)點(diǎn)擊“Add”按鈕,創(chuàng)建名為“priv15”的授權(quán)策略項(xiàng)目,在“Attributes Details”欄中中輸入“Access Type = ACCESS_ACCEPT”、“cisco-av-pair = privlvl=15”行,使用Raduis授權(quán)方式并授予使用者的操作級(jí)別。
在ISE管理界面中點(diǎn)擊 菜 單“Policy→Policy Sets”項(xiàng),顯示已經(jīng)默認(rèn)的認(rèn)證集信息。點(diǎn)擊“+”按鈕,創(chuàng)建新的策略集,修改合適的名稱(chēng),在該策略“Conditions”列中點(diǎn)擊“+”按鈕,創(chuàng)建合適的條件,用來(lái)匹配所有源自于該網(wǎng)關(guān)設(shè)備的請(qǐng)求。在其最右側(cè)點(diǎn)擊“>”按鈕,在詳細(xì)信息窗口中會(huì)發(fā)現(xiàn)分別存在一個(gè)認(rèn)證策略和授權(quán)策略。在“Authentication Policy”欄中修改默認(rèn)的策略,將所有的認(rèn)證者信息發(fā)送到“All_User_ID_Stores”對(duì)象中,使用ISE的本地賬號(hào)數(shù)據(jù)庫(kù)進(jìn)行認(rèn)證。
打 開(kāi)“Authorization Policy”欄,在右側(cè)點(diǎn)擊“設(shè)置”按鈕,在彈出菜單中點(diǎn)擊“Insert new row above”項(xiàng),設(shè)置新的授權(quán)策略名稱(chēng)。點(diǎn)擊“+”按鈕,在編輯窗口中創(chuàng)建合適的條件,這里設(shè)置的條件為“internalUser-Name EQUALS gly”,即登錄者使用了上述內(nèi)建的“gly”賬戶(hù),那么就授予其上述“priv15”的權(quán)限。注意,本例中僅僅在上述路由器上進(jìn)行了認(rèn)證,雖然在ISE上進(jìn)行了授權(quán)操作,但是卻并沒(méi)有生效。
即使用上述賬戶(hù)登錄到該路由器時(shí),并沒(méi)有擁有指定的高權(quán)限。在發(fā)送給ISE的Radius請(qǐng)求數(shù)據(jù)包中,只會(huì)出現(xiàn)賬戶(hù)名和加密的密碼信息,即只是檢測(cè)該賬戶(hù)是否可以通過(guò)認(rèn)證。雖然在路由器上并沒(méi)有進(jìn)行授權(quán)處理的請(qǐng)求,但是Radius的認(rèn)證和授權(quán)是一體的,因此在ISE的回應(yīng)包中卻包含了認(rèn)證和授權(quán)的結(jié)果信息。例如在路由器上執(zhí)行“test aaa group ISEGrp1 gly xxx new-code”命令,使用特定的組和賬戶(hù)名進(jìn)行簡(jiǎn)單認(rèn)證的測(cè)試,“xxx”表示具體的密碼。在返回信息中的“USER ATTRIBUTES”欄中會(huì)顯示對(duì)應(yīng)的授權(quán)信息。
在路由器上執(zhí)行“config t”、“aaa auththorization exec vty group ISEGrp1”命令,創(chuàng)建名為“vty”的授權(quán)策略,并將其發(fā)送到ISE服務(wù)器上。執(zhí)行“l(fā)ine vty 0 15”、“authorization exec vty”、“end”命令,對(duì)該授權(quán)進(jìn)行調(diào)用到VTY線(xiàn)路上。如果使用的是Tacacs+的話(huà),認(rèn)證和授權(quán)必須分別進(jìn)行請(qǐng)求。但是Radius的認(rèn)證和授權(quán)是同時(shí)進(jìn)行的,當(dāng)重新登錄上述路由器后,就會(huì)發(fā)現(xiàn)已經(jīng)得到了授權(quán),使用者擁有了高級(jí)別的操作權(quán)限。
根據(jù)以上分析,可以看出Radius的不足之處,即其授權(quán)和認(rèn)證請(qǐng)求并沒(méi)有分離進(jìn)行,在詢(xún)問(wèn)認(rèn)證信息時(shí),Raduis會(huì)自作主張的將認(rèn)證和授權(quán)結(jié)果全部發(fā)送回來(lái),即使創(chuàng)建空的3A組,也不會(huì)影響授權(quán)操作,這給實(shí)際的安全管理帶來(lái)了不足。實(shí)際上,授權(quán)和認(rèn)證應(yīng)該獨(dú)立運(yùn)行,例如可以使用兩臺(tái)3A服務(wù)器分別對(duì)認(rèn)證和授權(quán)進(jìn)行管理,這可以明顯提高操作的靈活性。例如,在某些場(chǎng)合會(huì)使用到IKEv2 Remote VPN連接技術(shù),客戶(hù)端遠(yuǎn)程連接到內(nèi)網(wǎng)中的路由器上,之后經(jīng)過(guò)ISE設(shè)備的認(rèn)證和授權(quán),就可以訪(fǎng)問(wèn)內(nèi)部網(wǎng)絡(luò)。
在ISE管理界面中選擇“Administration→Network Resources→Network Devices”項(xiàng),點(diǎn)擊“Add”按鈕,在添加設(shè)備窗口中輸入作為認(rèn)證服務(wù)器名稱(chēng),這里的認(rèn)證服務(wù)器為路由器。設(shè)置管理端口IP地址(如 172.16.1.1),選擇“RADIUS Authentication Settings”項(xiàng),激活Radisu認(rèn) 證 功 能。 在“*Shared Secret”欄中輸入共享密鑰(如“passw0rd”)。 為便于設(shè)置賬戶(hù)密碼,可選擇“Administration→Identity Management→Settings”項(xiàng),在左側(cè)選擇“User Authentication Settings”項(xiàng),在 右 側(cè) 的“Password Policy”欄中取消所有的選擇項(xiàng)目,這樣就可以任意設(shè)置密碼了。
在路由器上執(zhí)行“aaa group server radius ISEGrp1 server-private 172.16.10.101 key passw0rd”命令,創(chuàng)建3A組,并指向主ISE設(shè) 備。 執(zhí) 行“aaa authentication login EAPAuthen group ISEGrp1”命令,將認(rèn)證請(qǐng)求發(fā)送到主ISE設(shè)備上。執(zhí)行“aaa authorization network EAPAuthen group ISEGrp2”命令,將授權(quán)請(qǐng)求發(fā)送給從屬I(mǎi)SE設(shè)備。按上述方法,在ISE管理界面中創(chuàng)建名為“user1”的賬戶(hù),密碼為“pass123”。 創(chuàng) 建 名 為“group1”的組,并讓該賬戶(hù)輸入該組。
選擇“Policy→Policy Elements→Results”項(xiàng),在左側(cè)選擇“Authorization Profile”項(xiàng),在右側(cè)添加新的授權(quán)策略,輸入其名稱(chēng)(如“Profile1”),在“Advanced Attributes Settings”欄中按照合適的格式,設(shè)置所需的屬性信息,例如地址池,路由表等內(nèi)容。選擇“Policy→ Authorization”項(xiàng),創(chuàng)建新的授權(quán)規(guī)則,在其“Conditions”列中設(shè)置諸如“group1”之類(lèi)的條件,在“Permissions”列中選擇上述“Profile1”項(xiàng)目文件。
注意,在主要和從屬I(mǎi)SE設(shè)備上執(zhí)行相同的配置操作。在路由器上執(zhí)行“crypto ikev2 profile VPNProfile”、“match identity remote address 0.0.0.0 ”、“authentication local rsa-sig”、“authentication r e m o t e e a p q u e r yidentity”、“pki trustpoint CA”、“aaa authentication eap EAPAuthen”、“aaa authorization user eap cached”、“virtual-template x”等命令,創(chuàng)建所需的IKEv2 Profile配置文件。
之后創(chuàng)建所需的IPSec Profile和Virtual-Temlpate等對(duì)象,其作用是在客戶(hù)端使用Windows自帶的VPN連接工具連接時(shí),輸入“user1”賬戶(hù)名和密碼“pass123”,將其發(fā)送給ISE設(shè)備,ISE就會(huì)根據(jù)該賬戶(hù)名進(jìn)行認(rèn)證。因?yàn)樵撡~戶(hù)屬于“group1”組,所以按照上述授權(quán)策略,可以針對(duì)該賬戶(hù)進(jìn)行授權(quán)操作。因?yàn)橛脩?hù)的授權(quán)優(yōu)先于組的授權(quán)。也可以將其中 的“aaa authorization user eap cached”替換為“aaa authorization group eap list EAPAuthor user1 password xxx”,這樣就可以指定授權(quán)賬戶(hù)“user1”的密碼。
在ISE管理界面中創(chuàng)建名為“VPNGrp”的賬戶(hù),密 碼 為“mima123”。 創(chuàng) 建名 為“VPNUser@VPNGrp”的賬 戶(hù),密 碼 為“pass123”。在ISE中依然使用上述名為“Author1”的授權(quán)策略。創(chuàng)建新的授權(quán)規(guī)則,在“Conditions”列中設(shè)置諸如“Radius:User-Name EQUALS VPNGrp”之 類(lèi) 的 條 件,在“Permissions”列中選擇上述“Profile1”項(xiàng)目文件。
在路由器上執(zhí)行“crypto ikev2 name-mangler Mangler1”、“eap suffix delimiter @”命令,創(chuàng)建名稱(chēng)分隔策略,這里使用了“@”進(jìn)行名稱(chēng)分隔符,用來(lái)分隔賬戶(hù)名和組名。執(zhí)行“crypto ikev2 profile VPNProfile”命令創(chuàng)建和上述相同IKEv2 Profile配置文件。所不同的是將 “aaa authorization user eap cached”修改為“aaa authorization group eap1 list EAPAuthor namemangler Mangler1 password pass123”之類(lèi)的語(yǔ)句。其作用是在客戶(hù)端進(jìn)行VPN連接時(shí),將賬戶(hù)名發(fā)送給ISE設(shè)備進(jìn)行認(rèn)證,同時(shí)將組名作為用戶(hù)名進(jìn)行授權(quán)。
例 如 對(duì) 于“VPNUser@VPNGrp”的賬戶(hù)來(lái)說(shuō),就會(huì)使用該策略進(jìn)行分隔,將“VPNUser”作為用戶(hù)名,將“VPNGrp”作為組名處理。這樣,ISE就會(huì)使用前者進(jìn)行認(rèn)證,后者進(jìn)行授權(quán),因?yàn)榍懊嬉?針 對(duì)“Radius:User-Name EQUALS VPNGrp”之類(lèi)的條件執(zhí)行對(duì)應(yīng)的授權(quán)策略。遠(yuǎn)程客戶(hù)端運(yùn)行VPN連接工具,輸入“VPNUser@VPNGrp”賬戶(hù)名,輸入“VPNUser”賬戶(hù)密碼,這些信息就會(huì)發(fā)送到ISE設(shè)備上,ISE會(huì)針對(duì)“VPNUser”賬戶(hù)進(jìn)行認(rèn)證,針對(duì)“VPNGrp”賬戶(hù)進(jìn)行授權(quán),這樣就實(shí)現(xiàn)了認(rèn)證和授權(quán)獨(dú)立操作。
前面說(shuō)過(guò),傳統(tǒng)的Radius只能對(duì)數(shù)據(jù)包中的密碼進(jìn)行加密。對(duì)于現(xiàn)在新款的思科交換機(jī)路由器等產(chǎn)品(例如CSR1000V等),都可以利用DTLS技術(shù)對(duì)Radius數(shù)據(jù)包進(jìn)行全面加密。以域管理員身份登錄證書(shū)服務(wù)器,在證書(shū)頒發(fā)機(jī)構(gòu)窗口左側(cè)選擇“證書(shū)模版”項(xiàng),在右側(cè)窗口中右擊“新建→要頒發(fā)的證書(shū)模版”項(xiàng),在啟用證書(shū)模版窗口中選擇“路由器(聯(lián)機(jī)請(qǐng)求)”模版,將其放置到上述證書(shū)模版列表。
之后在瀏覽器中訪(fǎng)問(wèn)“http://casrv.xxx.com/certsrv/”之類(lèi)的地址,打開(kāi)證書(shū)申請(qǐng)頁(yè)面,下載所需的根證書(shū)(例如“root.cer”)。使用記事本打開(kāi)該根證書(shū),復(fù)制其全部?jī)?nèi)容。在某路由 器 上 執(zhí) 行“config t”、“crypt pki trustpoint D T L S”、“ e n r o l l m e n t terminal”、“subject-name cn=xx.yyy.com,ou=dpart”、“revovation-check none”、“rsakeypair xxx”、“exit”等命令,其中“xx.yyy.com”表示具體的域名,“dpart”表示具體的部門(mén),“xxx”表示對(duì)應(yīng)的密鑰對(duì)。執(zhí)行“crypt pki authenticate DTLS”命令,之后粘貼上述根證書(shū)的內(nèi)容。在“%Do you accept this certificate?”欄中輸入“y”,導(dǎo)入該證書(shū)。
執(zhí)行“crypt pki enroll DTLS”命令,申請(qǐng)個(gè)人證書(shū)。在“% Include the router serial number in the subject name?”欄中輸入“n”,表示不使用序列號(hào)。在“% Include an IP address in the subject name?”欄中輸入“y”,表示允許放入該機(jī)的IP地址,輸入具體的IP地 址。 在“Display Certificate Request to terminal?”欄中輸入“y”,顯示證書(shū)申請(qǐng)文件內(nèi)容。將其復(fù)制下來(lái),之后連續(xù)輸入“n”,退出該命令。
訪(fǎng)問(wèn)CA證書(shū)服務(wù)器,點(diǎn)擊“申請(qǐng)證書(shū)”鏈接,之后打開(kāi)高級(jí)證書(shū)申請(qǐng)頁(yè)面,在“保存的申請(qǐng)”欄中粘貼復(fù)制的內(nèi)容,在“證書(shū)模版”列表中選擇“路由器(脫機(jī)請(qǐng)求)”項(xiàng),點(diǎn)擊“提交”按鈕,之后選擇“Base 64編碼”項(xiàng),點(diǎn)擊“下載證書(shū)”證書(shū)鏈接,保存所需的證書(shū)文件(例如“gr.cer”)。打開(kāi)該證書(shū)文件復(fù)制其內(nèi)容。
在ISE設(shè)備上配置證書(shū)很簡(jiǎn)單,在瀏覽器中訪(fǎng)問(wèn)CA證書(shū)服務(wù)器,在證書(shū)申請(qǐng)頁(yè)面中下載根證書(shū)(如rootzs.pem)。在主ISE管理界面點(diǎn)擊“System→Certificates”項(xiàng),在 左 側(cè) 點(diǎn) 擊“Trust Certificates”項(xiàng),在 右 側(cè)點(diǎn)擊“Import”按鈕,點(diǎn)擊“瀏覽”按鈕,選擇并加載上述根證書(shū),并設(shè)置合適的名稱(chēng)(如 RootCA)。 在“Trustd For”欄中選擇所有的項(xiàng)目。在左側(cè)點(diǎn)擊“Certificate Signing Requests”項(xiàng),在右側(cè)點(diǎn) 擊“Generate Certificate Signing Requests(CSR)”按鈕,選擇ISE設(shè)備節(jié)點(diǎn)名,輸入個(gè)人信息(必須在“Organitication Unit”欄中填寫(xiě)組織單位名稱(chēng))。
點(diǎn)擊“Generate”按鈕,產(chǎn)生證書(shū)的簽名請(qǐng)求文件,將內(nèi)容復(fù)制出來(lái),在上述證書(shū)申請(qǐng)界面中下載個(gè)人證書(shū)文件(如grzs.crt)。在上述ISE管理界面左側(cè)點(diǎn)擊“Certificate Signing Requests” 項(xiàng),在右側(cè)選擇請(qǐng)求證書(shū)項(xiàng),點(diǎn)擊“Bind Certificate”按鈕,點(diǎn)擊“瀏覽”按鈕,選擇上述個(gè)人證書(shū),輸入名稱(chēng),在“Usage”欄 中 選 擇“Admin”、“EAP Authentication”、“RADIUS DTLS”、“Protal” 項(xiàng),點(diǎn) 擊“Submit”按鈕提交操作。在從屬I(mǎi)SE設(shè)備上執(zhí)行同樣的操作來(lái)配置所需證書(shū),其操作均在主從ISE設(shè)備上進(jìn)行。
在路由器上執(zhí)行“crypto pki import DTLS certificate”命令,在提示符下粘貼上述證書(shū)內(nèi)容。執(zhí)行“end”命令,返回操作界面。執(zhí)行“show crypto pki certificates DTLS”命令,顯示對(duì)應(yīng)的證書(shū)信息。
執(zhí) 行“config t”、“r a d i u s s e r v e r ISEMaster”、“no key”、“dls trustpoint server DTLS”、“dls trustpoint client DTLS”命令,讓路由器和主ISE設(shè)備之間互相使用指定的證書(shū)認(rèn)證。 執(zhí) 行“radius server ISEslave”、“no key”、“dls trustpoint server DTLS”、“dls trustpoint client DTLS”命令,對(duì)從ISE設(shè)備進(jìn)行同樣的配置。
在ISE管理界面工具欄上點(diǎn)擊“Administration→Network Devices” 項(xiàng),點(diǎn)擊“Add”按鈕,將上述路由器設(shè)備添加進(jìn)來(lái)。依次輸入其名稱(chēng)(如“Route1”),設(shè)置IP地 址,選 擇“RADIUS Authentication Settings”項(xiàng),激活Radius認(rèn)證功能。選擇“DTLS Required”項(xiàng),激活DTLS加密功能。在“Issuer CA of ISE Certificates for CoA”列表中選擇根證書(shū),在“DNS Name”l欄中輸入該路由器所配置證書(shū)中的域名信息,例如“xx.yyy.com”。點(diǎn)擊“Save”按鈕保存。
在工具欄上點(diǎn)擊“A d m i n i s t r a t i o n→Settings”項(xiàng),在左側(cè)選擇“Protocols→ RADIUS”項(xiàng),在右側(cè)的“DTLS”標(biāo)簽中選擇“Enable RADIUS Client identity verfication”項(xiàng),這樣ISE設(shè)備不僅要檢測(cè)證書(shū)是否有效,而且要檢測(cè)上述路由器的名稱(chēng)和上述預(yù)設(shè)的域名是否一致。
經(jīng)過(guò)以上設(shè)置,在路由器上執(zhí)行“test aaa group ISEGrp1 VPNUser@VPNGrp mima123 new-code”命 令,使用對(duì)應(yīng)的賬戶(hù)執(zhí)行連接測(cè)試,可以看到測(cè)試沒(méi)有問(wèn)題。執(zhí)行“test aaa group ISEGrp2 VPNGrp pass123 new-code”命令,使用對(duì)應(yīng)的組進(jìn)行連接測(cè)試,可以看到認(rèn)證順利通過(guò)。在客戶(hù)端使用VPN撥號(hào)連接,也可以順利訪(fǎng)問(wèn)。
這樣,不僅實(shí)現(xiàn)了證書(shū)的雙向認(rèn)證,而且對(duì)RADIUS數(shù)據(jù)包進(jìn)行了全面加密。