對(duì)于網(wǎng)絡(luò)、系統(tǒng)管理或安全技術(shù)人員來(lái)說(shuō),在對(duì)網(wǎng)絡(luò)進(jìn)行管理和維護(hù)的過(guò)程中,總會(huì)遇到這樣或那樣的問(wèn)題。例如,網(wǎng)絡(luò)傳輸性能為什么突然降低?為什么網(wǎng)頁(yè)打不開(kāi),但QQ卻能上線?為什么某些主機(jī)突然掉線?諸如此類(lèi)的網(wǎng)絡(luò)問(wèn)題一個(gè)又一個(gè)地不斷出現(xiàn),都需要我們快速有效地去解決,以便能夠盡量減少由于網(wǎng)絡(luò)問(wèn)題對(duì)正常業(yè)務(wù)造成的影響。因此,我們就需要一引起工具來(lái)幫助我們快速有效地找出造成上述這些問(wèn)題的原因。
網(wǎng)絡(luò)嗅探器就是這樣的一種網(wǎng)絡(luò)工具,通過(guò)對(duì)所有的網(wǎng)絡(luò)數(shù)據(jù)包,或者對(duì)進(jìn)出某臺(tái)工作站的數(shù)據(jù)包進(jìn)行分析,就可以迅速地找到各種網(wǎng)絡(luò)問(wèn)題的原因所在,因而也就深受廣大網(wǎng)絡(luò)管理員和安全技術(shù)人員的喜愛(ài)。
可是,我們也應(yīng)該知道是通過(guò)地址表來(lái)決定將數(shù)據(jù)包轉(zhuǎn)發(fā)到哪個(gè)端口的。原則上來(lái)講,簡(jiǎn)單通過(guò)物理方式將網(wǎng)絡(luò)嗅探器接入到交換機(jī)端口,然后將嗅探器的卡設(shè)為混雜模式,依然只能捕捉到進(jìn)出網(wǎng)絡(luò)嗅探器本身的數(shù)據(jù)包。這也就是說(shuō),在交換機(jī)構(gòu)建的網(wǎng)絡(luò)環(huán)境中,網(wǎng)絡(luò)嗅探器不使用特殊的方式是不能分析其它主機(jī)或整個(gè)局域網(wǎng)中的數(shù)據(jù)包的。但是,現(xiàn)在的企業(yè)都是通過(guò)交換機(jī)來(lái)構(gòu)建局域網(wǎng),那么,如果我們要想在這樣的網(wǎng)絡(luò)環(huán)境中使用網(wǎng)絡(luò)嗅探器來(lái)解決網(wǎng)絡(luò)問(wèn)題,就必需考慮如何將網(wǎng)絡(luò)嗅探器接入到目標(biāo)位置,才能讓網(wǎng)絡(luò)嗅探器捕捉到網(wǎng)絡(luò)中某臺(tái)主機(jī)或整個(gè)網(wǎng)段的網(wǎng)絡(luò)流量。
就目前來(lái)說(shuō),對(duì)于在交換機(jī)構(gòu)建的網(wǎng)絡(luò)環(huán)境中使用網(wǎng)絡(luò)嗅探器,可以通過(guò)利用可網(wǎng)管交換機(jī)的端口匯聚功能、通過(guò)接入集成器或Cable TAP接線盒及選擇具有特殊功能的網(wǎng)絡(luò)嗅探軟件這3種方法來(lái)進(jìn)行。這3種可行的方式分別針對(duì)不同的交換機(jī)應(yīng)用環(huán)境來(lái)使用的,本文下面就針對(duì)目前主流的幾種交換機(jī)網(wǎng)絡(luò)環(huán)境,來(lái)詳細(xì)說(shuō)明這3種接入方式的具體應(yīng)用。
通過(guò)可網(wǎng)管交換機(jī)端口匯聚功能來(lái)達(dá)到目的
現(xiàn)在一些可網(wǎng)管式交換機(jī),一般都有一種叫做端口匯聚(port spanning)的功能,并且?guī)в幸粋€(gè)可以用來(lái)實(shí)現(xiàn)這種功能的端口。使用交換機(jī)的端口鏡像功能時(shí),就允許我們將交換機(jī)中其它端口上的流量鏡像到這個(gè)特殊的端口當(dāng)中。這樣,只要將網(wǎng)絡(luò)嗅探器連接到這個(gè)端口上,然后將嗅探器的網(wǎng)絡(luò)接口卡設(shè)為混雜模式,就可以嗅探到所有由交換轉(zhuǎn)發(fā)的數(shù)據(jù)包。
要想使用交換機(jī)的端口匯聚功能,在使用前必需對(duì)交換機(jī)進(jìn)行相應(yīng)的設(shè)置。設(shè)置的方法得根據(jù)交換機(jī)可以使用的配置功能來(lái)進(jìn)行,有些交換機(jī)可以通過(guò)終端方式來(lái)進(jìn)行,也可以通過(guò)WEB方式更加直觀地設(shè)置交換機(jī)的端口匯聚功能,還可以通過(guò)遠(yuǎn)程登錄的方式進(jìn)行設(shè)置。為了保障交換機(jī)的安全,最好使用本地登錄方式的終端管理模式和本地WEB管理模式。圖1.1就是通過(guò)端口匯聚功能接入網(wǎng)絡(luò)嗅探器的拓?fù)鋱D。

