標籤: 暫無標籤

1 LooknStop -一. 難以馴服的烈馬:LooknStop

 

網路防火牆的選擇一直是眾多用戶最頭痛的問題,放眼看看現在的防火牆市場,大有群雄逐鹿之勢,但是用戶並不會因為防火牆產品越來越多而感到歡欣,相反,越來越多人逐漸發現自己已經步入了一個選擇的難題:哪一款防火牆產品才是最安全牢固的?

儘管防火牆產品眾多,可是用戶只希望能迅速找到一款適合自己的產品,於是許多權威測試機構誕生了,如Firewall Leak Tester等,這些測試機構通過各種模擬和真實環境嚴格測試防火牆產品的各項安全係數,最終統計出一款產品的總體分數。因此,我們才得以迅速根據測評結果選擇一款能令人安心的產品。

 

它就是LooknStop,長期位居FLT測評第一名的產品,而且,它還是瑞士銀行用以維護自家安全的防火牆系統,其安全性能可見一斑。

 

但是,這款強大的產品卻極少被發現安裝於普通用戶的機器上,為什麼呢?

某公司職員小李偶然發現了這款產品的介紹,抱著試一試的心態,他給自己的機器安裝了一份程序,可是他卻沒能享受這款頂級防火牆給他帶來的安全保護,反而,它給他帶來了許多噩夢:BitComet不能用了、浩方上不去了、迅雷和FlashGet成了殘疾、魔獸爭霸成了死機的代名詞……這到底是護人還是趕人?小李看了一些資料,發現這款產品需要設置,於是,他打開了設置界面……然而,在一堆專業術語面前,小李徹底崩潰了。

 

最終,小李決定放棄LooknStop,改用國產防火牆了。

 

無可否認,LooknStop是一款優秀產品,它提供了強大而全面的網路保護功能、具備靈活的自定義入侵檢測規則、系統資源和文件資源佔用都很小,甚至,通過設置規則,LooknStop還可以代替一部分Sniffer功能實現網路數據包監控……

但是LooknStop讓用戶又痛又愛:要使用它,就必須通過最難的一關:防火牆規則設置。這款強大的產品帶來了業界公認最麻煩的規則設置,讓許多用戶面對它的時候,猶如面對著一匹難以馴服的烈馬。

難道LooknStop對一般用戶來說,就是那麼的可望而不可及嗎?

 

2 LooknStop -二. 原理篇:規則與通信

以前我們介紹過防火牆的原理,在裡面,我提到了「防火牆規則」(Firewall Rules),規則是防火牆的思維,它們其實是一條條描述語句,用於設置防火牆行為等,每一條規則都對應了一種特定的行為判斷,防火牆根據規則的內容對符合條件(埠、協議類型、甚至包數據)的數據包給予攔截或通行,當然也可以記錄數據。眾多的規則結合,防火牆工具才得以給我們帶來一個牢固而靈活的安全保護體系。

配置防火牆規則往往是網路管理員最頭痛的事情,一個防火牆的工作效率、攔截放行、總體安全係數除了要求防火牆的引擎功能強大以外,就全看規則的設置了,如果防火牆引擎不能識別複雜的數據包結構,那麼一些描述複雜的規則就不能正常工作,但是一個防火牆越強大,其相應的規則設置也就更複雜,對這種防火牆而言,一條好的規則就比什麼都重要了。

規則並不是隨便設置的,它圍繞著一定的「安全策略」實施,許多防火牆產品在市場上出售時,就已經有了默認規則,而這些規則就是廠商的「安全策略」的實體對象,許多用戶安裝或購買一個防火牆產品后,就一直沒對這些規則做過修改,或者不知道防火牆規則的存在,但是他們依然能得到防火牆的保護,就是因為廠商已經為廣大群體套用了「兼容的」規則集合,換句話說,就是用戶在接受一款防火牆產品的時候,就已經得到了廠商為大家定製的「安全策略」。但是這種面對大眾的策略並不一定適合每一個人,有時候,一些用戶會覺得默認規則不太適合自己的實際環境,他們便會根據自己的要求,修改增加這個規則集合,例如一台網站伺服器,使用的防火牆默認規則里限制了外部對1024以下低埠號的訪問,這顯然就和做網站需要開放80埠的要求衝突了,所以網路管理員會修改防火牆規則,去掉這條限制規則或者從規則里除掉80埠的條件。許多用戶並不知道,他們刪改或增加規則的行為,其實就是自身「安全策略」的實施過程。

