■ 河南 劉京義
編者按: PI(Cisco Prime Infrastructure)是思科企業(yè)級的網(wǎng)管軟件,在思科SDN架構中的最底層(數(shù)據(jù)層面)可以對支持SDN的網(wǎng)絡設備進行管理,這些設備采用的大都是IOS-XE的系統(tǒng),在第二層(控制層面)使用的是APIC-EM企業(yè)級控制器,在第三層(管理層面)使用PI進行管理操作,PI支持應用層的接口,允許基于PI執(zhí)行高級應用的開發(fā)。PI提供對無線設備高效的管理功能,這里就談談如何利用SPT(端口跟蹤)功能來有效發(fā)現(xiàn)惡意AP的蹤跡。
PI提供惡意AP的信息是從WLC無線控制器上檢索的。當一個惡意AP接入網(wǎng)絡后,會被正常AP探測到,之后會通過CAPWAP隧道將相關信息發(fā)送給WLC控制器。PI主機通過SNMP拉取或WLC的SNMP Trap機制,來獲取惡意AP信息。之后PI會在有線端發(fā)現(xiàn)惡意AP來防止其進一步的攻擊。
具體實現(xiàn)方法是,PI根據(jù)獲取的惡意AP的MAC地址,利用Port Tracing進行檢索,在相關交換機的CAM表中進行查詢,即可發(fā)現(xiàn)該惡意AP連接到哪個端口,然后將該接口進行Shutdown操作,該惡意AP就無法接入網(wǎng)絡了。在默認情況下,PI的Port Tracing功能僅限于惡意AP而非惡意客戶端。
要想實現(xiàn)PI的SPT功能,存在一些先決條件。例如,如果想利用SNMP v3來實現(xiàn)SPT,那么 SNMPv3 Group需要有相應的權限,即需要給PI所在的SNMP組放行對應的權限。惡意AP需要被發(fā)現(xiàn)并報告給PI主機,在交換機上,AP的CDP鄰居需要被看到。因為PI不僅要查看惡意AP對應MAC地址表,還會查看CDP鄰居表,如果看不到,就會認為其不在該交換機上。默認情況下,SPT不會檢測Trunk接口,所以Trunk接口需要正確配置,同時接口安全特性需關閉。
PI的SPT支持的交換機包 括Catalyst1960/3560/2560-E/3750-E/3850/4500等較新的型號,對于所有被跟蹤的交換機來說,需要擁有管理IP和SNMP的管理權限。在配置權限時,可以添加網(wǎng)絡地址段(例如10.1.1.0/24),而不能是單獨的地址。
對于SPT來說,讀取的權限就足夠了。在設置全局的SNMP的身份設置時,32位的子網(wǎng)掩碼是不許可的。對于交換機來說,其VLAN需要被精確設置,PI只是通過CDP的鄰居信息得到交換機的IP地址的。
之后通過交換機的VLAN信息來讀取設備的CAM表,如果VLAN信息沒有正確配置,那么PI就無法讀取CAM表,這會出現(xiàn)跟蹤失敗的情況。在所有的交換機上要啟用CDP,在惡意AP和交換機之間必須存在一個以太網(wǎng)連接,對于有些惡意AP來說,其射頻接口和實際以太網(wǎng)接口的MAC地址之間存在1或2的數(shù)值變化,如果不符合這一特點,那么必須有客戶端連接到該惡意AP,并且在惡意AP和交換機之間產(chǎn)生流量,PI才可以發(fā)現(xiàn)此類惡意AP。惡意AP和交換機的連接必須在最大跳數(shù)范圍內(nèi)。
對于SPT來說,可以使用Auto SPT和Manual SPT兩種方式,前者是基于警告自動進行檢測,也可以在設置好的時間段進行檢測。后者是基于每個單獨的AP警告,必須手動對應的按鈕,才可以進行SPT跟蹤,而且必須啟用了CDP的AP和在交換上啟用了SNMP方可。
注意,同手動SPT相比,自動SPT會花費更長時間。這是因為自動SPT是基于有線客戶端的發(fā)現(xiàn)過程,當接口剛剛no shutdown后,就會執(zhí)行一個Minor拉取操作,只有進行了兩次Minor拉取之后,才會調(diào)用一個Major的拉取。有了一個Major拉取,才會執(zhí)行一次Auto SPT。
而手動SPT可以隨時手工執(zhí)行檢測,即使有線的惡意AP是連接到交換機的。只有有線的惡意AP是關聯(lián)狀態(tài)時,才會被PI才會發(fā)現(xiàn)。PI總是檢測有線的客戶端是否存在關聯(lián)狀態(tài),如果有線客戶端是沒有關聯(lián)的,那么PI會顯示沒有找到對應接口。SPT是成批工作的,發(fā)現(xiàn)有線AP的時間長短是基于PI的工作工程決定的,如果一個特定的惡意AP在之前已經(jīng)處于工作狀態(tài),就會需要更長的時間來發(fā)現(xiàn)。發(fā)現(xiàn)有線AP的時間取決于PI上惡意警告的個數(shù),以及有線客戶端Major拉取的時間間隔。
這里使用簡單的例子來說明SPT的工作機制。
在SW1上通過F0/24接口和SW2的G1/0/20接口通過Trunk連接,通過F0/9接口和AP1的G0接口連接,AP1是胖AP。充當惡意AP的角色。在SW上的F0/6接口和PI主機的Port1接口通 過Trunk連 接,PI主 機的管理IP為10.1.1.20,在SW1上通過G0/1接口和某款WLC的Port1接口連接,WLC的管理IP為10.1.1.100。在SW1上存在VLAN10,VLAN 20和 VLAN 30,SVI分別為10.1.1.254,20.1.1.254 和30.1.1.254。
VLAN10用于設備管理,其余的VLAN用于客戶端,為VLAN10/20/30創(chuàng)建地址池,設置默認的網(wǎng)關,其均和SVI地址相同。
在SW1上 執(zhí) 行“ip routing”命令,啟用路由功能。
在SW2上通過G1/0/1接口和AP2的G0接口連接,通過G1/0/2接口和AP3的G0接口連接。在SW2上存在 VLAN 20和 VLAN 30,分別提供給AP2和AP3使用,SVI分別為20.1.1.253和30.1.1.253,,AP2和 AP3為瘦AP,將其關聯(lián)到WLC上,這兩個AP發(fā)揮著發(fā)現(xiàn)惡意AP的作用。WLC將發(fā)現(xiàn)的惡意AP的信息發(fā)送給PI,PI就可以執(zhí)行SPT的跟蹤。
在AP1上執(zhí)行:
config t
dot11 ssid RougeAP
vlan 10
authentication open
authentication keymanagement wpa version 2
gust-mode
end
創(chuàng)建名為“RougeAP”的SSID,其屬于 VLAN10,認證方式為開放狀態(tài),密鑰管理采用WPA2類型,允許用戶接收該SSID。執(zhí)行:
interface Dot11Radio0
encryption vlan 10 mode cipers aes-ccm
ssid RougeAP
no shutdown
interface Dot11Radio0.10
encapsulation dot1q 10 native
在2.4Ghz頻段將該SSID發(fā)射出去。
執(zhí)行:
interface Dot11Radio1
encryption vlan 10 mode cipers aes-ccm
ssid RougeAP
no shutdown
interface Dot11Radio1.10
encapsulation dot1q 10 native
在5Ghz頻段將該SSID發(fā)射出去。執(zhí)行“interface GigabitEthernet 0.14”,“encapsulation dot1Q 10 native”,“no shutdown”命令,在物理接口下對Dot1Q 10進行封裝。
在SW1和SW2上分別執(zhí)行:
snmp-server group pizu v3 priv read piread write piwrite
snmp-server user piuser pizu v3 auth sha 123456789012 priv aes 123456789012
snmp-server view piread iso include
snmp-server view piwrite iso include
snmp-server host 10.1.1.20 ver 3 auth piuser
snmp-server group pizu v3 priv content vlan match prefix
snmp-server enable traps
ip domain name xxx.com
crypto key generate rsa general-key modulus 1024
enable secret xxx
username piuser privilege 15 password qytang
line vty 0 15
login local
創(chuàng)建SNMP管理參數(shù)。其中的SNMP V3組名為“pizu”,創(chuàng)建名為“piuser”的用戶加入到該組,并為其設置加密和認證方式及密碼,這里密碼為“123456789012”。啟用了SNMP陷阱功能,允許該組擁有讀取VLAN的權限,并將信息發(fā)送到PI主機上。為了便于管理,為SW1和SW2開啟SSH登錄功能,并設置所需的用戶名和密碼,注意其級別為15,所以在之后具體管理時無需使用Enable密碼。這里的“xxx.com”為具體的域名。
登錄到WLC的管理界面,點擊工具欄上的“MANAGEMENT”項,在左側選擇“SNMP”、“SNMP V3 Users”項,在右側點擊“New”按鈕,在“User Profile Name”欄中輸入SNMP用戶名(如“wlcsnmp”), 在“Access Mode”中選擇“Read/Write”項, 在“Authentication Protocol”中 選 擇“HMACSHA”項,輸入認證密碼。在“Privacy Protocol”列表中選擇“CFB-AES-128”項,在其下輸入加密密碼。
進 入PI界 面,點 擊工 具 欄 中 的“Inventory”→“Network Devices” 項,點 擊“Add Device”按 鈕,輸入WLC的管理IP地址,在“Version”列表中選擇“V3”項,在“Auth.Type”列表中選擇“HMAC-SHA”項,在“Privacy Type”列表中選擇“CFB-AES-128”項,輸入SNMP用戶名,加密和認證密碼。點擊“Add”按鈕添加該設備。同理,在PI中添加SW1和SW2交換機。點擊工具欄中的“Inventory”→“Network Devices” 項,點 擊“Add Device”按鈕,可以看到已經(jīng)添加的設備。
在工具欄上點擊“WIRELESS”項,在左側選擇“ALL APs”項,在右側顯示AP2和AP3已經(jīng)關聯(lián)上了,點擊對應的AP名稱,在其屬性窗口中的“Advanced”面板中選擇“Rogue Detection”項,激活其惡意檢查AP檢查功能。在工具欄上點擊“SECURITY”項,在左側選擇“Wireless Protection Policies” →“Rogue Policies”→“General”項,在右側的“Rogue Detection Security Level”欄 中 選擇“Custom”項,在“Rogue Location Discovery Protocol”列表中選擇“Allaps” 項, 在“Auto Containment only for Monitor mode APs”欄中選擇“Enabled”項,讓其可以定位惡意AP。
在左側選擇“Rogue Policies”→“Rogue Rules”項,在右側點擊“Add Rule”按鈕,新建一條規(guī)則,輸入規(guī)則的名稱(如“rule1”),在“Rule Type”列表中選擇“Malicious”項,在“State”列 表中 選擇“Alert”項,點擊“Add”按鈕添加該規(guī)則。在該規(guī)則屬性窗口中選擇“Enable Rule”項并激活。在“Conditions”欄中選擇“SSID”項,點擊“Add Condition”按鈕,輸入具體SSID 名 稱(如“RougeAP”),點擊“Add SSID”按鈕添加該條件。
當惡意用戶連接帶AP1后,產(chǎn)生流量后會被監(jiān)控到。點擊工具欄的“MONITOR”項,選擇“Rogues”→“Malicious APs”項,在右側會顯示探測到的惡意AP信息,包括MAC地址、SSID、信道、連接的用戶數(shù)量等信息。
登錄到PI主機,在管理界 面 點 擊“Configuration”→“Wireless”項,在左側選擇“Access Points”→“All APs”項,在右側顯示已關聯(lián)的AP,選擇對應AP,在屬性窗口中選擇“Advanced”→“Rogue Detetion”,激活惡意 AP 檢測功能。點擊“Configuration”→“Security” 項,選 擇“Wireless Protection Policies” →“Rogue Policies”項,在 右 側 的“Rogue Location Discovery Protocol”列表中選擇“Allaps” 項,選 擇“Auto Containment only for Monitor mode APs”。 點 擊“Applying”按鈕保存保存。
在左側選擇“Rogue AP Rules”項,在 右 側 點擊“Add Rule”按鈕,輸入策 略 名 稱(如“Pirule1”),在“Rule Type”列表中選擇“Malicious” 項,點 擊“Add”按鈕添加該規(guī)則,在屬性窗口中選擇“Enable Rule”,激活該規(guī)則。在“Add condition”中選擇“ssid”項,點 擊“Add condition”按鈕,輸入具體的SSID名稱(如“Rouge”),點 擊“Add SSID”添加該條件。點擊工具欄的“Monitor”項,在左側選擇“Malicious”,在右側顯示發(fā)現(xiàn)的惡意AP信息。
登 錄 到PI主 機,在其管理界面工具欄上點擊“Administration”→“System Settings” 項,在左側選擇“Switch Port Trace”項,在 右 側 窗 口選 擇“MAC address+2/-2(including +1/-1)search”項,表示檢測目標AP射頻接口和實際以太網(wǎng)接口的MAC地址之間是否存在存在1或者2的數(shù)值變化。選擇“Rouge client MAC address search”項,表示當惡意AP有客戶端存在的話,客戶端的MAC地址也會加入到查詢列表中。
選 擇“Bendor(OUI)search”項,表示通過MAC地址的前面三段的OUI來檢測惡意AP的廠商信息,這樣便于啟用排除列表。取消“Exclude search trunk ports”項,表示檢測Trunk接口。因為惡意AP可能使用Trunk和交換機連接。在“Exclude device list”欄中輸入需要排除的設備MAC地址,以逗號分隔。這樣,該列表中的的設備就不會進行檢測。在“Max hop count”欄中設置上述最大跳數(shù)。
在“Exclude vendor list”欄中設置排除的廠商列表,表示這些廠商的AP不是惡意AP,最好將其清空。在“TraceRougeAP task max thread”欄中設置在一次并行檢查中允許的惡意AP的數(shù)量,默認為2。在“TraceRougeAP max queue size”欄中設置當最大隊列的尺寸,在其中定義一個隊列中最多有多少個惡意AP的 條 目。 在“SwitchTask max thread”欄中設置在一次并行查找中最大的交換機的數(shù)量。
在左側選擇“SNMP Credentials”項,在右側的的“Network Address”列中默認顯示“0.0.0.0”項,表示對所有的設備均使用名為“cisco”的團體名。在該頁面允許為SPT設置SNMP身份信息,當一個設備的身份信息沒有加入到PI,可以使用該頁面頁面中SNMP信息來連接交換機。
當然,可以選擇“Add SNMP Entries”項,在打開窗口中輸入合適的IP范圍(如“10.1.1.0”)和掩碼,選擇“SNMP v2 Parameters”項,輸入合適的團體名。選擇“SNMP v3 Parameters”可以設置合適的用戶名、認證方式、認證密碼、加密類型和加密密碼,創(chuàng)建所需SNMP項目。
在左側選擇“Rouge AP Settings”項,在右側選擇“Enable Auto Search Port Tracing”表示啟用SPT檢測功能。選擇“Major”表示選擇PI跟蹤客戶端發(fā)現(xiàn)在所有的設備端口,通過各種數(shù)據(jù)同步基本的客戶端信息,選擇“Minor”表示PI跟蹤客戶端發(fā)現(xiàn)只有在設備接口剛剛變成Active時,PI可以查看設備的UpTime來識別接口是不是剛剛添加和刪除客戶端。
開啟了SPT功能后,可以發(fā)現(xiàn)存在的惡意AP,在PI管理窗口右下角的提示欄中顯示警告信息,點擊該信息,在打開的“Alarm Summary”面板中的“major”列中顯示發(fā)現(xiàn)的惡意AP的數(shù)量,點擊該值在打開的窗口中顯示報告窗口,選擇目標告警項目,在其詳細信息窗口中顯示SPT已經(jīng)激活,但是端口沒有發(fā)現(xiàn)。在打開窗口中點擊“Show Detail Status”按鈕,顯示狀態(tài)信息。
點 擊“Trace Switch Port(s)”,執(zhí) 行 端 口 跟 蹤操作,在“Status”欄中顯示已發(fā)現(xiàn)對應的端口,在“Switch/Ports”中顯示發(fā)現(xiàn)的連接惡意AP的所有交換機端口號。注意,如果惡意AP是瘦AP且關聯(lián)到WLC的話,端口會顯示“Capwap0”之類信息。選擇目標端口號,點 擊“Enable/Disable SwitchPort(s)”按鈕,禁用選定的交換機端口,連接的惡意AP就無法使用了。