世界頂級防火牆LooknStop的配置詳解

一. 難以馴服的烈馬: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成爲網絡抓包工具!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章