但是在把安全策略轉化為規則實體之前,我們還必須慎密的思考一件事情,那就是「安全體系結構」。

所謂「安全體系結構」,就是整個防火牆最終為用戶帶來的安全效果,安全策略可以是片面的,管理員在思考策略的時候不一定要考慮到整體效果,但是當一條條安全策略作為規則集合出現之前,它就必須先轉化為面向整體的「安全體系結構」, 這是一種考慮全局的策略集,還是上面的網站伺服器例子,管理員需要開放基本的80埠,如果有FTP,還要開放21埠,甚至SSL埠443,這個環境的安全策略則可以描述為以下列表:

1. 開放80埠

2. 開放443埠

3. 開放21埠

 

但是光有這些還不夠,管理員必須保證它與已有的規則集合不會發生衝突以及實際環境中的應用效率,例如,實際生活中,防火牆在開放埠的同時還要對數據進行監控,以防止SYN洪水等,另外還要檢查防火牆默認規則集合里有沒有與之衝突的描述,如果你增加了一條「開放80埠」的規則,但是規則集合里卻存在著「限制所有埠連接」的規則,那麼其中一條規則就會失效,管理員的預期設想也就得不到正確實施了。

所以管理員在做好自己的安全策略后,還要檢查已有的規則集,刪除會導致策略衝突的規則,並可能根據實際應用環境做出策略調整,最後得出最終的安全策略列表,這一步就叫做「安全體系結構」:

1. 開放21、80、443埠

2. 在80埠上設置SYN計數防止DoS攻擊

3. 繼續阻止其他埠訪問,如135、139等

4. 允許ICMP回顯

5. 允許管理員能從內部網路遠程登錄配置伺服器

6. 更多規則設置列表……

 

這些策略列表的集合描述,就是「安全體系結構」的具體形態。

管理員決定了整體的安全體系結構后,就要開始著手實施防火牆規則的修改了,但是在「動」規則之前,還有最後一個注意事項——「規則次序」。

「規則次序」是一個不可忽略的配置部分,因為大部分防火牆產品是順序讀取規則設置的,如果發現了一條匹配的規則,那麼下面的其他規則描述則被忽略掉,所以規則的排列次序決定著防火牆的運作情況,管理員在配置規則時必須把屬於特殊性質而又不容易與其他現存規則發生衝突的規則放到最前面,最大限度防止防火牆在找到一個特殊規則之前與普通規則相匹配,導致管理員精心設置的安全規則失效。

當所有準備工作就緒后,我們就要開始把方案轉化為實體了,這就是防火牆規則設定。

前面說過了,防火牆規則就是一條條用於描述防火牆在遇到什麼類型的數據包的時候應該怎麼做的命令語句,根據防火牆核心能識別的深度差異,不同防火牆的規則定義也不盡相同,但是基本上都離不開這幾個基本參數:數據包方向、數據包地址、範圍、協議類型、埠號、標誌位(TCP)、包類型和代碼(ICMP)、以及滿足條件時的防火牆動作(通行、攔截、忽略、記錄)等,正是這些參數的各種搭配構築了最終得以保護用戶免遭網路攻擊的一條條規則,成為用戶的安全體系結構,一款防火牆產品核心能識別的數據類型越多,相對應的規則設定就越複雜,這是一種魚和熊掌不可兼得的事情,因此,學習防火牆規則設置是每個管理員或專業用戶都必要的。

防火牆的性能取決於最終的規則設定,稍有疏錯,再強大的核心也只能發揮入門級的防禦了。

例如,一個用戶在設置防火牆規則時取消了低埠訪問限制,卻遺忘了139埠可能帶來的危害,不久后,該用戶機器被入侵者成功連接並種植了後門。、

這種情況下,我們該責怪防火牆,還是責怪用戶規則設置得不嚴密呢?

這是個問題。

