MACSec也稱為802.1AE加 密 鏈 路(即 802.1AE Encrypted Link), 說(shuō) 到MACSec,就需要談及IPSec安全技術(shù)。
對(duì)于后者來(lái)說(shuō),是在數(shù)據(jù)包的IP頭部后面插入數(shù)據(jù),對(duì)數(shù)據(jù)包中的實(shí)際數(shù)據(jù)進(jìn)行保護(hù),其實(shí)現(xiàn)的是三層安全。IPSec可以在兩個(gè)IP之間建立安全會(huì)話,實(shí)現(xiàn)端到端的流量加密。
而MACSec是在數(shù)據(jù)包的以太網(wǎng)頭部后面插入數(shù)據(jù),對(duì)數(shù)據(jù)包的內(nèi)容進(jìn)行保護(hù)。其實(shí)現(xiàn)的是二層安全,MacSec是逐跳的逐交換機(jī)的,針對(duì)逐交換機(jī)端口之間的流量進(jìn)行加密操作。
在設(shè)計(jì)上MACSec主要和IEEE 802.1X配合使用,IEEE 802.1X主要用來(lái)實(shí)現(xiàn)基于端口的訪問(wèn)控制,MACSec主要實(shí)現(xiàn)安全保護(hù)功能,當(dāng)客戶端連接進(jìn)來(lái)時(shí),使用前者進(jìn)行認(rèn)證和授權(quán),使用后者實(shí)現(xiàn)連接的私密性和完整性。
MACSec具有很好的靈活性,可以根據(jù)實(shí)際情況來(lái)確定是否激活MACSec。例如可以在ISE或ACS等3A設(shè)備上靈活的更新控制機(jī)制,在某些安全的區(qū)域,激活MACSec保護(hù)功能,對(duì)于不重要訪問(wèn)來(lái)說(shuō),允許不支持MACSec的設(shè)備接入網(wǎng)絡(luò)。
MACSec實(shí)現(xiàn)可逐跳的安全性,并非是基于端到端的保護(hù),因此保證了IDS、QOS、NetFlow等網(wǎng)絡(luò)智能技術(shù)的使用。也就是說(shuō),在逐跳加解密過(guò)程中,在交換機(jī)里面看到的是明文數(shù)據(jù),在網(wǎng)線上看到的是加密的數(shù)據(jù)。
值得說(shuō)明的是,對(duì)于現(xiàn)在的思科的交換機(jī)、防火墻等設(shè)備來(lái)說(shuō),都提供了基于硬件的加密芯片,可以快速進(jìn)行加解密操作,對(duì)數(shù)據(jù)的傳輸性能基本上沒(méi)有影響。
當(dāng)然,不是所有的終端設(shè)備都支持MACSec,不是所有的交換機(jī)(例如Catalyst 3560-X之前的)都支持線速加密,當(dāng)激活MACSec后不可避免的會(huì)影響到一些邊界接入的正常使用。
當(dāng)激活MACSec后,在將網(wǎng)線插入到交換機(jī),此時(shí)交換機(jī)作為認(rèn)證者,會(huì)要求用戶輸入合適的賬戶名和密碼,之后則將其提交給認(rèn)證服務(wù)器。
而當(dāng)認(rèn)證通過(guò)后,交換機(jī)會(huì)記錄終端的MAC地址,可以實(shí)現(xiàn)源MAC地址過(guò)濾和端口狀態(tài)監(jiān)控機(jī)制。
即用戶拔下網(wǎng)線后就可以自動(dòng)注銷,而當(dāng)再次插上網(wǎng)線后,則需要重新進(jìn)行認(rèn)證。而只要網(wǎng)線沒(méi)有拔下,默認(rèn)是不需要執(zhí)行重復(fù)認(rèn)證的。
相比之下,如果僅僅執(zhí)行認(rèn)證操作,那么攻擊者則完全可以冒充合法主機(jī)的MAC地址,來(lái)連接經(jīng)過(guò)了DOT1X認(rèn)證過(guò)的端口侵入內(nèi)部網(wǎng)絡(luò)。而且攻擊者也可以在終端設(shè)備和交換機(jī)之間進(jìn)行嗅探和竊聽(tīng)。
而在采用了MACSec保護(hù)技術(shù)后,終端可交換機(jī)之間的流量處于加密狀態(tài),可以有效抗擊以上攻擊行為。ISE等3A設(shè)備先進(jìn)行認(rèn)證,之后通過(guò)EAP將發(fā)送主密鑰給客戶,通過(guò)Radius將主密鑰發(fā)送給交換機(jī)等認(rèn)證設(shè)備。
得到了主密鑰之后,在客戶和認(rèn)證者進(jìn)行密鑰的交換,來(lái)產(chǎn)生兩者之間用于加密的真正的密鑰。認(rèn)證者接收3A服務(wù)器的授權(quán),來(lái)進(jìn)行訪問(wèn)控制操作。
當(dāng) 然,EAP并 不 需 要MACSec進(jìn)行加密,EAP自身即可進(jìn)行加密處理。MACSec使用到一系列的協(xié)議,包括EAP、EAP mrthod、MKA、SAP、EAPoL、RADIUS等。
這里使用簡(jiǎn)單的例子來(lái)說(shuō)明如何配置MACSec。
一臺(tái)客戶機(jī)通過(guò)G1/0/12接口連接到SW1核心交換機(jī)上,在該交換機(jī)上開(kāi)啟了路由功能,該接口從屬于VLAN 10,ISE主用和備用認(rèn)證服務(wù)器,DC域控連接到該交換機(jī)的G1/0/10接口上,其從屬于VLAN 100。
在該交換機(jī)上執(zhí)行“VLAN 10”、“name client”、“Vlan 100”、“name ISEsrv”、“VLAN 150 Macsectest”、“interface GigabitEthernet 1/0/10”、“switchport access vlan 100”、“switchport mode access”、“spanning-tree portfast”、“end”、“interface gigabitEthernet1/0/24”、“switchport trunk allowed vlan 150”、“switchport mode trunk”、“interface Vlan 10”、“ip address 172.16.2.254 255.255.255.0”、“ip helperaddress 172.16.1.103”、“interface Vlan 100”、“ip address 172.16.1.254 255.255.255”、“interface Vlan 150”、“ip address 150.1.1.1 255.255.255.0”、“interface GigabitEthernet 1/0/22”、“switchport access 10”、“awitchport mode access”、“spanningtree portfast” 命 令。 主要用來(lái)創(chuàng)建上述VLAN以及對(duì)應(yīng)的SVI地址,其中的“172.16.1.103” 為 域控的IP,在域控上配置了DHCP服務(wù),便于為客戶端分配IP,主用ISE的IP為172.16.1.101,備 用 ISE的地址為172.16.1.102。VLAN 150用于連接這里的兩臺(tái)交換機(jī),主要用于測(cè)試交換機(jī)之間的MACSec。
交換機(jī)SW2通過(guò)Trunk鏈路連接到SW 1上,兩者使用的接口均為G1/0/24。在SW2上執(zhí)行“VLAN 150”、“name Macchannel”、“VLAN 100”、“interface GigabitEthernet1/0/24”、“switch trunk allowed vlan 150”、“interface vlan 150”、“ip address 150.1.1.2 255.255.255.0”命令,創(chuàng)建所需VALN,配置目標(biāo)端口和VLAN的SVI地址。
在SW1交換機(jī)上執(zhí)行“config t”、“interface GigabitEthernet 1/0/12”、“authentication portcontrol auto”、“dot1x pae authenticator”、“authentication violation protect”、“shutdown”、“no shutdown”、“end”命令,在該接口上激活DOT1X認(rèn)證功能。
執(zhí)行“aaa group server radius ISE”、“aaa server radius dynamic-author”、“radius-server attribute 6 on-for-login-auth”、“radius-server attribute 8 include-in-access-req”、“radius-server attribute 2 5 a c c e s s-r e q u e s t include”、“radius-server key xxx”、“radius server ISE”命令,配置和RADUIS認(rèn)證相關(guān)的參數(shù),和ISE設(shè)備建立連接。
這里的主機(jī)名稱,賬戶名以及密碼需要根據(jù)實(shí)際情況設(shè)定,通過(guò)依次執(zhí) 行“aaa new-model”、aaa authentication login noaaa line none”、aaa authentication login noise line none”、“aaa authentication dot1x default group ISE”、“aaa authentication exec qytangise group tacacs+”、“aaa authentication network default group ISE”、“aaa accounting dot1x default start-stop group ISE”、“aaa server radius dynamic-author”、“aaa session-id common”命令,配置和3A認(rèn)證相關(guān)的參數(shù)。
登錄到ISE的管理界面,點(diǎn)擊菜單“Administration→NetworkDevices”項(xiàng),在左側(cè)選擇“NetworkDevices”項(xiàng),在右側(cè)點(diǎn)擊“Add”按鈕,添加上述網(wǎng)絡(luò)設(shè)備,具體操作比較簡(jiǎn)單這里不再贅述。
點(diǎn) 擊“Administration→Groups”項(xiàng),在左側(cè)選擇“User Identity Groups”項(xiàng),在右側(cè)點(diǎn)擊“Add”按鈕,創(chuàng)建名為“Macsecgrp”的組。點(diǎn)擊工具欄上的“Identity Management → Identities”項(xiàng),點(diǎn)擊“Add”按鈕,創(chuàng)建名為“macuser”的用戶,為其為其設(shè)置密碼,在“User Groups”列表中選擇上述“Macsecgrp”組,將該用戶添加到該組中。在SW1上執(zhí)行“test aaa group ISE macuser xxx new-code”命令,對(duì)上述配置進(jìn)行測(cè)試,其中的“xxx”為上述用戶密碼。
在ISE管理界面中點(diǎn)擊 菜 單“Policy→Policy Sets”項(xiàng),顯示已經(jīng)默認(rèn)的認(rèn)證集信息。點(diǎn)擊“+”按鈕,創(chuàng)建新的策略集,將其修改為合適的名稱(例如MACsecpol1”)。 在 該 策略 的“Conditions” 列 中點(diǎn)擊“+”按鈕,在其編輯界面左側(cè)的“Library”列表中顯示很多條件,選擇Wired_802.1X”項(xiàng),將其拖動(dòng)到“Editor”面板中,點(diǎn)擊“New”按鈕,在擴(kuò)展面板中點(diǎn)擊“Click to add an attribute”按鈕,在“Select attribute for condition”窗 口 中 的“Directory”列表 中 選 擇“DEVICE” 項(xiàng),點(diǎn) 擊“Attribute”列 中 的“Location”項(xiàng),選擇設(shè)備所在的地點(diǎn)。點(diǎn)擊“Use”按鈕,使用該策略。
在該策略的“Allow P r o t o c o l s/S e r v e r Sequence”列中選擇“Device Network Access”項(xiàng),點(diǎn)擊“Save”按鈕保存該策略。在該策略最右側(cè)點(diǎn)擊“>”按鈕,在詳細(xì)信息窗口中會(huì)發(fā)現(xiàn)分別存在一個(gè)認(rèn)證策略和授權(quán)策略。在“Authentication Policy”欄右側(cè)點(diǎn)擊設(shè)置按鈕,在彈出菜單中點(diǎn)擊“Insert new row above”項(xiàng),添加一條認(rèn)證策略,修改其名稱(如“Macap1”),點(diǎn)擊“+”按鈕,在打開(kāi)窗口左側(cè)選擇“Wired_802.1X”項(xiàng),將其拖動(dòng)到“Editor”面板中,點(diǎn)擊“New”按鈕,按照上述方法設(shè)置目標(biāo)設(shè)備的合適地點(diǎn)。
在“策略集”窗口中打開(kāi)“Authorization Policy”欄,在右側(cè)點(diǎn)擊“設(shè)置”按鈕,在彈出菜單中點(diǎn)擊“Insert new row above”項(xiàng),設(shè) 置新的授權(quán)策略名稱(例如“Sqpolicy1”),點(diǎn)擊“+”按鈕,在“編輯”窗口中點(diǎn)擊“Click to add attribute”欄,在彈出窗口中點(diǎn)擊“Indentity group”按鈕,在列表中選擇上 述“IdentityGroup Name”項(xiàng),返回上級(jí)窗口,在其右側(cè)選擇上述“Macsecgrp”組。之后按照上述方法,設(shè)置目標(biāo)設(shè)備的合適地點(diǎn)。
在該授權(quán)策略項(xiàng)的“Profiles” 列 中 選 擇“DenyAccess”項(xiàng),點(diǎn)擊“Save”按鈕保存配置。點(diǎn)擊菜單“Policy→Results”項(xiàng),在左側(cè)選擇“Authorization→Au thorizationProfiles”項(xiàng),在右側(cè)點(diǎn)擊“Add”按鈕,輸入新的授權(quán)Profile的名稱(例如“MacProfile1”),在“Common Tasks”欄中選擇“DACL”項(xiàng),選擇合適的ACL控制列表項(xiàng)目,例如放行所有流量的ACL等。選擇“VLAN”項(xiàng),輸入合適的VLAN號(hào)(例如“10”),點(diǎn)擊“Submit”按鈕提交修改。之后返回上述策略集窗口,為上述“Sqpolicy1”授權(quán)策略的“Profiles”列中選擇該授權(quán)Profile項(xiàng)目。
在客戶機(jī)上運(yùn)行AnyConnect Secure Mobility Client程 序,在“Configuration”面板中點(diǎn)擊“Add”按鈕,在新建連接窗口中選擇“Wired”項(xiàng),使用有線連接方式。輸入連接名稱信息(例如“WiredLink”),在“Security”列 表 中 選擇“802.1X”項(xiàng),在“802.1X Configuration”欄中選擇“PEAP”項(xiàng),點(diǎn)擊“OK”按鈕創(chuàng)建該連接項(xiàng)目。選擇該連接項(xiàng)目,輸入賬戶名(例如“macuser”)和密碼,當(dāng)建立連接后,在SW 1交換機(jī)上執(zhí)行“show authentication sessions interface g1/0/22 details” 命 令,顯示該接口的認(rèn)證信息,在其中的“dot1X”欄中顯示“Authc Success”項(xiàng),表示認(rèn)證順利通過(guò)。
依次執(zhí)行“config t”、“interface g1/0/12”、“ m a c s e c”、“ e n d”、“shoudown”、“no shutdown”命令,在該接口下激活MACSec保護(hù)功能。在客戶機(jī)上斷開(kāi)連接后,再次選擇上述連接項(xiàng)目。當(dāng)在連接完成后,雖然可以順利訪問(wèn)網(wǎng)絡(luò)資源,但是因?yàn)榭蛻舳瞬](méi)有激活MacSec功能,所以在客戶端和交換機(jī)交換機(jī)之間的通訊并沒(méi)有進(jìn)行加密,僅僅是進(jìn)行了802.1X認(rèn)證而已。
為了實(shí)現(xiàn)MACSec加密效果,需要在ISE管理界面中點(diǎn)擊菜單“Policy→Results”項(xiàng),在 左 側(cè)選 擇“Authorization→AuthorizationProfiles”項(xiàng),選擇上述“MacProfile1”授權(quán)Profile,在其屬性窗口中的“Common Tasks”欄中 選 擇“MACSec Policy”項(xiàng),在其右側(cè)的列表中選擇should-secure”項(xiàng),表 示可以使用MACSec加密通訊,即可以進(jìn)行加密也可以不進(jìn)行MACSec加密。如果選擇must-secure”項(xiàng),表示必須使用MACSec加密通訊。
這里選擇前者。在客戶端上新建一個(gè)有線連接(例如其名稱為“MacLink”),方法和上述基本相同,所不同的是在“Security”列表中選擇“802.1X(MACsec)”項(xiàng)。使用該連接項(xiàng)目,輸入上述賬戶名和密碼,就可以和交換機(jī)之間建立加密通訊。
當(dāng)然,之前在交換機(jī)上需要執(zhí)行執(zhí)行“config t”、“interface g1/0/12”、“shoudown”、“no shutdown”命令,這樣就可以重新認(rèn)證,其效果相當(dāng)于在該接口拔下并重新插上網(wǎng)線。
當(dāng)重新連接完成后,在SW1交換機(jī)上執(zhí)行“show authentication sessions i n t e r f a c e g 1/0/1 2 details”命令,在返回信息中的“Security Policy”欄 中 顯 示“Should”,在“Security Status”欄中顯示“Link Secured”,說(shuō)明加密通訊已經(jīng)建立。
可以看出,要想在客戶機(jī)和交換機(jī)之間實(shí)現(xiàn)MACSec加密通訊,必須在客戶機(jī),交換機(jī)和ISE設(shè)備上同時(shí)設(shè)置和MACSec相關(guān)的項(xiàng)目,才可以實(shí)現(xiàn)安全的通訊。
前面談到,MACSEc不僅可以保護(hù)終端和交換機(jī)之間的通訊,還可以保護(hù)交換機(jī)之間的通訊。當(dāng)然,其只能支持基于預(yù)共享密鑰的方式。
在本例中在SW1上 執(zhí) 行“interface GigabitEthernet1/0/24”、switch trunk allow vlan 150”、“switchport mode trunk”、“cts manual”、“sap pak xxxxxx mode-list gcm-encrypt”命令, 配置所需的密鑰,并且實(shí)現(xiàn)認(rèn)證和加密的雙重功能。這里為“xxxxxx”具體的密鑰。在SW2執(zhí)行與之完全相同的命令。
需要注意的是,兩邊必須配置相同的密鑰,否則無(wú)法進(jìn)行通訊。
在上述任意交換機(jī)上述 上 執(zhí) 行“show macsec interface gigabitEthernet 1/0/24”命 令,在 返 回 信息中的顯示“MACsec is enabled”,在“Copher” 欄中 顯 示“GCM-AES-128”,說(shuō)明已經(jīng)開(kāi)啟了MACSEc加密功能。在當(dāng)傳輸了數(shù)據(jù)之后,在該命令返回信息中 的“Transmit Secure Channels” 和“Receive Secure Channels”欄中顯示發(fā)送和接收加密信道的詳細(xì)信息。
執(zhí) 行“show macsec summary”命令,顯示相關(guān)接口的狀態(tài),最后執(zhí)行“show mka sessions”命令,顯示具體的協(xié)商信息。