一、 初識網絡防火牆1.1、防火牆的基本功能我們這裡說的防火牆(Firewall)是一種網絡設備,它在網絡中起到兩個最基本的功能:
· 劃分網絡的邊界
· 加固内網的安全
**劃分網絡的邊界**防火牆設備的其中一個功能,就是劃分網絡的邊界,嚴格地将網絡分為"外網"和"内網"。"外網"則是防火牆認為的——不安全的網絡,不受信任的網絡"内網"則是防火牆認為的——安全的網絡,受信任的網絡你可以這麼打一個比喻:如果把網絡比作一個城市,那麼"内網"就是你的小區内部,"外網"就是城市道路小區的圍牆就相當于是防火牆,起到了一個隔離"内部環境"和"外部環境"的功能
并且呢,任何一個防火牆設備,在設計上就會強制把"内部"和"外部"的概念。應用在接口上從内部訪問外部默認情況下是允許的,但是從外部訪問内部默認情況下是禁止的(需要設置相關策略才能從外部到内部訪問。)這種情況就像你到任何一個小區或者單位,你從裡面出來的時候門衛一般不管你,但是如果想從外面進去,那可就不是那麼回事了哦。
**加固網絡的安全**剛才說到了防火牆的其中一個功能,就是網絡流量流向的問題(内到外可以訪問,外到内默認不能訪問),這就從一定程度上加強了網絡的安全性,那就是:"内網屬于私有環境,外人非請莫入!"另外,防火牆還能從另外一些方面來加固内部網絡的安全**1、隐藏内部的網絡拓撲**這種情況用于互聯網防火牆。因為内網一般都會使用私有IP地址,而互聯網是Internet的IP地址。由于在IPv4環境下IP地址不足,内部使用大量的私有地址,轉換到外部少量的Internet地址,這樣的話,外部網絡就不會了解到内部網絡的路由,也就沒法了解到内部網絡的拓撲了。同時,防火牆上還會使用NAT技術,将内部的服務器映射到外部,所以從外部訪問服務器的時候隻能了解到映射後的外部地址,根本不會了解到映射前的内部地址。
**2、帶有安全檢測防禦**這種功能并不是每一款防火牆都有安全檢測系統(intrusion detection system,簡稱"IDS")是一種對網絡傳輸進行即時監視,在發現可疑傳輸時發出警報或者采取主動反應措施的網絡安全設備。它與其他網絡安全設備的不同之處便在于,IDS是一種積極主動的安全防護技術。 **3、會話日志功能**防火牆都有"會話記錄"功能,每一個數據包在經過防火牆之後,都可以在防火牆的會話表中查詢到曆史訪問記錄。比如10.112.100.101的主機在訪問外部網絡的時候,隻要它訪問成功,都會被防火牆所記錄下來。如果是外部主機訪問内部呢?當然,在你的内部網絡遭受不安全以後,可以在防火牆上查到從外到内,到底是哪個IP地址非法闖入了。如果确實有外部非法闖入内部的訪問,也可以追查防火牆的安全策略設置,看看哪一條安全策略的設置有問題。雖然這看起來是一種"亡羊補牢"的做法,但是能查到危害源,總比你什麼都查不到要好啊。1.2、防火牆在企業環境的應用1、互連網出口設備這估計是大家最能想到的一種用途吧。因為Internet就是一個最典型的"外網",當企業網絡接入Internet的時候,為了保證内部網絡不受來自外部的威脅侵害,就會在互聯網出口的位置部署防火牆。
2、分支機構接骨幹網作邊界設備在電力行業、金融行業等大型跨地,跨省的企業時,為了企業中各個省級、地市級單位的内部數據通信通常都會自建一張骨幹網絡。在每個省級、地市級單位辦公網絡接入骨幹網時,就可以在網絡接入點部署防火牆,進一步提高每個單位的辦公網絡安全性。
3、數據中心内保護服務器數據中心(DataCenter)是為企業存放重要數據資料的,同時數據中心内會放置各種各樣功能不一的服務器。想要保證數據的安全,首先就要保證這些服務器的安全。物理上的安全嘛,你就防火防水防賊呗,應用上的安全,找殺毒軟件嘛;但是在網絡上防止,防止非授權人員操作服務器,就需要到防火牆來發揮作用了。一般在傳統的數據中心内,會根據不同的功能來決定服務器的分區,然後在每個分區和核心設備的連接處部署防火牆。
## 1.3、并不是任何場合都适合部署防火牆誰都知道安全性和方便性有時候會有那麼一些沖突。你去坐飛機,會經過非常嚴格的安檢,沒個十幾二十分鐘完成不了;但是在坐高鐵,火車或者大巴的時候,安檢可能就沒那麼嚴格了。防火牆作為一種網絡安全設備,部署在網絡中會對穿過防火牆的數據包進行攔截,然後确定它符合策略要求以後才會放行。這會對網絡傳輸效率造成一定影響。所以在一些十幾個人的小公司或者是網絡功能單一的環境(網絡就是用來上網用的)是不會使用防火牆的。加上企業級防火牆價格一般比較高(十幾萬到一百多萬不等的價格),在那些以節約成本為先的偏小型私人企業一般不會使用防火牆。所以防火牆一般用于數據中心,大型企業總部,國有企業省級、地區級辦公機構,帶有服務器區域的網絡環境或機密性較高的單位。二、防火牆的生廠商根據防火牆的部署方式,防火牆分為硬件防火牆和軟件防火牆兩種。硬件防火牆:防火牆是一台網絡設備,獨立上架安裝使用。下圖為大家展示了思科的硬件防火牆,Cisco ASA和Cisco Firepower
軟件防火牆:用一台多網卡服務器,安裝Windows或Linux操作系統,再在操作系統上安裝與防火牆相關的功能軟件。下圖為大家展示Microsoft ISA正在發布Exchange服務器
硬件防火牆的生産商很多,但是在國内大多數都是用以下幾種産品:
捷哥列出這些生産商也隻是其中一部分,上述廠商的防火牆捷哥都接觸過,但是經常遇到的還是Cisco ASA,Juniper SRX,華為USG,天融信NGFW,迪普DPTec-FW1000這些設備。這裡捷哥本人也不敢亂說誰好誰壞吧,隻是經過一段時間的觀察,發現了這樣一個小小規律:一般來說Cisco ASA和Juniper SRX,華為USG,H3C FW,迪普FW系列用作内網防火牆較多,而天融信和深信服系列更多用于互聯網出口。軟件防火牆一般都是由軟件公司生産:Windows 自帶的防火牆(一般Windows都作終端使用,很少讓其作為路由設備轉發數據)Linux自帶的防火牆(Netfilter,管理工具叫IPtables)ISA/TMG(微軟軟件)Squid(開源軟件,更多的情況用于代理服務器)## 三、防火牆的分類防火牆按照功能和級别的不同,一般分類這麼三類:* 包過濾型防火牆* 狀态檢測型防火牆* 代理型防火牆## 3.1、包過濾型防火牆這種防火牆隻能實現最基礎的包過濾功能,按照既定的訪問控制列表對數據包的三、四層信息進行控制,詳細一點就是:三層信息:源IP地址,目标IP地址四層信息:源端口,目标端口這種情況其實用一個路由器或者三層交換機,配置ACL就能實現隻有符合了條件的數據包才能被放行,不符合條件的數據包無論如何都不會被放行。但是包過濾型防火牆的性質就是那麼"教條"與"頑固不化"!
如果是使用一個路由器,強行設置"從外部到内部拒絕所有流量"會有什麼後果呢?
當然,外部的流量全部被ACL阻止了,但是這麼設置在某些場合會造成網絡通信故障:比如内部的主機訪問外部TCP協議的服務,需要經過三次握手,其中第二次握手的流量就是從外部到内部的,如果單使用一個路由器的ACL實現包過濾,并且在外部接口配置拒絕所有流量進入,就會導緻三次握手無法完成,從而内部主機訪問不到外部的服務。
第一次握手,内部主機10.112.100.101使用随機端口10025訪問外部的WebServer`200.100.1.2的TCP 80`三層信息源IP地址:10.112.100.101目标IP地址:200.100.1.2源端口:TCP 10025目标端口:TCP 80由于内部接口放行所有流量,所以這個第一次握手的流量被放行了
第二次握手,外部主機200.100.1.2的被動地TCP 80發出相應,将第二次握手的數據包傳回到10.112.100.101的TCP 10025端口上,此時三層信息源IP地址:200.100.1.2目标IP地址:10.112.100.101源端口:TCP 80目标端口:TCP 10025但是外部接口拒絕了所有流量的進入,所以這個第二次握手的包無法送到内部主機,導緻三次握手無法完成。從而主機就沒法訪問外部Web Server了
由于TCP連接時,内部主機在發起第一次握手時總是以随機端口進行連接,所以你在外部也沒法針對相應的端口進行流量的放行,但是如果把外部接口也改為permit ip any any,又會導緻内部主機容易受到外部的侵害。
說到這裡,捷哥想說一句題外話曾經有一個學員網友問了我一個問題,說是在企業部署了一台Cisco 6509交換機作為彙聚設備。但是他又想實現這樣的一個功能,看圖吧:
網友的意思是,想在Gi 2/1接口上做一些控制,隻允許來自核心方面的流量訪問辦公區域的一些特定端口,其他的全部禁止訪問,問我在這個Cisco 6509上怎麼做。我告訴他的是:"如果設備是交換機的話,你這個操作沒法做。因為辦公區的電腦訪問外網或者内網服務器的時候,會打開一些随機端口,你就沒法知道這些随機端口是什麼。如果你随便在Gi 2/1接口上去做限制,會導緻你辦公區域的電腦根本沒法上網。"## 3.2、狀态檢測型防火牆狀态檢測型防火牆就是為了解決"傻×"的包過濾型防火牆而存在的。它比包過濾型防火牆還多了一層"狀态檢測"功能。狀态化檢測型防火牆可以識别出主動流量和被動流量,如果主動流量是被允許的,那麼被動流量也是被允許的。例如TCP的三次握手中,第一次流量是主動流量,從内到外,第二次流量就是從外到内的被動流量,這可以被狀态監測型防火牆識别出并且放行。狀态監測型防火牆會有一張"連接表",裡面記錄合法流量的信息。當被動流量彈回時,防火牆就會檢查"連接表",隻要在"連接表"中查到匹配的記錄,就會放行這個流量
第一次握手,内部主機10.112.100.101使用随機端口10025訪問外部的WebServer200.100.1.2的TCP 80三層信息源IP地址:10.112.100.101目标IP地址:200.100.1.2源端口:TCP 10025目标端口:TCP 80由于内部接口放行所有流量,所以這個第一次握手的流量被放行了但此時,防火牆在連接表中生成了如下内容:
第二次握手時,是外部主機被動彈回的流量源地址(外部):200.100.1.2源端口(外部):TCP 80目标地址(内部):10.112.100.101目标端口(内部):TCP 10025此時,防火牆會暫時攔截流量,然後檢查連接表,看看内部主機的IP和端口,外部主機的IP和端口是否與連接表中記錄的相同,如果相同,它就會放行這個流量。當然,形成連接表記錄的先決條件是:主動發起訪問一端的流量要符合防火牆的安全策略要求,也就是說内部網絡向外部網絡不被明确拒絕,外部網絡訪問内部網絡被明确允許。隻有連接表内記錄了内外主機和IP端口信息的,被動彈回的流量才會被防火牆放行。如果是外部主動發起的流量,而防火牆又沒有允許它訪問内部,由于是外部主動發起的流量,所以防火牆的連接表裡沒有相應的信息,這就會遭到防火牆的拒絕。從而達到既保證了内部到外部的正常通信,又使得内部主機不受到外部的侵犯,這就是狀态檢測型防火牆的魅力所在。目前主流的硬件防火牆幾乎都支持狀态監測功能。## 3.3、代理型防火牆代理型防火牆一般是一個安裝在多網卡服務器上的軟件,擁有狀态監測的功能,但是多了一項功能就是代理服務器功能。一般有正向代理和反向代理兩種功能:**正向代理**正向代理用于内部主機訪問Internet服務器的時候,特别是Web服務的時候很管用。當内部主機第一次訪問外部的Web服務器時,代理服務器會将訪問後的内容放在自己的"高速緩存"中,當内部主機再次訪問該Web服務器的時候,如果有相同的内容,代理服務器就會将這個訪問定位到自己的高速緩存,從而提升内部主機的訪問速度。
代理型防火牆的代理功能可以在内部主機訪問Web數據的時候,起到一個緩存加速的情況。但是這種防火牆因為是安裝在一台服務器上的軟件,其性能受到服務器本身的限制。所以對于一些實時性的數據,或者是從網上下載文件到本地,就可能會被防火牆拖慢網速。目前代理型防火牆在企業一般很少用于正向代理或者是出口網關設備,倒是反向代理更多。**反向代理**反向代理和正向代理有點類似,隻不過訪問的方向是外部到内部。當外部主機要訪問内部發布的某個服務器的時候,不會讓它把訪問目标定位到内部服務器上,而是反向代理設備上。反向代理設備會從真實的服務器上抽取數據到自己的緩存中,起到保護真實服務器的功能。反向代理一般單獨部署,不和狀态檢測防火牆部署在一起,各自實現各自的功能。
反向代理在一定程度上可以保護内部的真實服務器,即使遭到危險,也是反向代理被危及被破壞的數據也是緩存。并且反向代理服務器上可能會記錄對方的危險方式,找出網絡系統中存在的缺陷,提醒管理員即使封阻漏洞,修複缺陷。
# 四、關于防火牆的學習方法## 4.1、理解原理,掌握技巧(了解原理,查閱手冊)因為防火牆生産廠商比較多,把每個廠商的防火牆的配置命令和設置方式都拿出來一個一個的說,這個非常不現實。因為在企業内部的防火牆都是生産環境,我不可能那生産環境的防火牆來給大家做試驗品,一來這可能導緻網絡故障(責任我背不起啊!)二來我和客戶簽了保密協議,出于職業道德我也不能把這些配置都展示給大家。進口防火牆産品因為是全英文的手冊複雜,但是有着一套比較完善的模拟器系統,可以幫助大家理解防火牆的特性和配置方式,所以,捷哥在這個專欄裡面,着重用兩款進口産品(Cisco和Juniper)為大家展示防火牆特性的一些配置及驗證。國内的防火牆産品,捷哥也會在專欄的文章裡面體現到。因為國内的産品缺少模拟器,而且實際環境多半是Web界面進行配置,所以對于國内的防火牆産品捷哥重點是教大家如何去查閱手冊(國内産品一定是全中文手冊,非常容易看懂)。## 2、抓住重點,切勿混淆這一點是針對于學過路由交換的讀者說的。曾經捷哥在51cto學院出了一個跟Juniper相關的視頻課程,結果被人打了差評,原因就是我沒有講在防火牆上如何配置OSPF、BGP這些路由協議。在這裡我必須給大家強調一下,因為防火牆從最初的設計上來講,就是為了作為網絡邊界設備和安全設備。防火牆的工作重點是在處理包過濾及狀态化會話,以及兼顧一些安全檢測的功能,對路由處理能力并不強。在實際的企業部署中,一般是不會在防火牆上去跑動态路由的。所以,學習防火牆,重點技術就是在安全策略,NAT,以及一些安全的配置還有防火牆雙機熱備上面。## 3、經驗隻可借鑒不可照搬防火牆位于網絡的關鍵位置,特别是數據中心的防火牆。一般來說,在企業中運維防火牆的話,防火牆的變更操作會很多,一般都會在安全策略,ACL的地方進行變更操作。所以要玩好防火牆,技術之外的技巧,例如腳本技巧,文本技巧要大于技術之内。捷哥會給大家介紹一些如何去對一些陌生的防火牆廠商的快速上手技巧,大家可以靈活借鑒,但不可生搬硬套哦。還有呢,防火牆很多時候查看多餘配置。對于進口防火牆來說,如何在全英文的界面下抓住重點,從查看到的内容中找到關鍵信息和關鍵參數,這也是需要一點點小小的技巧的。當然啦,大家不要隻盯着configure,學會show和display也同樣重要。
,