同樣,LooknStop在為用戶帶來強大防禦功能的同時也帶來了規則複雜難以設置的代價,許多用戶第一次打開它的規則設定界面時,傻了——包括我在內。

正因為這樣,許多用戶選擇了退而求其次的道路,改用了其他防火牆產品。難道LooknStop就真的那麼難以馴服嗎?

今天,就讓我們一起來馴服這匹上好的烈馬。

3 LooknStop -三. 實戰:LooknStop防火牆的規則設置

 

1.概述

LooknStop作為一款強大的防火牆,其採用的原型是非常嚴格的,首先,LooknStop先禁止所有本地和遠程的網路訪問操作,然後才逐項允許,在初始時不信任任何程序和網路操作,正是因為這過於嚴厲的策略原型,LooknStop才能成為一堵樹立在系統和網路之間的「牆」,而也正是因為這樣的模型,LooknStop也造成了一部分用戶安裝完畢后無法連接網路的問題——它把所有數據包都攔截了。所以我們首先要解決的就是大部分用戶面對LooknStop時吃的第一個下馬威:無法連接網路。

LooknStop的主界面並不難理解,從左到右分別為「歡迎」、「應用程序過濾」、「互聯網過濾」、「日誌」、「選項」和「註冊」,歡迎界面主要用於顯示一些概要信息如連接狀態、IP地址、數據包情況等。

我們先解決第一個燃眉之急:如果你不幸成為安裝LooknStop后無法成功進行ADSL撥號的用戶,請先進入「互聯網過濾」界面,然後雙擊最後一條規則「All other packets」,它就是罪魁禍首,選擇「乙太網類型」為IP,保存應用即可。

這一故障是LooknStop默認的嚴格規則造成的,它把所有未在規則里定義的數據包都過濾了,於是計算機向遠程MODEM設備發送的PPPOE協議包全部被扼殺在了系統的門口裡……由此可見,與某些防火牆比起來,LooknStop是多麼的嚴格!

解決這個問題后,我們回到正題。

 

2.基於界面的設置

既然LooknStop的規則如此嚴格,我們也遵循它的規則,嚴格依照從左到右的順序講解吧:P(老勇不許扔雞蛋!)

首先是「歡迎」界面,這裡是作為快捷數據統計而設的,用戶可以在這個界面看到基本的數據流量情況以及網路信息,如果網路已經連通,LooknStop會報告你的計算機IP地址,如果這裡為0.0.0.0,則說明沒有連接網路或者LooknStop沒能檢測出活動的連接,用戶必須自己到「選項」的「網路介面」裏手工選擇一個作為LooknStop的監控對象。

 

其次,是眾多軟體防火牆都會提供的「應用程序過濾」功能,LooknStop「不信任任何人」的思想在這裡又一次得到了發揮,每個程序第一次啟動的時候都會被攔截詢問,用戶允許通過的程序都在裡面列舉出來,並且在左邊出現一個活動列表,可是即使這樣,LooknStop仍然為每個程序列表設置了四個不同性質的可以隨時中斷該程序訪問的按鈕,分別為「過濾激活」、「過濾類型」、「進程調用」、「連接記錄」。

 

在「過濾激活」里可以選擇兩種狀態,分別為「啟用」和「禁止」,用於告訴防火牆是否允許該應用程序按照後面的規則運行,如果狀態為「禁止」,則後面設置的獨立應用程序規則不起作用,但是這並不意味著程序能擺脫防火牆的限制——每次這個程序訪問網路的時候,防火牆都會再次詢問你是否允許這個程序訪問網路。

 

「過濾類型」里提供了3種類型選擇,分別為「允許」、「自定義」和「禁止」,如果用戶沒有為這個程序設置特殊規則,則只會在「允許」和「禁止」兩種類型之間選擇,否則為三種。直接雙擊程序名字就可以設置「過濾類型」,裡面分別提供了TCP和UDP協議的埠和IP設置,LooknStop強大的靈活設置性能再次體現了出來:單獨輸入IP或埠,則規定這個程序只能訪問用戶指定的IP或埠,多個埠之間用分號「;」分隔,IP同上。

