在網(wǎng)絡(luò)管理中,如何防御各種網(wǎng)絡(luò)攻擊,保護(hù)網(wǎng)絡(luò)的安全運(yùn)行,是網(wǎng)管員必須重視的問題。這就要求網(wǎng)管員熟悉各種網(wǎng)絡(luò)攻擊的特點(diǎn),才能有針對性的采取保護(hù)措施。例如利用交換機(jī)等網(wǎng)絡(luò)設(shè)備自帶的安全功能,就可以輕松化解各種潛在的安全威脅。眾所周知,在思科交換機(jī)上不僅可以提供基于端口的安全控制,還提供了DHCP偵聽(DHCP Snooping),動 態(tài) ARP檢 測(Dynamic ARP Inspection)和 IP源 防 護(hù)(IP Source Guard)等基于主機(jī)和端口的安全控制手段。
在實(shí)際的網(wǎng)絡(luò)管理中,會使用DHCP服務(wù)器為客戶機(jī)分配IP地址和核心的網(wǎng)絡(luò)配置參數(shù)。對于DHCP的欺騙攻擊來說,攻擊者會將自身的主機(jī)偽裝成DHCP服務(wù)器或者客戶端,分別以不同的方式來攻擊DHCP服務(wù)器。對于黑客來說,當(dāng)其連接到交換網(wǎng)絡(luò)后,將自己偽裝成DHCP服務(wù)器,當(dāng)同一個VLAN中的其他主機(jī)向外產(chǎn)生廣播數(shù)據(jù)幀,來請求DHCP的IP地址時,黑客的主機(jī)就會搶先向其分配IP,當(dāng)然,這肯定是虛假的IP。例如,本地VLAN使用三層交換機(jī)的網(wǎng)關(guān)為192.168.1.254,而黑客會為其提供偽造的網(wǎng)關(guān)IP(例如是黑客主機(jī)的地址192.168.1.253),造成該客戶端到達(dá)外網(wǎng)的流量會先經(jīng)過黑客的主機(jī),再經(jīng)過轉(zhuǎn)發(fā)后到達(dá)外部網(wǎng)絡(luò)。
這樣,攻擊者將毫不費(fèi)力的偵聽到該客戶機(jī)的所有對外的訪問信息。攻擊者也可能將自身偽裝成DHCP客戶端,不停的對外發(fā)送DHSP請求包,當(dāng)然,其會不斷的偽裝不同的MAC地址。這就會給DHCP服務(wù)器造成一個錯覺,認(rèn)為網(wǎng)絡(luò)中很多主機(jī)向其申請IP,造成其不斷的向下分發(fā)IP,直到DHCP地址池耗盡為止。
針對DHCP欺騙攻擊,思科交換機(jī)提供了DHCP偵聽功能。該功能可以跟蹤和記錄所有的DHCP請求(Discover)和回應(yīng)(Offer)消息,來檢測DHCP信息在傳遞過程中是否存在異常情況(例如檢測當(dāng)一臺主機(jī)產(chǎn)生大量的Discover消息等)。前者由客戶端產(chǎn)生,后者由DHCP服務(wù)器產(chǎn)生。DHCP Snooping會記錄Offer消息中的IP地址分配信息,籍此交換機(jī)會知曉在本地交換網(wǎng)絡(luò)中哪些主機(jī)(即MAC地址)分配了什么樣的IP地址。
DHCP Snooping會 對Request消息進(jìn)行流量的限制,即限制在一個接口上每分鐘產(chǎn)生的Request消息的流量。如果該流量到達(dá)預(yù)設(shè)的閥值,交換機(jī)就會認(rèn)為有用戶偽裝成DHCP客戶端,不停的發(fā)送Request消息對DHCP服務(wù)器進(jìn)行拒絕服務(wù)攻擊,交換機(jī)就會對該端口進(jìn)行管控。針對DHCP的Offer消息,交換機(jī)可以將其限定在某些接口上,例如將只將某個接口連接到DHCP服務(wù)器,只允許在該接口上出現(xiàn)DHCP的Offer消息,如果其他的接口上出現(xiàn)了Offer消息,交換機(jī)就會認(rèn)為其連接的主機(jī)是偽裝的DHCP服務(wù)器。DHCP Snooping將 交換網(wǎng)絡(luò)中的端口分為信任(Trust)和非信任(Untrust)端口。
對于前者來說,允許連接到DHCP服務(wù)器,可以接收DHCP服務(wù)器發(fā)出的消息(例如Offer和Replay消息等)。對于后者來說,是不允許接收DHCP服務(wù)器發(fā)送來的數(shù)據(jù),即其不允許連接DHCP服務(wù)器。如果該類型的接口上出現(xiàn)了DHCP的Offer包,就會被交換機(jī)丟棄。這樣,當(dāng)黑客主機(jī)連接到了Untrust接口,其產(chǎn)生的所有offer包是無法進(jìn)行交換網(wǎng)絡(luò)中的。一般來說,會將接入層交換機(jī)的所有連接到主機(jī)的接口都配置成Untrust接口,同時將所有的上行鏈路都配置成Trust接口,因?yàn)樯闲墟溌吠ǔJ前踩墓歉删W(wǎng)絡(luò),DHCP服務(wù)器往往出現(xiàn)在上行鏈路中。
進(jìn)入交換機(jī)額全局配置模式,執(zhí)行“ip dhcp snooping”命令,開啟DHCP偵聽功能。執(zhí)行“ip dhcp snooping information option”命令,將一些擴(kuò)展信息也提交到監(jiān)控內(nèi)容中。執(zhí)行“ip dhcp snooping valn 10,20”命令,在指定的VALN上看起DHCP Snooping功能。默認(rèn)情況下,所有的接口都是Untrust狀態(tài)??梢葬槍μ囟ǖ亩丝?,將其配置為Untrust狀態(tài)。
例如執(zhí)行“interface fastethernet 1/0/9” 命令,進(jìn)入指定的端口。執(zhí)行“description Uplink”,“switchport mode trunk”,“switchport trunk allowed vlan 10,20”,“ip dhcp snooping trust” 命 令,為該端口設(shè)置描述信息,將其設(shè)置為Trust狀態(tài),在該接口上可以連接合法的DHCP服務(wù)器。對于Untrust接口,可以設(shè)置其閥值。例如執(zhí)行“int ran fa 1/0/10,fa1/0/20”命令,進(jìn)入指定的端口。
之后執(zhí)行“description Access Port”,“ip dhcp limit rate 10”的命令,為其設(shè)置好描述信息,并允許其在一分鐘內(nèi)最多能夠出現(xiàn)10個DHCP數(shù)據(jù)包。這樣就可以防止黑客連接到該接口來偽裝成DHCP客戶端,對DHCP服務(wù)器發(fā)起拒絕服務(wù)攻擊了。
當(dāng)黑客發(fā)送的DHCP請求包達(dá)到預(yù)設(shè)的閥值后,該端口就會自動關(guān)閉。執(zhí)行“show ip dhcp snooping binding”命令,可以監(jiān)聽哪個MAC地址獲得了哪個IP地址信息,以及對應(yīng)的租期,監(jiān)聽類型,所屬的VLAN,連接的端口等內(nèi)容。
在網(wǎng)絡(luò)環(huán)境中經(jīng)常會遇到ARP毒化攻擊,其本質(zhì)就是ARP欺騙攻擊。例如,當(dāng)A主機(jī)想連接某個路由器,為了獲取其MAC地址,該主機(jī)會首先向外部發(fā)送ARP請求,該請求實(shí)際上是廣播數(shù)據(jù)幀,主要用來尋找路由器的MAC地址。因?yàn)槭菑V播數(shù)據(jù)幀,所以可能會到達(dá)黑客主機(jī),當(dāng)其收到該ARP請求后,就會自身偽裝成目標(biāo)路由器的IP地址,并將自身的IP地址通告給上述主機(jī)。這樣,就會讓A主機(jī)誤以為黑客主機(jī)就是目標(biāo)路由器。這樣,A主機(jī)發(fā)送的數(shù)據(jù)機(jī)會傳送給黑客主機(jī)。而黑客主機(jī)會通過設(shè)置一些路由信息,將A主機(jī)發(fā)送的數(shù)據(jù)轉(zhuǎn)發(fā)給目標(biāo)路由器。
可以看出,ARP毒化攻擊就是黑客主機(jī)用自己的MAC地址,來回應(yīng)其他主機(jī)對于其他節(jié)點(diǎn)的ARP請求。在思科交換機(jī)上,提供了DAI(動態(tài)ARP檢測)功能來抗擊ARP毒化攻擊,這樣可以有效防止惡意ARP響應(yīng)出現(xiàn)在網(wǎng)絡(luò)環(huán)境中,并且可以檢測數(shù)據(jù)庫來對比找出哪些是惡意的ARP,以及哪些是正確的ARP請求。
例如,當(dāng)網(wǎng)關(guān)主機(jī)需要尋找A主機(jī)時,會產(chǎn)生一個ARP請求,來獲取A主機(jī)的MAC地址。當(dāng)黑客主機(jī)獲得該請求后,會使用其自身的MAC地址進(jìn)行回應(yīng)。當(dāng)該ARP回應(yīng)包到達(dá)交換機(jī)后,交換機(jī)上的DAI功能對其進(jìn)行偵聽和監(jiān)控,并提取其中的信息,并將其和本地的數(shù)據(jù)庫進(jìn)行比對,如果信息符合規(guī)范,說明其是一個正確的ARP回應(yīng)包,否則說明其非法的ARP信息。
交換機(jī)是如何知曉每臺主機(jī)的IP和MAC地址的對應(yīng)關(guān)系呢?這其實(shí)和DHCP Snooping功能相關(guān)。DHCP Snooping會偵聽每一個DHCP Offer消息,來獲取每一個MAC地址和IP的正確對應(yīng)關(guān)系。這樣,就可以建立所需的數(shù)據(jù)庫。
由此可以看出,當(dāng)黑客主機(jī)冒充A主機(jī)的MAC地址的ARP回應(yīng)包到達(dá)交換機(jī)后,就會被交換機(jī)識破并被丟棄。要想在交換機(jī)上開啟DAI功能,首先需要正確的開啟和配置DHCP Snooping功能。和DHCP Snooping一樣,DAI也會將端口分為Trust和Untrust兩種。對于前者來說,其連接的主機(jī)不可能出現(xiàn)ARP欺騙的現(xiàn)象,即無需檢測直接轉(zhuǎn)發(fā)ARP數(shù)據(jù)包。對于后者來說,必須對所有的ARP消息進(jìn)行檢測,判斷其合法性。不僅需要對ARP回應(yīng)包中的IP和MAC的對應(yīng)關(guān)系進(jìn)行檢測,還可以限制允許發(fā)送的ARP數(shù)據(jù)包的數(shù)量。
這樣,可以防止黑客使用ARP掃描來探測網(wǎng)絡(luò)中的主機(jī)信息。在交換機(jī)全局配置模式下按照上述方法開啟DHCP Snooping功能,并針對對應(yīng)的VLAN開啟DHCP偵聽,并配置對應(yīng)端口的閥值。執(zhí) 行“ip arp inspection vlan 10,20”命令,來針對目標(biāo)VLAN開啟DAI保護(hù)功能。當(dāng)然,還需要按照上述方法,開啟針對特定端口將其配置為Trust狀態(tài)。執(zhí)行“ip arp inspection trust”命令,針對特定的Trust端口開啟DAI信任。
注意,在默認(rèn)情況下,針對ARP檢測來說,如果沒有具體配置的話,所有的端口都將會自動處于Untrust狀態(tài),即其發(fā)送的ARP信息都會被跟蹤和監(jiān)視。對于連接企業(yè)主干網(wǎng)絡(luò)的上行鏈路或者連接合法服務(wù)器的接口來說,可以將其設(shè)置為Trust狀態(tài)。