圖1.1 通過(guò)端口匯聚方式接入網(wǎng)絡(luò)嗅探器的拓?fù)鋱D
現(xiàn)在,在一些中小型的企業(yè)當(dāng)中,由于網(wǎng)絡(luò)規(guī)模不大,或者為了節(jié)省IT成本,只使用了一些非網(wǎng)管的交換機(jī)來(lái)構(gòu)建局域網(wǎng)。對(duì)于非網(wǎng)管型的交換機(jī),我們就不可能再使用端口匯聚功能來(lái)接入網(wǎng)絡(luò)嗅探器了。那么,對(duì)于這種交換機(jī)構(gòu)建的網(wǎng)絡(luò)環(huán)境,我們又該使用什么樣的方法來(lái)達(dá)到嗅探網(wǎng)絡(luò)中的所有網(wǎng)流數(shù)量,或者只嗅探進(jìn)出某臺(tái)工作站之中的網(wǎng)絡(luò)流量的目的呢?
就目前來(lái)說(shuō),在這樣的交換機(jī)網(wǎng)絡(luò)環(huán)境中可以使用下面所示的兩種方法來(lái)實(shí)現(xiàn):
第一種方法就是通過(guò)在交換機(jī)上再接入一個(gè)小型(HUB),然后將嗅探
器和被嗅探的所有主機(jī)都連接到這個(gè)集線器中。這樣,就使被嗅探的網(wǎng)絡(luò)變成了共享式的以太網(wǎng),在這個(gè)重新構(gòu)建的共享式局域網(wǎng)中的所有數(shù)據(jù)包,將會(huì)以廣播的方式發(fā)送到集線器的所有端口。如此一來(lái),只需要將網(wǎng)絡(luò)嗅探器的以太網(wǎng)網(wǎng)卡置于混雜模式,就可以嗅探到這個(gè)共享式局域網(wǎng)中傳輸?shù)乃袛?shù)據(jù)包。
但是,使用這種方式有它一定的局限性的。一方面,將一個(gè)關(guān)鍵的網(wǎng)絡(luò)段連接到集線器上,由于所有的工作站都是共享集線器的帶寬的,接入的工作站過(guò)多就會(huì)影響到它們的網(wǎng)絡(luò)性能。另一方面,如果在構(gòu)建局域網(wǎng)時(shí)沒(méi)有考慮到網(wǎng)絡(luò)嗅探器的使用,也就不可能在一開(kāi)始就連入了集線器。因而在局域網(wǎng)運(yùn)行過(guò)程中再將集線器接入到交換機(jī)上時(shí),就不得不中斷網(wǎng)絡(luò),以及將它從交換機(jī)中退出時(shí),也會(huì)中斷一次網(wǎng)絡(luò)。因此,這種接入網(wǎng)絡(luò)嗅探器的方式只有當(dāng)出現(xiàn)了某種嚴(yán)重的網(wǎng)絡(luò)問(wèn)題,需要用網(wǎng)絡(luò)嗅探器來(lái)分析解決時(shí)才能使用。圖2.1就是通過(guò)集線器連入網(wǎng)絡(luò)嗅探器的拓?fù)鋱D。