看到這裡,一些用戶可能會想,是不是只能設置允許訪問的地址呀?其實不然,LooknStop的強大之處正是在於它能通過盡量少的對話框完成盡量多的操作——要設置程序禁止訪問的IP,只需要在同樣的設置對話框里設定IP或埠時在前面加一個感嘆號「!」即可,可以說,LooknStop把「簡潔就是美」的信奉發揮到了極致!

 

現在讓我們來看看「進程調用」,首先我要簡單介紹一下「進程調用」的概念,有時候,一個程序要訪問網路並不是通過它自身實現的,而是調用了外置的DLL函數,這樣的話,最終訪問網路的程序就是那個DLL文件而不是程序本身,許多防火牆都認為,通過程序宿主進程啟動進而訪問網路的模塊也是符合條件的,因此不會做任何阻攔,但是LooknStop仍然不信任任何模塊,它會忠實的報告並控制每個子進程DLL的網路連接並提示用戶,在如今這個「代碼插上翅膀」(線程注射)越來越猖獗的年代里,這樣的限制是十分有必要的,很多防火牆正因為過於信任程序調用的進程模塊,導致一些DLL類型的木馬得以搭載順風車,給用戶的系統安全帶來威脅。針對這種情況,LooknStop提供了「進程調用」的控制功能,分別為「允許」(雙箭頭標誌)和「禁止」(紅色停止標誌),一旦某個程序的「進程調用」被設置為禁止,該程序就只能通過自身訪問網路了,所有通過它調用的模塊都無法突破限制,這個設置對一些經常被後門搭順風車的系統程序是很有用的,設置禁止后,我們就不用再怕灰鴿子之流通過IEXPLORE.EXE、Svchost.exe等程序突破傳統意義的防火牆連接了。

 

最後,是一個標示為感嘆號的設置項,它代表「連接記錄」:灰色的點表示不記錄,兩個感嘆號表示記錄該程序的所有連接,而單獨一個感嘆號則是與「過濾激活」配合使用的,如果你把一個程序的「過濾激活」設置為「禁止」,以後這個程序再次請求訪問網路的時候就會被LooknStop記錄下來,如果一個奇怪的程序頻頻要求連接網路,那麼它是木馬的可能性將會很大!

 

從「應用程序過濾」這一部分就可以看出,LooknStop對程序的控制非常靈活和精巧,僅使用一個界面和一個對話框就能完成對4種程序控制方式,包括多達10個屬性36種不同組合的控制能力,其對程序的控制能力可見一斑。

那麼,LooknStop對網路協議的控制功能又如何呢?讓我們進入「互聯網過濾」,這裡正是用戶噩夢開始的地方。

這裡同樣是簡潔而複雜的界面,簡潔在於按鈕的稀少,複雜在於太多列表控制的項目,一眼看去,幾乎能讓人摸不到頭腦,但是這裡正是所有防火牆思維的起點:防火牆規則集合。

從左到右依次為「啟用規則」、「規則模式」、「匹配時記錄」、「匹配規則后是否執行後續規則」、「匹配規則時聲音或警報提示」。

「啟用規則」里提供了3種類型選擇,分別為「默認方式啟用規則」、「自定義方式啟用規則」和「不啟用規則」,如果用戶沒有設置自定義規則,則只能在「默認方式啟用規則」和「不啟用規則」之間切換。

「自定義方式啟用規則」取決於規則里定義的「應用程序」項目,表示該規則只對特定的應用程序起作用,當符合條件的程序啟動后,這個暗紅色帶綠勾標誌變為綠色帶紅勾標誌,代表程序已經啟動並處於防火牆規則控制之下。

 

「規則模式」允許兩種選擇:「攔截」和「允許」,LooknStop通過這裡的標識決定符合該規則的程序是該允許訪問網路還是被阻止訪問網路,與其它防火牆產品對比,這樣的設置方法是非常方便的,用戶不需要重新進入規則設置便能直接修改規則行為。

 

「匹配時記錄」提供了兩個選項,「記錄」和「不記錄」,顧名思義,當一個滿足規則設定的操作發生時,防火牆會根據這裡的設置決定是否在日誌里記錄下這次操作信息。

 

