你真的理解防火墻嗎
原文地址:http://www.excelib.com/article/286/show
要想真正用活防火墻,首先需要弄明白防火墻到底是什麽、起什麽作用,只有這樣才能用的得心應手,不過由於歷史原因,現在普遍對防火墻概念的理解有一定的誤區,這就影響了對防火墻的靈活使用,所以在正式學習firewalld之前學生先給大家介紹一下防火墻的本質到底是什麽。
“防火墻”到底是什麽
“防火墻”在我國最早是一種建築,他又叫“封火墻”,其主要作用就是防火,因為那時候的建築都是以木質結構為主,而且又非常密集,所以一個住宅著火就很容易傳播到鄰近的住宅,最初的防火墻就是在這種木質結構上塗上灰泥從而達到將火源隔斷的目的。
網絡中的防火墻來源於英文單詞“firewall”的翻譯,有時候也叫“網絡防火墻”,不過這個詞使用的並不是非常準確,這也就導致了對防火墻的普遍誤解。
一想到防火墻大家的第一印象大概就是“隔離”,而且很多防火墻的資料也是這麽介紹的,比如“將內網和外網進行隔離”、“將本地電腦和外部網絡隔離”等等, 而且有時候還會配一張示意圖,圖中的防火墻就是一堵墻。以前學生在剛接觸防火墻的時候心裏就產生了一些疑問:既然防火墻已經將網絡給隔斷了,那麽正常的通信是怎麽進行的呢?是可以穿墻而過還是需要從其他通道進入呢?而且,當時學生甚至認為防火墻是用來防病毒的!
其實這一切的根源都來自對“防火墻”這個詞本身的理解,實際上“網絡防火墻”所起的並不是墻的作用,而是門衛的作用,如果按門衛去理解很多問題就迎刃而解了。
墻和門衛有哪些區別呢?這個問題雖然看起來有些可笑,不過對於理解網絡防火墻還是有好處的。首先,墻所起的作用是隔斷,無論誰都過不去,但是門衛就不一樣 了,他的職能是檢查和判斷是否可以通過,只要符合條件就可以通過;其次,墻是死的,而門衛是活的,所以門衛還可以完成很多更加靈活的功能,比如有人要到A部門辦事,但A部門搬到新的辦公地址去了,這時門衛就可以告訴來人“你要去的部門換地方了,你到XXX去吧”,再比如有的人並不是要進去辦事,只是想從裏邊穿過去抄近道,這種情況門 衛也能處理,但是墻是無論如何都辦不到的。
理解防火墻本質的好處
可能有的讀者會想:你這是在咬文嚼字,不就是個名詞嗎,理解不理解又有什麽關系呢?會用不就行了?而且這麽多年大家用的不也挺好的嘛!
其實並不是這樣,我們以前如果要使用一個防火墻一般都是先看他都具有哪些功能,其中我們能用到哪些,怎麽去用,然後再去找文檔、找例子。。。。。。這其實是一 種被動的用法,因為這裏我們其實是將防火墻當做一個新事物來學習和使用的(雖然我們一般剛開始都會將其理解為墻,但是慢慢會發現他跟墻的模型並不相符,所以就會將其當做一個新的事物來學習),但是理解了防火墻的本質就是門衛之後就不一樣了,這時我們在使用防火墻的時候首先就要想:我要給我的服務器(或者自 己的PC)找個門衛,這個門衛需要做什麽,然後再去找防火墻、查具體某功能的配置方法等等,這樣就主動了。
不僅如此,在理解了其本質之後還有更大的好處,比如你想好了想找的“門衛”都需要有哪些功能之後又去找防火墻,然而卻發現沒有一款防火墻可以滿足你的需求,這時候創新的機會就來了!也就是說通過防火墻和門衛功能的類別更容易設計出更加合理和易用的防火墻。我們來看個例子,比如一個門衛應該可以有按時間段放行的功能,但是現有防火墻卻很少有這個功能,其實這個功能很多地方都是可以用得到的,比如每天要定時遠程備份一下日誌,那麽只要在每天在特定的時間段開放端口就行了,而不需要一直開著,當然這種需求可以通過定時任務很容易地解決,不過只要從“門衛”的角度去思考,這樣的需求還有很多。
真正好的創意其實是建立在紮實的基本功和對事物本質的深層次理解上的,而不是為了創新而創新出來的。
防火墻與殺毒軟件
對於不了解防火墻的用戶來說很多時候都分不清防火墻和殺毒軟件之間的關系,而且往往會認為防火墻就是用來防病毒的,其實這是對防火墻非常大的誤解,這也許跟大家心目中防火墻的“墻”、“保護”、“安全”等特征有關系,但是防火墻其實並不能防病毒。
我們上面說了,防火墻所起的是門衛的作用,不過這個門衛的邏輯非常簡單,他主要關心的只有兩樣東西:1、從哪來的2、到哪裏去,別的東西他一概不管(實際上還 有一些東西,比如是有預約的——TCP,還是無預約的——UDP,如果是有預約的還會判斷是剛要去預約還是已經預約好了等內容)。而病毒是屬於所攜帶的內容方面的東西,這部分並不是門衛的職責範圍,而是應該有專人去負責,這就好像有人跟門衛說要去市場部,而且門衛所接到的指令是“所有到市場部的全部放行”,所以門衛就放行了,但是沒想到此人是到市場部去吵架的!不過這就不是門衛應該管的事情,而是保安所應該管的事情了。其實不僅如此,我們的防火墻這個“門 衛”即使見到來的人拿著刀、拿著槍,也一樣會放行,因為他只關心兩樣東西:從哪裏來和到哪裏去。
這種結構雖然“分工明確”,但是我們總會覺得這種門衛有點不近人情,至少算不上一個好門衛。那麽能不能讓他包含查毒、防毒甚至殺毒的功能呢?當然沒問題,因為防火墻就是一個軟件,軟件都是人寫的, 只要我們把相應的功能給加進去就可以了,非常簡單!不過事實上並非如此,我們還拿門衛的例子來給大家解釋,因為門衛需要負責檢查所有進出的人,而要想知 道某個人是否攜帶了違禁物品(病毒)就需要對其進行收身,如果門衛要對所有人都進行收身,那麽大家可以想象一下在上下班這種人流高峰期會是一種什麽場景!而 且對於服務器來說一秒鐘就可能會有成千上萬的訪問,所以哪怕每次檢查多用一點點時間,累計起來就非常可怕了!而且以我們現在這種特征碼的檢查方式來說檢查病毒所用的並不是“一點點時間”,所以這種想法雖然技術上沒有問題,但是並不可行,至少從現在的技術來看是不可行的。
我們來總結一下,防火墻就像一個門衛,他的職能是負責讓不讓進出,而進去之後幹什麽那就不是他需要管的事情了,這應該是保安(殺毒軟件)或者其他相關部門的人所需要負責的。
理解了防火墻的本質之後再來學習、使用防火墻就容易了,不過對於Centos7新的防火墻firewalld來說還有一個很多人沒有真正理解透的概念,那就是zone,學生下節再給大家詳細介紹。
你真的理解防火墻嗎