圖2.1 通過(guò)集線器的方式連入網(wǎng)絡(luò)嗅探器的拓?fù)鋱D
第二種方法就是通過(guò)在交換機(jī)上接入一個(gè)Cable TAP接線盒,然后將網(wǎng)絡(luò)嗅探
器和所有需要被管理的工作站或連接到Cable TAP接線盒上,由于它也是一種共享式網(wǎng)絡(luò)連接設(shè)備,因而也就可以嗅探到使用它構(gòu)建的整個(gè)局域網(wǎng)中傳輸?shù)乃袛?shù)據(jù)包了。
只不過(guò)Cable TAP接線盒的收發(fā)方式是獨(dú)立進(jìn)行的,因而它的帶寬可以與交換機(jī)相似,但在使用時(shí)應(yīng)用兩根網(wǎng)線來(lái)分別連接它的收與發(fā)接口到交換機(jī)的獨(dú)立端口中。Cable TAP可以作為一種固定的設(shè)備,永久地連入到網(wǎng)絡(luò)結(jié)構(gòu)當(dāng)中而不影響網(wǎng)絡(luò)的傳輸性能,因而可以在一開(kāi)始的時(shí)候就可以將它加入到網(wǎng)絡(luò)結(jié)構(gòu)當(dāng)中,以便在后續(xù)的網(wǎng)絡(luò)管理過(guò)程中可以使用它。
現(xiàn)在,已經(jīng)有很多網(wǎng)絡(luò)生產(chǎn)商生產(chǎn)Cable TAP接線盒,主要目的也是為了跟一些網(wǎng)絡(luò)協(xié)議分析設(shè)備一起使用,以便網(wǎng)絡(luò)分析設(shè)備可以監(jiān)控和分析整個(gè)交換機(jī)網(wǎng)絡(luò)環(huán)境中所有網(wǎng)絡(luò)流量。例如福祿克網(wǎng)絡(luò)公司就生產(chǎn)這樣的在線式TAP連接設(shè)備。圖2.2就是通過(guò)Cable TAP接線盒方式連入網(wǎng)絡(luò)嗅探器的拓?fù)鋱D。

