天天看點

在Win2000中預防Ping攻擊

在Win2000中如何關閉ICMP(Ping)

 ICMP的全名是Internet Control and Message Protocal即網際網路控制消息/錯誤封包協定,這個協定主要是用來進行錯誤資訊和控制資訊的傳遞,例如著名的Ping和Tracert工具都是利用ICMP協定中的ECHO request封包進行的(請求封包ICMP ECHO類型8代碼0,應答封包ICMP ECHOREPLY類型0代碼0)。

 ICMP協定有一個特點---它是無連結的,也就是說隻要發送端完成ICMP封包的封裝并傳遞給路由器,這個封包将會象郵包一樣自己去尋找目的位址,這個特點使得ICMP協定非常靈活快捷,但是同時也帶來一個緻命的缺陷---易僞造(郵包上的寄信人位址是可以随便寫的),任何人都可以僞造一個ICMP封包并發送出去,僞造者可以利用SOCK_RAW程式設計直接改寫封包的ICMP首部和IP首部,這樣的封包攜帶的源位址是僞造的,在目的端根本無法追查,(攻擊者不怕被抓那還不有恃無恐?)根據這個原理,外面出現了不少基于ICMP的攻擊軟體,有通過網絡架構缺陷制造ICMP風暴的,有使用非常大的封包堵塞網絡的,有利用ICMP碎片攻擊消耗伺服器CPU的,甚至如果将ICMP協定用來進行通訊,可以制作出不需要任何TCP/UDP端口的木馬(參見《揭開木馬的神秘面紗三》)......既然ICMP協定這麼危險,我們為什麼不關掉它呢?   

 我們都知道,Win2000在網絡屬性中自帶了一個TCP/IP過濾器,我們來看看能不能通過這裡關掉ICMP協定,桌面上右擊網路上的芳鄰->屬性->右擊你要配置的網卡->屬性->TCP/IP->進階->選項->TCP/IP過濾,這裡有三個過濾器,分别為:TCP端口、UDP端口和IP協定,我們先允許TCP/IP過濾,然後一個一個來配置,先是TCP端口,點選"隻允許",然後在下面加上你需要開的端口,一般來說WEB伺服器隻需要開80(www),FTP伺服器需要開20(FTP Data),21(FTP Control),郵件伺服器可能需要打開25(SMTP),110(POP3),以此類推......接着是UDP,UDP協定和ICMP協定一樣是基于無連結的,一樣容易僞造,是以如果不是必要(例如要從UDP提供DNS服務之類)應該選擇全部不允許,避免受到洪水(Flood)或碎片(Fragment)攻擊。最右邊的一個編輯框是定義IP協定過濾的,我們選擇隻允許TCP協定通過,添加一個6(6是TCP在IP協定中的代碼,IPPROTO_TCP=6),從道理上來說,隻允許TCP協定通過時無論UDP還是ICMP都不應該能通過,可惜的是這裡的IP協定過濾指的是狹義的IP協定,從架構上來說雖然ICMP協定和IGMP協定都是IP協定的附屬協定,但是從網絡7層結構上ICMP/IGMP協定與IP協定同屬一層,是以微軟在這裡的IP協定過濾是不包括ICMP協定的,也就是說即使你設定了“隻允許TCP協定通過”,ICMP封包仍然可以正常通過,是以如果我們要過濾ICMP協定還需要另想辦法。

 剛剛在我們進行TCP/IP過濾時,還有另外一個選項:IP安全機制(IP Security),我們過濾ICMP的想法就要着落在它身上。

 打開本地安全政策,選擇IP安全政策,在這裡我們可以定義自己的IP安全政策。

 一個IP安全過濾器由兩個部分組成:過濾政策和過濾操作,過濾政策決定哪些封包應當引起過濾器的關注,過濾操作決定過濾器是“允許”還是“拒絕”封包的通過。要建立IP安全過濾器,必須建立自己的過濾政策和過濾操作:右擊本機的IP安全政策,選擇管理IP過濾器,在IP過濾器管理清單中建立一個新的過濾規則:ICMP_ANY_IN,源位址選任意IP,目标位址選本機,協定類型是ICMP,切換到管理過濾器操作,增加一個名為Deny的操作,操作類型為"阻止"(Block)。這樣我們就有了一個關注所有進入ICMP封包的過濾政策和丢棄所有封包的過濾操作了。需要注意的是,在位址選項中有一個鏡像選擇,如果選中鏡像,那麼将會建立一個對稱的過濾政策,也就是說當你關注any IP->my IP的時候

 熟悉網絡的人都知道Ping,Ping是用于檢測網絡連接配接性、可到達性和名稱解析的疑難問題的主要TCP/IP指令。Ping最主要的用處就是檢測目标主機是否可連通。

 黑客要入侵,就得先鎖定目标,一般都是通過使用Ping指令來檢測主機,擷取相關資訊,然後再進行漏洞掃描。如何不受别人的攻擊?那就是阻止别人Ping自己的電腦,讓攻擊無從着手。筆者介紹四種常見的阻止Ping的方法,供大家參考:

 一、用進階設定法預防Ping

 預設情況下,所有Internet控制消息協定(ICMP)選項均被禁用。如果啟用ICMP選項,您的網絡将在 Internet 中是可視的,因而易于受到攻擊。

 如果要啟用ICMP,必須以管理者或Administrators 組成員身份登入計算機,右擊“網路上的芳鄰”,在彈出的快捷菜單中選擇“屬性”即打開了“網絡連接配接”,標明已啟用Internet連接配接防火牆的連接配接,打開其屬性視窗,并切換到“進階”選項頁,點選下方的“設定”,這樣就出現了“進階設定”對話視窗,在“ICMP”頁籤上,勾選希望您的計算機響應的請求資訊類型,旁邊的複選框即表啟用此類型請求,如要禁用請清除相應請求資訊類型即可。

 二、用網絡防火牆阻隔Ping

 使用防火牆來阻隔Ping是最簡單有效的方法,現在基本上所有的防火牆在預設情況下都啟用了ICMP過濾的功能。在此,以金山網镖2003和天網防火牆2.50版為藍本來說明。

 對于使用金山網镖2003的網友,請用滑鼠右擊系統托盤中的金山網镖2003圖示,在彈出的快捷菜單中選擇“實用工具”中的“自定義IP規則編輯器”,在出現的視窗中選中“防禦ICMP類型攻擊”規則,消除“允許别人用ping指令探測本機”規則,儲存應用後就發揮效應。

 如果您用的是天網防火牆,在其主界面點選“自定義IP規則”,然後不勾選“防止别人用ping指令探測”規則,勾選“防禦ICMP攻擊”規則,然後點選“儲存/應用”使IP規則生效。

 三、啟用IP安全政策防Ping

 IP安全機制(IP Security)即IPSec 政策,用來配置 IPSec 安全服務。這些政策可為多數現有網絡中的多數通信類型提供各種級别的保護。您可配置 IPSec 政策以滿足計算機、應用程式、組織機關、域、站點或全局企業的安全需要。可使用 Windows XP 中提供的“IP 安全政策”管理單元來為 Active Directory 中的計算機(對于域成員)或本地計算機(對于不屬于域的計算機)定義 IPSec 政策。

 在此以WINDOWS XP為例,通過“控制台”—“管理工具”來打開“本地安全政策”,選擇IP安全政策,在這裡,我們可以定義自己的IP安全政策。一個IP安全過濾器由兩個部分組成:過濾政策和過濾操作。要建立IP安全過濾器,必須建立自己的過濾政策和過濾操作,右擊視窗左側的“IP安全政策,在本地機器”,在彈出的快捷菜單中選擇“建立IP安全政策”,單擊“下一步”,然後輸入政策名稱和政策描述。單擊“下一步”,選中“激活預設響應規則”複選項,單擊“下一步”。開始設定響應規則身份驗證方式,選中“此字元串用來保護密鑰交換(預共享密鑰)”選項,然後随便輸入一些字元(後面還會用到這些字元的),單擊“下一步”,就會提示已完成IP安全政策,确認選中了“編輯屬性”複選框,單擊“完成”按鈕,會打開其屬性對話框。

 接下來就要進行此建立安全政策的配置。在“Goodbye Ping 屬性”對話視窗的“規則”選項頁中單擊“添加”按鈕,并在打開安全規則向導中單擊“下一步”進行隧道終結設定,在這裡選擇“此規則不指定隧道”。單擊“下一步”,并選擇“所有網絡連接配接”以保證所有的計算機都Ping不通。單擊“下一步”,設定身份驗證方式,與上面一樣選擇第三個選項“此字元串用來保護密鑰交換(預共享密鑰)”并填入與剛才上面相同的内容。單擊“下一步”即打開“IP篩選器清單”視窗,在“IP篩選器清單”中選擇“新IP篩選器清單”,單擊右側的“編輯”,在出現的視窗中點選“添加”,單擊“下一步”,設定“源位址”為“我的IP位址”,單擊“下一步”,設定“目标位址”為“任何IP位址”,單擊“下一步”,選擇協定類型為ICMP,單擊“完成”後再點“确定”傳回如圖9的視窗,單擊“下一步”,選擇篩選器操作為“要求安全”選項,然後依次點選“下一步”、“完成”、“确定”、“關閉”按鈕儲存相關的設定傳回管理控制台。

 最後在“本地安全設定”中右擊配置好的“Goodbye Ping”政策,在彈出的快捷菜單中選擇“指派”指令使配置生效。

 經過上面的設定,當其他計算機再Ping該計算機時,就不再Ping通了。但如果自己Ping本地計算機,仍可Ping通。在Windows 2000中操作基本相同。

相關連結:

初學者入門:FreeBSD系統的安裝與優化 http://club.sob8.com/read-htm-tid-40807.html