Linux環境下的嗅探器有tcpdump、Nmap、linSniffer、LinuxSniffer、hunt、sniffit等。下面就只介紹Linux下優秀的嗅探器——tcpdump。
tcpdump在Linux下的安裝十分簡單,一般由兩種安裝方式。一種是以rpm包的形式來進行安裝。另外一種是以源程序的形式安裝。這里我們講 rpm包的形式安裝。這種形式的安裝是最簡單的安裝方法。rpm包是將軟件編譯后打包成二進制的格式,通過rpm命令可以直接安裝,不需要修改任何東西。
以超級用戶登錄,使用命令如下:
|
這樣tcpdump就順利地安裝到Linux系統中。
tcpdump 是一個多用途的網絡通信監測器,可捕獲和顯示報文及其內容。它可用來作為協議分析器,在系統及網絡設備間提供一個最佳途徑來探查通信和(或)連通性問題。大多數時候,網絡疑難問題集中在網絡配置問題以及診斷硬件相關故障。然而,用戶將常常面對協議相關問題并且被迫鉆研特定協議的機制來解決問題。使用tcpdump,被檢查的報文將用長格式或短格式(根據使用的命令行選項)顯示其信息。tcpdump 有一個非常強有力的過濾機制,可用來查找與指定字符串或規則相匹配的報文。
tcpdump 提供兩種主要的捕獲模式:雜湊和非雜湊。在雜湊模式下,捕獲每個在網絡上傳遞的報文,不管該報文是否發送到執行tcpdump 的系統。舉例來說,該模式就是RMON探測器在監測網絡通信時使用的模式。網絡探測器(probe)在網絡上偵聽通信并收集協議信息和統計數據。因為局域網(LAN)協議(如Ethernet)是基于廣播的,每個被傳送的幀可被連接到LAN上的任何網絡接口所獲得。任何設備可讀取每個傳送的幀,只要該設備選擇這么做并配置成該方式就可以讀取。當一個設備或接口從網絡讀取每個幀,就說明它處于雜湊模式了。實際中,接口必須為雜湊操作進行配置,并且僅僅用于需要網絡診斷的特殊場合。由于這個緣故,僅有root可以在一個接口上啟用雜湊模式。這是非root用戶不允許調用tcpdump 的主要原因。tcpdump工具提供了許多命令行選項來選擇捕獲模式、控制輸出、指定過濾規則以及指定其他操作特性。這些選項根據它們的功能被分組并且包括以下種類:操作模式、顯示選項、報文過濾選項。
操作模式選項用于控制tcpdump 如何捕獲和如何顯示網絡通信的參數。 各選項的意義如下:
|
舉例說明:
1.pdump arp將捕獲并顯示所有地址解析協議(ARP)報文。捕獲包括請求和應答。
2.pdump host red and tcp將捕獲并顯示來自(發往)red 主機的所有傳輸控制協議報文。
3.pdump hos red1 and port 23將捕獲并顯示發往red1或從red1發出的所有使用23 端口的報文。用來檢查網絡上從其他系統到該系統的Telnet報文。端口23是對所有傳入的報文來說是Telnet服務端口。
嗅探器可以幫助網絡管理員查找網絡漏洞和檢測網絡性能。嗅探器是一把雙刃劍,它也有很大的危害性。
嗅探器可能造成的危害有:
1.嗅探器能夠捕獲口令;
2.夠捕獲專用的或者機密的信息;
3.以用來危害網絡鄰居的安全,或者用來獲取更高級別的訪問權限;
4.析網絡結構,進行網絡滲透。
嗅探器的攻擊非常普遍,尤其在Internet上。一個放置好的嗅探器可以捕獲成千上萬個口令。1994年一個最大的嗅探器攻擊被發現。這次攻擊被人們普遍認為是記載中最為惡劣的一次,許多可以FTP、Telnet或遠程登陸的主機系統都受到了危害。在這件事故(攻擊者處于Rahul.net)中,嗅探器只運行了18個小時。在這段時間里,有幾百臺主機被泄密。受攻擊者包括268個站點,如MIT、美國海軍和空軍、Sun微系統公司、IBM、NASA、CERFNet和加拿大、以色列、荷蘭、比利時的一些大學的機器。
嗅探器可以捕獲網絡上所有的報文,但實際上,一個攻擊者必須要對報文進行選擇。嗅探器攻擊并不像聽起來那么容易,它需要攻擊者對網絡知識有一定的了解。簡單地設置一個嗅探器,并將其放到隨便什么地方,將不會起到什么作用。因為即使一個只有5個工作站的網絡,在一小時之內也會傳輸好幾千個報文。這樣在很短的時間里,嗅探器中用來存儲捕獲報文的文件就會充斥整個硬盤(如果記錄下每一個報文的話)。
為了巧妙地解決這個問題,攻擊者只嗅探每個報文的前200到300個字節。用戶名和口令都包含在這一部分中,這是所有攻擊者真正關心的部分。當然,如果擁有足夠的空間進行存儲,擁有足夠的能力進行處理的話,也可以嗅探給定接口上的所有報文,那將會發現另一些非??膳碌臇|西。
有二種方法可能會對抵御嗅探器的攻擊有所作用:
1.檢測和消滅嗅探器;
2.將數據隱藏,使嗅探器無法發現。
針對于第一種方法:檢測和消滅嗅探器,可以采用檢測混雜模式網卡的工具。
由于嗅探器需要將網絡中入侵的網卡設置為混雜模式才能工作,所以有效檢測混雜模式網卡的工具Anto-sniff就是一個好的工具。軟件可以在http://www.securitysoftwatech.com/antisniff下載。但是嗅探器是非常難以被發現,因為它們是被動的程序。一個老練的黑客可以輕易通過破壞日志文件來掩蓋信息,它并不會給別人留下進行核查的尾巴。
此處將對于第二種方法:將數據隱藏,使嗅探器無法發現重點介紹。
一般有兩種防御的方法:
1.安全的拓撲結構;
2.會話加密。
嗅探器只能在當前網絡段上進行數據捕獲。這就意味著,將網絡分段工作進行得越細,嗅探器能夠收集的信息就越少。但是,除非你的公司是一個ISP,或者資源相對不受限制,否則這樣的解決方案需要很大的代價。網絡分段需要昂貴的硬件設備。有三種網絡設備是嗅探器不可能跨過的:交換機、路由器、橋。
我們可以通過靈活的運用這些設備來進行網絡分段。讀者可能采用20個工作站為一組,這是一個比較合理的數字。然后,每個月人為地對每段進行檢測(也可以每個月采用MD5隨機地對某個段進行檢測)。網絡分段只適應于小的網絡。如果有一個500個工作站的網絡,分布在50個以上的部門中,那么完全的分段是價格所不允許的。即使在單位預算時有安全方面的考慮,也難以讓單位主管相信需要50個硬件設備,而這只是為了防止嗅探器的攻擊。在這樣的情況下,對會話進行加密就是一種很好的選擇。會話加密提供了另外一種解決方案。不要特別地擔心數據被嗅探,而是要想辦法使得嗅探器不認識嗅探到的數據。這種方法的優點是明顯的:即使攻擊者嗅探到了數據,這些數據對他也是沒有用的。但是,其存在的缺點也非常明顯。在加密時有兩個主要的問題:一個是技術問題,一個是人為問題。
技術問題包括是否該加密到足夠強大的程度,還是僅僅是想當然地認為它比較強大。例如,40位的加密就可能不夠,而且并不是所有的應用程序都集成了加密支持。而且,跨平臺的加密方案還比較少見,一般只在一些特殊的應用之中才有。再者,有些用戶可能抵制使用加密,他們覺得這太麻煩。用戶在開始時可能會同意使用加密,但他們很少能夠堅持下??傊覀儽仨殞ふ乙环N友好的媒介,它還要具有一定的用戶友好性。而Secure Shell(SSH)就具有上述的特征。通過使用SSH,你可以把所有傳輸的數據進行加密,這樣“中間服務器”這種攻擊方式就不可能實現了,而且也能夠防止DNS和IP欺騙。還有一個額外的好處就是傳輸的數據是經過壓縮的,所以可以加快傳輸的速度。SSH有很多功能,它既可以代替Telnet,又可以為FTP、POP,甚至PPP提供一個安全的“通道”。SSH綁定在端口22上,其連接采用協商方式使用RSA加密。身份鑒別完成之后,后面的所有流量都使用IDEA進行加密。SSH(Secure Shell)程序可以通過網絡登錄到遠程主機并執行命令。SSH的加密隧道保護的只是中間傳輸的安全性,使得任何通常的嗅探工具軟件無法獲取發送的內容。它提供了很強的安全驗證可以在不安全的網絡中進行安全的通信.所以它是防范嗅探器的一種方法。
安裝
1.下載軟件包,下載地址為www.ssh.com,下載最新軟件包SSH2。最好下載源程序軟件包自己進行自行編譯。
2.解壓及安裝:
|
安裝完成。這一過程實際上將服務器軟件包及客戶端軟件一起安裝了,不必再次安裝客戶端軟件包。
已編譯好的二進制軟件包以rpm格式存放在ftp://ftp.ssh.com/pub/ssh/rpm目錄下。它是一個給非商業用戶使用的軟件包,軟件包名稱為:ssh-2.4.0-1.i386.rpm,其中包含了對X-Window的支持。另一個不支持X-Window的軟件包為ssh-2.4.0-1nox.i386.rpm,下載后可以直接安裝。安裝程序將SSH2軟件包安裝在/usr/local/bin及/usr/local/sbin下。
配置
SSH的配置文件在/etc/ssh2下,其中包括sshd2的主機公鑰和私鑰:hostkey和hostkey.pub。這兩個文件通常是在安裝SSH時自動生成的。你可以通過下面的命令重新來生成它們:
|
而ssh2_config文件一般情形下無需修改。
啟動
在Uinux/Linux環境下,服務器程序放置在/usr/local/sbin目錄下,啟動方法如下:
|
可以看到SSHD已經啟動了。如果不希望每次重啟動系統,都要手工運行啟動SSHD,則可以自己寫一個腳本,放置在init.d目錄下,讓系統啟動后,自動執行SSHD服務的啟動工作?;蛘咧苯釉趓c.local中加入/usr/local/sbin/sshd。
客戶端在Uinux/Linux系統中就是SSH,存放在/usr/local/bin目錄下,中有SSH2、scp等客戶端工具。用SSH登錄遠程主機方法如下:
|
其使用方法如同Telnet一樣,不同之處是要求用戶輸入認證字符串。如果認證字符串通過了認證,則用戶直接登錄成功;如果不成功,則是要求用戶輸入系統口令??诹钫J證成功后,用戶也可以成功登錄系統。從使用上看,它與Telnet沒有什么不同之處。而且有了SSH客戶端軟件,那么你要上傳文件就不必向以前一樣再開一個FTP窗口,再次認證,然后上傳文件。使用SSH客戶端自帶的scp工具,就可以直接將文件上傳到遠端服務器上。使用方法如下:
|
嗅探器技術被廣泛應用于網絡維護和管理方面。它工作的時候就像一部被動聲納,默默的接收來自網絡的各種信息。通過對這些數據的分析,網絡管理員可以深入了解網絡當前的運行狀況,以便找出網絡中的漏洞。這里并不想否定嗅探器好的作用。在網絡安全日益被注意的今天,我們不但要正確使用嗅探器,還要合理防范嗅探器的危害。嗅探器能夠造成很大的安全危害,主要是因為它們不容易被發現??梢酝ㄟ^學習使用嗅探器、了解黑客如何使用嗅探器進行攻擊的方法,來抵御嗅探器的攻擊。同時也要看到,最好地抵御嗅探器的方法是安全的拓撲結構和會話加密。