圖2.2 通過(guò)Cable TAP接線盒方式連入網(wǎng)絡(luò)嗅探器的拓?fù)鋱D
使用Cable TAP接線盒解決了了使用時(shí)的網(wǎng)絡(luò)傳輸性能的問(wèn)題,但是,卻沒(méi)有使用集線器這種方式的靈活。在一個(gè)允許中斷正常業(yè)務(wù)的網(wǎng)絡(luò)問(wèn)題解決過(guò)程中,可以使用集線器隨意在需要分析網(wǎng)絡(luò)流量的位置進(jìn)行網(wǎng)絡(luò)嗅探工作,然后在解決網(wǎng)絡(luò)問(wèn)題之后,重新恢復(fù)網(wǎng)絡(luò)的原有結(jié)構(gòu)。
如果在一個(gè)非網(wǎng)管的網(wǎng)絡(luò)環(huán)境中,堅(jiān)決不可以中斷企業(yè)業(yè)務(wù)及改變網(wǎng)絡(luò)原有結(jié)構(gòu)的方式來(lái)使用網(wǎng)絡(luò)嗅探器,或者就算允許使用集線器,但是在使用時(shí)手上沒(méi)有這樣的網(wǎng)絡(luò)設(shè)備。此時(shí),我們又該如何將網(wǎng)絡(luò)嗅探器接入到目標(biāo)交換機(jī)網(wǎng)絡(luò),達(dá)到嗅探進(jìn)出某臺(tái)工作站或整個(gè)中所有網(wǎng)絡(luò)流量的目的呢?在這種情形之下,我們就可以選擇一些具有特殊功能的網(wǎng)絡(luò)嗅探器來(lái)完成任務(wù)。
現(xiàn)在,有一些網(wǎng)絡(luò)嗅探器軟件具有在交換機(jī)網(wǎng)絡(luò)環(huán)境中嗅探數(shù)據(jù)包功能,例如DSniff和Ettercap。使用這樣的網(wǎng)絡(luò)嗅探器軟件就能夠在不需要特殊設(shè)備的情況下,就可以得到局域網(wǎng)中進(jìn)出某臺(tái)主機(jī)的所有數(shù)據(jù)包。
實(shí)際上,這些可以在交換機(jī)網(wǎng)絡(luò)環(huán)境中使用的網(wǎng)絡(luò)嗅探軟件,都是使用一些網(wǎng)絡(luò)攻擊手段來(lái)達(dá)到在交換網(wǎng)絡(luò)環(huán)境中得到數(shù)據(jù)包的目的。下面就是這些軟件可能會(huì)使用到的攻擊方式:
1、交換機(jī)地址表溢出(Switch Flooding)
交換機(jī)通過(guò)維護(hù)一張地址表來(lái)將數(shù)據(jù)包正確地轉(zhuǎn)發(fā)到指定的端口。當(dāng)使用大量的假冒MAC地址填滿交換機(jī)的地址空間時(shí),交換機(jī)就會(huì)像一臺(tái)普通的HUB一樣,將所有多出來(lái)的通信廣播到整個(gè)局域網(wǎng)當(dāng)中的所有計(jì)算機(jī)當(dāng)中。這樣一來(lái),當(dāng)我們先通過(guò)網(wǎng)絡(luò)嗅探器使用一些無(wú)用的MAC地址將交換機(jī)的MAC地址表填滿后,就可以讓交換機(jī)將所有數(shù)據(jù)包以廣播的方式轉(zhuǎn)發(fā)到整個(gè)局域網(wǎng)。此時(shí),只需要將網(wǎng)絡(luò)嗅探器的以太網(wǎng)網(wǎng)卡設(shè)為混雜模式,就可以嗅探到整個(gè)交換機(jī)網(wǎng)絡(luò)環(huán)境中的所有數(shù)據(jù)包了。Dsniff軟件包中的macof 就是用來(lái)實(shí)施交換機(jī)MAC地址表溢出攻擊的。
現(xiàn)在,這個(gè)問(wèn)題在許多大型交換機(jī)當(dāng)中已經(jīng)不存在了。這些交換使用了一種方式來(lái)限制其MAC地址表會(huì)被填滿,并且使用了一種方式,當(dāng)其MAC地址表容量到某種程度后就會(huì)關(guān)閉廣播通信功能,或者關(guān)閉某些端口。
2、重定向(ARP Redirects)
當(dāng)一臺(tái)計(jì)算需要另一臺(tái)計(jì)算機(jī)的MAC地址時(shí),它就會(huì)向?qū)Ψ桨l(fā)送一個(gè)ARP地址請(qǐng)求。每臺(tái)計(jì)算機(jī)都會(huì)維護(hù)一張包含與它會(huì)話過(guò)的所有計(jì)算機(jī)的MAC地址的ARP表。只是,這些ARP表會(huì)在某段時(shí)間刷新一次,將一些超時(shí)的ARP項(xiàng)刪除。在交換機(jī)環(huán)境中也是被廣播,這是由于這個(gè)ARP協(xié)議包中沒(méi)有具體接收對(duì)象的MAC地址。當(dāng)局域網(wǎng)中的某臺(tái)工作站發(fā)送出一個(gè)ARP請(qǐng)求時(shí),同一網(wǎng)段中的所有計(jì)算機(jī)都可以接收到,然后每臺(tái)計(jì)算按ARP中提供的IP地址查找自己的ARP地址表,如果找到相對(duì)應(yīng)的,就給那臺(tái)主機(jī)發(fā)送一個(gè)確認(rèn)的ARP協(xié)議,此數(shù)據(jù)包中包含它的MAC地址。
因此,網(wǎng)絡(luò)嗅探器就可以利用交換機(jī)的這個(gè)特性,使用ARP協(xié)議欺騙交換機(jī)達(dá)到可以嗅探某臺(tái)工作站或所有網(wǎng)絡(luò)流量的目的。例如,網(wǎng)絡(luò)嗅探器通過(guò)發(fā)送一個(gè)定制的ARP協(xié)議包,在其中申請(qǐng)它是事個(gè)網(wǎng)段的,當(dāng)所有計(jì)算機(jī)收到這個(gè)ARP包時(shí),就會(huì)更新它們的ARP表,這樣,所有的計(jì)算機(jī)都會(huì)將數(shù)據(jù)包發(fā)送到這臺(tái)嗅探器。如此一來(lái),為了不影響正常的網(wǎng)絡(luò)業(yè)務(wù),所有的網(wǎng)絡(luò)流量都會(huì)通過(guò)網(wǎng)絡(luò)嗅探器再次轉(zhuǎn)發(fā),這就要求網(wǎng)絡(luò)嗅探器的網(wǎng)絡(luò)性能要能保證數(shù)據(jù)包的正常轉(zhuǎn)發(fā)。
有時(shí),我們也可以只針對(duì)某臺(tái)計(jì)算機(jī)進(jìn)行ARP地址欺騙,告訴這臺(tái)計(jì)算機(jī)網(wǎng)絡(luò)嗅探器就是路由器,以此讓這臺(tái)計(jì)算機(jī)將數(shù)據(jù)包發(fā)給網(wǎng)絡(luò)嗅探器進(jìn)行轉(zhuǎn)發(fā)。這樣也就可以嗅探到交換機(jī)環(huán)境中任何一臺(tái)想要嗅探的計(jì)算機(jī)發(fā)送出來(lái)的數(shù)據(jù)包了。但是,要注意的是ARP欺騙應(yīng)該在同一個(gè)子網(wǎng)中進(jìn)行,不然會(huì)收到錯(cuò)誤的信息。
3、ICMP重定向(ICMP Redirect)
在一些網(wǎng)絡(luò)環(huán)境中,有時(shí)候連接到同一臺(tái)交換機(jī)上的所有計(jì)算機(jī)雖然在物理上處于同一個(gè)網(wǎng)段,但是,它們?cè)谶壿嬌蠀s是處于不同的網(wǎng)段,也就是我們所說(shuō)的存在不同的子網(wǎng)。例如,192.168.0 .0/24這個(gè)網(wǎng)段,就可以分為192.168.1.0/24,182.168.2.0/24…等子網(wǎng)。而且,還可以通過(guò)子網(wǎng)掩碼來(lái)將同一個(gè)子網(wǎng)再劃分為幾個(gè)邏輯網(wǎng)段。
這樣,就算在同一交換機(jī)網(wǎng)絡(luò)環(huán)境中,一個(gè)子網(wǎng)中的計(jì)算機(jī)A要想與另一個(gè)子網(wǎng)中的計(jì)算機(jī)B進(jìn)行會(huì)話,也得通過(guò)路由器來(lái)進(jìn)行。當(dāng)路由器在收到這樣的數(shù)據(jù)包時(shí),它心里明白這兩臺(tái)計(jì)算機(jī)接在同一臺(tái)交換機(jī)中,它就會(huì)發(fā)送一個(gè)ICMP重定向數(shù)據(jù)包給計(jì)算機(jī)A,讓它知道它可以直接將數(shù)據(jù)包發(fā)送到B。利用這種方式就可以發(fā)送一個(gè)偽裝的ICMP數(shù)據(jù)給計(jì)算機(jī)A,讓它將數(shù)據(jù)包發(fā)送到網(wǎng)絡(luò)嗅探器了。
4、ICMP路由公告(ICMP Router Advertisements)
ICMP路由公告用來(lái)告訴計(jì)算機(jī)哪臺(tái)路由器可以使用。我們就可以先通過(guò)這種方式宣告網(wǎng)絡(luò)嗅探器就是路由器,這樣,所有的計(jì)算機(jī)就會(huì)將其數(shù)據(jù)包發(fā)送給網(wǎng)絡(luò)嗅探器,然后再由它進(jìn)行重新轉(zhuǎn)發(fā)。
5、MAC地址欺騙(MAC Address Spoofing)
網(wǎng)絡(luò)嗅探器軟件還可以通過(guò)MAC地址欺騙方式來(lái)冒充不同的計(jì)算機(jī)。網(wǎng)絡(luò)嗅探器將包含欺騙的MAC地址的數(shù)據(jù)包發(fā)給交換機(jī),這樣就可以欺騙交換機(jī)認(rèn)為它就是這個(gè)數(shù)據(jù)包的真正源地址,然后交換機(jī)就會(huì)將這個(gè)MAC地址保存到其地址表中,接著就會(huì)將所有發(fā)給真實(shí)MAC地址計(jì)算機(jī)的數(shù)據(jù)包全部轉(zhuǎn)發(fā)給網(wǎng)絡(luò)嗅探器。
但是,這種方式的前提就是要真正接收數(shù)據(jù)包的計(jì)算機(jī)不能運(yùn)行,如果不這樣的話,真實(shí)的計(jì)算機(jī)也會(huì)發(fā)送相關(guān)的包給交換機(jī),交換機(jī)又會(huì)將其MAC地址表從新刷新。
在系統(tǒng)中,要進(jìn)行MAC地址欺騙是很容易的,可以通過(guò)下列的方式來(lái)進(jìn)行:
Ifdown eth0
Ifconfig eth0 hw ether 00:00:ff:ee:09:00:00
Ifup eth0
這樣,就用一個(gè)欺騙的MAC地址綁定到了這塊網(wǎng)卡當(dāng)中,然后通過(guò)下列命令來(lái)通告網(wǎng)絡(luò)中的所有計(jì)算機(jī),讓它們刷新其ARP地址表:
Ping –t 192.168.1.255
這樣所有的計(jì)算機(jī)都會(huì)收到這個(gè)廣播Ping命令,然后將它們的ARP地址表刷新,這個(gè)ARP地址表中的MAC地址與IP地址的對(duì)應(yīng)就是網(wǎng)絡(luò)嗅探器的IP地址。這樣一來(lái),網(wǎng)絡(luò)嗅探器就可以得到所有發(fā)送給受害計(jì)算機(jī)的數(shù)據(jù)包了。
但是有些交換機(jī)有一種應(yīng)對(duì)MAC地址欺騙攻擊的方式,就是將連接到某個(gè)端口上的計(jì)算機(jī)的MAC地址與具體的端口號(hào)綁定。還有一些交換機(jī)能夠自動(dòng)鎖定第一次到達(dá)某個(gè)端口上的MAC地址,然后通過(guò)一種具體的方式來(lái)平衡管理進(jìn)行具體的物理訪問(wèn)控制。對(duì)于這樣的交換機(jī)必需在解除這些保護(hù)功能后才能實(shí)施MAC地址欺騙攻擊方式的網(wǎng)絡(luò)嗅探。
實(shí)際上,上述這幾種網(wǎng)絡(luò)攻擊方式也是攻擊者經(jīng)常用來(lái)攻擊某個(gè)目標(biāo)網(wǎng)絡(luò)的手段,因而我們?cè)谑褂脮r(shí)應(yīng)當(dāng)?shù)玫搅似髽I(yè)領(lǐng)導(dǎo)的許可,并且在不影響正常業(yè)務(wù)的情況下才能進(jìn)行。
總的來(lái)說(shuō),通過(guò)本文所述的這3種主要方法,在交換機(jī)網(wǎng)絡(luò)環(huán)境中應(yīng)用網(wǎng)絡(luò)嗅探器來(lái)分析網(wǎng)絡(luò)故障還是非常用效的。實(shí)際上,如果我們只想了解局域網(wǎng)中某臺(tái)計(jì)算機(jī)上的網(wǎng)絡(luò)連接情況,完全可以直接在此計(jì)算機(jī)系統(tǒng)上安裝相應(yīng)的網(wǎng)絡(luò)嗅探器的方式來(lái)解決。本文的目的只想讓大家對(duì)在交換機(jī)環(huán)境中如何接入網(wǎng)絡(luò)嗅探器有一個(gè)全面的了解。只有了解了在交換機(jī)網(wǎng)絡(luò)結(jié)構(gòu)中接入網(wǎng)絡(luò)嗅探器的方式,我們才能知道在具體的交換機(jī)網(wǎng)絡(luò)中如何去應(yīng)用它來(lái)解決各種網(wǎng)絡(luò)問(wèn)題。