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