「匹配規則后是否執行後續規則」是一個非常重要的規則行為標誌,它提供兩種選擇,分別為「不匹配下一規則」和「匹配下一規則」,前面說過LooknStop的思想是阻止所有連接,而這裡的規則設定就是其思想的具體實施方案,為了讓程序能正常連接網路,同時也為了提高自身的執行效率,LooknStop提出了這個選項,它決定當一個符合防火牆設定的規則被執行后,是否要繼續匹配下一條相同性質的規則,在這裡我們可以方便的設置一些複雜的規則,例如我們需要增加一條允許本機打開80埠的規則,但是又不想為此開放所有低埠連接,那麼就可以添加一條允許80埠的規則,並設置其「後續規則」為「不匹配」,那麼就可以在保留原規則不變的同時增加本機開放80埠的功能了。

 

「匹配規則時聲音或警報提示」有3種類型選擇,分別為「聲音報警」、「可視報警」和「不報警」,這個選項要與選項里的「聲音」和「消息框」配合使用,第一種表示規則匹配時發出聲音報警,第二種表示規則匹配時彈出消息框並同時發出聲音報警,如果你覺得噪音擾民,可以設置為最後一種,還你一個安靜的環境。

 

3.防火牆的靈魂——規則設置

任何防火牆都在各種規則的引導下運行,LooknStop也不會例外,而其恰恰正是因為規則難以配置而「聞名」的,要真正馴服這個強悍的小傢伙,就必須理解並解決規則設置,在「互聯網過濾」界面里點擊「添加」,會彈出一個略顯複雜的對話框出來。相對於大部分國內防火牆產品而言,LooknStop提供的可供設置的數據類型和模式多了不少,如果用戶對各種協議的概念不是很了解,在面對這部分的時候就會很頭痛了,LooknStop在這個設置對話框里提供了8大類設置,分別為「規則名稱」、「方向」、「規則說明」、「乙太網」、「IP」、「TCP標識」、「來源」和「目標」。

「規則名稱」很容易理解,用戶就是在這裡設置特定規則名稱的,「規則說明」則是為了描述這條規則的功能和用途,除了這兩個選項不需要特別講解以外,其他部分請仔細聽好!

在開始動手之前,必須先了解一件LooknStop特有的事情,這款防火牆在編輯規則時是中性的,我們不能從這個界面里設置某條規則是給予通行還是攔截,一旦你保存這條規則,LooknStop則默認了此規則是「允許通行」的,要設置為「攔截」的話必須在保存后自行到主界面上相應的「規則模式」里設置為「攔截」。

其次,LooknStop的信任關係是基於IP地址和MAC地址雙重檢測的,這是一種理想的信任關係模式,IP地址和MAC地址分別都是可以欺騙的,但是如果IP和MAC結合起來,就很難實施欺騙了,而且也正是這種信任模式,它的規則設置才容易讓人迷惑,其實只要理解了其思想,對這款防火牆的規則設置就不複雜了。

明白這兩個基本概念后,我們正式開始吧。

 

首先是「乙太網:類型」區,這部分到底表達了什麼,筆者最初也是頭痛了很久,經過多次試驗后終於發現,這裡其實是讓防火牆知道你的機器環境是在區域網內還是互聯網中的獨立機器,或者說,控制某條規則是適合在區域網中使用還是在單機環境中使用。

這個區域里提供了4種選擇,分別是「全部」、「IP」、「ARP」和「其它」,「全部」表示包含後面三種類型的協議,一般很少用到,除非你的機器所處的網路環境非常複雜,有多種系統一起運作,否則只需要選擇「IP」類型即可,這是一種最兼容最常用的類型。

「ARP」類型只能在區域網內使用,也就是專為區域網環境設定的,由於它涉及MAC地址,故脫離了區域網環境就無效了,除非你是在區域網內使用機器,否則不要選擇這個類型。

 

其次是「IP」區,這裡又分為3個小區,最左邊的「協議」用於為當前規則指定協議,LooknStop提供了9種選擇,除了「全部」以外,幾乎包含了各種常見協議類型,一般只需要設置TCP、UDP或ICMP其中之一即可,雖然曾經有過IGMP nuke,可是現在也基本上沒有人用Windows 98作為工作環境了吧,所以連IGMP防禦都可以免了……

