LooknStop

Stop作為一款強大的防火牆,其採用的原型是非常嚴格的,首先,Lookn

一. 難以馴服的烈馬:LooknStop

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

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

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

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

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

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

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

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

難道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就真的那么難以馴服嗎?

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

三. 實戰: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成為網路抓包工具

四. 結語

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

相關詞條

相關搜尋

熱門詞條

聯絡我們