右側的「碎片偏移」和「碎片標誌」分別用於更詳細的檢測過濾IP頭部的偏移位和標誌位,可以用於防止特定標誌位的碎片數據報攻擊,不過對於普通用戶來說,我們並不需要特別指定這裡的內容,一般選擇「全部」即可。

 

然後到「TCP標識」區,這裡其實不是只有一個功能設定的,它還可以變為「ICMP」區或「IGMP」區,視前一個「IP」區的協議類型而定,用戶只有選擇了TCP協議以後才能進入TCP標識里設置要具體控制的TCP標誌位,裡面一共有URG、ACK、PSH、RST、SYN和FIN這6種標誌位供用戶選擇,主要針對一些有特殊TCP要求的用戶,例如某台機器被用作Internet網關時,如果想阻止區域網內的某台機器通過TCP協議連接某個外部埠,則可把TCP標誌位設置為ACK,阻止遠程連接傳回的應答請求,該連接自然就無法成功建立,最終達到攔截的目的。

 

現在到「來源」區,許多人覺得LooknStop難以配置,除了「乙太網類型」難以理解以外,最容易混淆的就是「來源」區和旁邊的「目標」區,要成功配置LooknStop,首先要弄清楚一件事情:在LooknStop的規則設置里,「來源」完全表示本地,「目標」則表示遠程,而不管實際的連接請求或者數據包方向是從哪裡發出的。所有與本機網路有關的設置如開放本地某個埠、允許或阻止本地網路的某個IP,都是在「來源」里設置的,這裡通常是和「目標」區搭配使用的,例如配置開放本機的80埠,那麼就不應該去管「目標」區的任何設置,除非你要限制對方IP範圍或埠範圍那就另當別論。要開放本機80埠,首先應該在「來源」區的「IP:地址」里選擇「等於本機在」,「TCP/UDP:埠」里選擇「等於」,下面的第一個選項里輸入埠80,第二個選項置空即可。如果要開放一段連續的埠,則在第二個選項里填入另一個數字,然後把「全部」改為「在A:B範圍內」即可,需要提醒一點,普通的開放本機埠操作在「目標」區里不用填寫任何東西!其他更多的選項可以根據這個舉一反三。

 

最後是「目標」區,這裡和「來源」區相反,它表示遠程主機連接的參數,無論你在「方向」里選了什麼,這個地方出現的都必須是遠程機器的數據,永遠不要出現你的本地數據!

「目標」區主要是作為限制本機對遠程訪問數據而設置的,例如阻止本機程序訪問任何外部地址的8000埠,則在「目標」區里設置「IP:地址」為「全部」,「TCP/UDP:埠」為「8000」即可,而「來源」區里完全不用設置任何東西。

 

在上面幾個大區之外,還有個名為「應用程序」的按鈕,這裡用於設置特定的程序規則,其中可供選擇的程序在右邊列出的已經被記錄訪問過網路的程序列表中選擇添加,以後此條規則就專門針對這個列表裡的程序使用了,LooknStop這種思想大大增加了應用程序訪問規則的靈活性

 

4. 監視的窗口——防火牆日誌

這裡是LooknStop的數據顯示窗口,如果你在規則里設置了日誌記錄,這裡就會報告出來,顯示當前阻止和允許的連接數量和內容,還可以直接雙擊列表直接查看詳細的數據類型,甚至完整的數據內容,在這一點上,LooknStop甚至可以替代Sniffer成為網路抓包工具!

 

4 LooknStop -四. 結語

雖然LooknStop功能如此強大,可是卻因為其設置的複雜而扼殺了很多用戶踏入門檻的機會,這不能不說是一種遺憾,一方面,可以說是由於LooknStop自身說明的不詳細和界面不夠「簡易」而帶來的,但是更重要的一點,我想應該是我們的用戶群自身,我們長期被一種「泡蜜罐」的習慣左右著,我們不學命令操作,因為它太複雜,我們排斥英文軟體,因為我們不學英文,我們呆在一個圖形的界面里偷閑,卻沒有想到,當圖形界面系統土崩瓦解的時候,我們靠什麼來拯救系統?

 

上一篇[大腳夫人]    下一篇 [游標鍵]

相關評論

同義詞:暫無同義詞