Post view

安全加倍的「雙層防火牆」- insoler與BNW網站系統架構圖

幾乎沒有公司網站、商業網站、購物網站或個人網站會公開他們機房的 "網路系統架構圖",不過先進與時尚的 BNW 當然要與眾不同一下囉~不但公開 "網路系統架構圖" 甚至還有 "BNW 網站機櫃現場實況寫真" 照片!雖然使用的網路與主機,對千萬級的公司機房來說,還有非常大的一段距離,但是使用的網路技術並不會比他們落後!

自從使用 Windows 2000 Server 架設網站開始,就一直研究與思考要如何架設更安全穩定的專業網站?不過由於過去手上只有簡單的 "IP 分享器" 也因此面對 Cross-Site Scripting 跨網站描述程式的攻擊,顯得毫無防護能力! :shock:

雖然後來加裝了更好的 ZyWALL 5 UTM 防火牆,但是對於 "跨網站攻擊" 依舊束手無策,畢竟 ZyWALL 全系列並不是 Layer 7 層級的防火牆旗艦,因此對於 Web Server 網站使用的 80 TCP port 只有開放與封鎖、拒絕,這三種狀態,無法檢視或管控駭客在 Web Server 所下的惡意 GET 與 POST 指令! :Orz

雖然我已經把網站伺服器從 Windows 2000 Server 升級到 Windows Server 2003,後來則是直接改用更好的 Mac OS X Server,但是低階的防火牆對於 "跨網站攻擊" 根本是完全無能為力!只能透過後端的 Apache Server 來應付這類的攻擊行動。至於 DDoS 分散式阻斷攻擊、IDS / IDP 等入侵偵測,只能看防火牆本身的防護能力了。

相關的話題請參考這些討論主題:


BNW 網站系統架構圖 2006 年版

這張 "雙層防火牆網路系統" 是 100% 絕對真實的 BNW 網站系統架構現況!請點選底下的畫面就可以放大圖片,然後花點時間研究與暸解一下,為什麼我要這麼做?



其實整張圖面只有一個地方,到現在還沒有完成,那就是完全獨立的 "SQL Server 資料庫伺服器"!在系統架構圖中是使用 4 台 Mac OS X Server 伺服器,但是目前只有三台伺服器 24hr 全天候運作中,因為預算的因素,只好暫時把 Mail Server 與 SQL Server 架在同一台伺服器上。我想等到支援 Intel Core 2 Duo 的 Mac mini 上市之後,再把目前的 Intel Core Duo 的 Mac mini 1.66GHz 挪為 SQL Server 使用。

我簡單的解釋一下這張 "BNW 網站系統架構圖",細節說明請參考 "時尚の蘋果集錦 III" 這本書。

  • 第一層防火牆 (目前由 ZyWALL 5 擔任),負責把外部的 WAN 端 Public IP 透過 NAT 轉為 Private IP,對應到 192.168.10.11、12、13、14,這 4 台位於 DMZ 區域的網站伺服器群。防火牆的 LAN 端則是直接連接到 "第二層防火牆" 的 WAN 端。
  • 網站伺服器群的 Primary Server 與 Backup Server 透過 Firewire 架構成 FailOver 機制,當 Primary Server 當機或故障時,Backup Server 會在最短的時間內自動接手主伺服器的工作。以免 http://www.bnw.com.tw 與 http://www.bnw.com.tw 網站因為伺服器故障導致無法開啟網頁!當然囉~這兩台主要與備用伺服器,除了 Web Server 也同時擔任外部 DNS Server 的工作。
  • 由於 Mail Server 也是一個容易受到攻擊、駭客企圖寄送垃圾信件的伺服器,因此把 Mail Server 單獨使用一台伺服器,會是比較好的做法。
  • 我使用一個 6 port 的 Firewire Hub 把這 4 台伺服器連接成一個 10.1.10.11、12、13、14 的網路環境。10.1.10.x 除了用來支援 FailOver 的心跳偵測機制,還可以用來傳送 SQL 資料!由於 10.1.10.x 網段是位於 Firewire 網路上,並沒有連接到任何一部防火牆的 Switch Hub 集線器上,因此駭客想要 Sniffer 側錄 SQL 傳輸資料,根本是不可能的事! >:)

    由於 Firewire 網路是一個完全封閉、絕對安全的網路系統,因此我也在這裡開啟 AFP Server 檔案伺服器,以便各伺服器之間可以透過 Firewire 互相傳送檔案。
  • 通常國稅局、銀行等重要機構的 SQL Server 都會特別加裝一道 "資料庫專用防火牆" 來保護資料的安全性,但是在我的網站系統架構中,這台 SQL Server 唯一對外的連接管道只有獨立的 Firewire Hub,再加上 Mac OS X Server 本身內建的防火牆,也只開啟了 AFP 與 MySQL 專用的 3306 TCP port,使得這台 SQL Server 幾乎等同於 "國稅局、銀行" 甚至是 FBI 的安全性!對駭客來說,即使能入侵到 Web Server 或 Mail Server,也無法透過 Firewire 入侵 SQL Server! :lol::-)
  • 我有兩個 3com 的無線 IP 分享器,這兩台無線網路的 LAN 端是使用 192.168.40.x 網段,並透過 NAT 轉成 WAN 端的 192.168.1.2 這個 IP 位址。即使駭客有本事穿越 "第一道防火牆" 到達 LAN 端,也無法逆向從 "無線 IP 分享器" 的 WAN 端入侵到 192.168.40.x 的內部電腦!事實上駭客只能看到 192.168.1.2 這台 IP 分享器而已!

    當然囉~如果駭客就是你的鄰居,即使他能 Sniffer 側錄無線網路封包、破解無線網路密碼,連上我的網路之後,他也只能到達 "第一道防火牆的 LAN 端",然後直接上網或是企圖入侵 "第一道防火牆的 DMZ 端" 的網站伺服器群,絕對無法逆向從 "第二道防火牆的 WAN 端" 入侵到真正的 LAN 區域,也就是真實的 BNW 內部區域網路!

    這種 100% 安全的做法使得我的無線網路系統,遠比別人的無線網路更安全,甚至被高明的駭客破解了 WAP 加密都不需要擔心!
  • 在 "第二道防火牆" 的 WAN 端其實直接連接到 "第一道防火牆的 LAN 端",而 "第二道防火牆的 DMZ 端" 則是不使用,讓 WAN to LAN 與 WAN to DMZ 的封包 100% 完全封閉,當然囉~這樣的設計並不影響位於 "第二道防火牆的 LAN 端" 的真實區域網路使用者!對位於這裡的 iMac、PowerBook、區域檔案伺服器來說,他們完全不會感受到網路架構上居然有 "兩道防火牆"!

    當這些電腦想要上網的時候,"第二道防火牆" 會直接把 LAN 端的上網需求傳到 WAN 端,交給 "第一道防火牆的 LAN 端",並且由 "第一道防火牆" 再傳到 WAN 端,然後到達 ADSL Modem 的 Internet 網際網路!


更安全的防火牆 ACL 與防護設定

ACL 是 Access Control List 存取控制列表的縮寫,並非網路產品才有 ACL,其實 Windows 或 Mac OS X 的檔案共享清單上也有 ACL 列表,用來設定哪些人、哪些群組可以有哪些讀寫權限。

通常剛買回來的防火牆,原廠的預設值都不會適合你的環境,因此需要花不少時間來調校設定你的防火牆,一部 NT$10 幾萬隨意設定的 Cisco PIX 515 防火牆,很可能網路安全性與一台只有 NT$2000 元的 "IP 分享器" 相當!

要如何正確的設定你的防火牆?其實得靠 "專業網管人員的經驗",並沒有一定的標準設定方式。

在 Firewall 列表上你可以看到多達 5x5 = 25 種封包流向,可以隨意設定!幾乎所有不合乎規則的封包都被我 Drop 扔掉!只有 LAN to LAN 與 LAN to WAN 這兩個封包流向,不受防火牆管控。其實這種設定方式比較接近 Cisco 防火牆的出廠預設值,也就是說凡是沒有設定 ACL 規則的封包,一律 Drop 掉不予回應!



在 "第一道防火牆" 的 "DMZ to WAN" 這個封包流向,你可以看到我特別開放幾個 IP 位址的網站,例如 http://www.apple.com、clamav.com、phpBB 等原廠網站,其他網站則是一律 Reject 回絕掉!也就是說,我禁止 DMZ 區域的伺服器上網!除了限定的幾個網站,其他任何網站一律封鎖!

DMZ 伺服器對外只能使用幾個 80 TCP Port 的網站、DNS、POP3、SMTP 與 NTP (這是系統偏好設定裡面的 "自動設定日期與時間" 所需要的時間校正功能)。



從前面推薦閱讀的幾個話題中,就會知道所謂的 Cross-Site Scripting 跨網站攻擊,其實就是 "到你的網站卻開啟別人的網頁"!因此想要完全封鎖別人無法對付的 Cross-Site Scripting 攻擊,只要不准 DMZ 伺服器上網就能全面封鎖跨網站攻擊了!

由於 DMZ 伺服器無法開啟任何網頁 (只有限定的幾個 apple.com、phpbb.com 等原廠網站除外),所以駭客想要到 BNW 網站卻下 "GEThttp://www.apple.com" 之類的指令,企圖透過 BNW 開啟別人的網頁,只會得到 Reject 拒絕的回應!無法達到把 BNW 網站當成駭客跳板的目的! >:)>:)>:)

雖然 Drop 與 Reject 都是拒絕回應,不過兩者還是有很大的差別,Drop 是直接扔掉封包,而 Reject 則是送出回絕。對 Request 需求端來說 (通常是使用者開啟指定的別人網頁),設定 Drop 會因為沒有任何回應,導致 Browser 瀏覽器認為網站可能過於忙碌,就會自動重試!因此反而會重複送出 GET 別人網站的指令!

如果是使用 Reject 則是直接傳回拒絕訊號,這時候 Browser 就會立即收到網路中斷連線的訊號,也不會自動繼續重試了!所以在這裡使用 Reject 會比 Drop 要好很多!

在 "WAN to DMZ" 的封包流向,你可以看到我封鎖了很多 IP 網段,例如:211.99.x.x 全部網段,這些網段大多是大陸 IP,由於駭客多半來自大陸,所以只好一一封鎖!大陸的使用者無法開啟 BNW 網站,也只能怪他們自己囉~ >:)



除了在 "DMZ to WAN" 限定只准開啟的網站,我還特別在 CONTENT FILTER 網站內容過濾器,設定了 DMZ 伺服器只准開啟哪些網頁!



信任的網站只有 apple.com、clamav.net、ftp.cs.pu.edu.tw 等網站,除了 apple.com,後面的網站其實都是 Mail Server 需要開啟的基本服務,以便更新 email 的 Anti-Virus 掃毒病毒碼、Anti-Spam 防止垃圾信件的辨識碼等。

除了信任的網站以外,其他網站全部一律封鎖!由於 CONTENT FILTER 只能過濾 LAN to WAN 與 DMZ to WAN、VPN to WAN 這幾個封包流向,無法過濾 "WAN to DMZ",使得 Cross-site Scripting 攻擊,無法從防火牆端就全部封鎖阻隔! :Orz



雖然我已經關閉了 DMZ to WAN 的上網能力,但 Cross-site Scripting 攻擊終究還是能到達 Apache Server 上,只不過因為 DMZ 伺服器無法上網,讓駭客的陰謀無法得逞而已,最好的防火牆應該能在防火牆端,就封鎖了無理的 GET 指令,盡量讓合理的 GET 指令傳給 Web Server。不過,支援 Layer 7 的防火牆也不見得能分析與過濾 GET 開啟網頁指令,所以我透過封鎖 "DMZ to WAN" 上網與透過 Content Filter 封鎖網站,至少能達到我想要的部份效果了!

底下是 "第二道防火牆" 的管理網頁畫面,這是由 Vigor 2900G 高級 IP 分享器負責擔任。這台 2900G 內部其實是一個嵌入式 Linux 系統,穩定性相當高,還可以封鎖 IM,包括 MSN、ICQ、AOL 等,以及 P2P 的 BT、eMule 等。這部份的能力彌補了 ZyWALL 5 防火牆的不足!



在 "第二道防火牆" 的 NAT 設定已經被我全部關閉,也就是說 WAN to LAN 或 WAN to DMZ 將會完全不通!由於低階的 "IP 分享器" 沒有向 ZyWALL 5 可以提供 25 種封包流向的 ACL 管控能力,因此除了能管控 IM 與 P2P 以外,LAN to WAN 等於完全開放,因此想要管制 LAN to WAN 端的上網封包,只能由 "第一道防火牆" 來負責。不過因為第一道防火牆已經看不見 "第二道防火牆的 LAN 端",所以一但管制 LAN to WAN,受影響的將會是全部的 LAN 端電腦,包括了使用無線網路的主機!



以上是 "雙層硬體防火牆",但其實在 Mac OS X Server 上還有一道 Software Firewall 軟體防火牆!也就是說對於 Web Server、Mail Server 來說,等於再加上了 "第三道防火牆" 的保護!

Mac OS X Server 的 Firewall 防火牆預設分為 any、10-net、192.168-net,這三個網段。其中 192.168.x.x 是專為 Ethernet 網路而設計的,而 10.x.x.x 則是針對 1394 的 Firewire 網路而設計的。除此之外,來自網際網路的封包都屬於 any 部份來控管。



你可以看到在 10-net 網段,我只有開放 AFP 與 MySQL 需要的 3306 TCP Port,其他網路埠則是全部封鎖,別想 ping 與 traceroute!
當 SQL Server 架設在獨立的伺服器上,又只有透過 Firewire 與其他伺服器連接,並且在 10-net 防火牆只開放 AFP 與 MySQL 網路埠,這台 SQL Server 等於是一部架設在 "密室中完全封閉的伺服器"!

事實上 DMZ 所有伺服器都沒有開啟 SSH 與 Telnet,對駭客來說想要透過 SSH 或 Telnet 入侵,根本是不可能的任務! >:)



由於 Mac OS X Server 10.4 的 Proxy Server 有一個令人頭痛的 Bug,請參考底下這篇:

“查看誰在線上” 通通都是網站伺服器本身的 IP!

那就是一但開啟 Proxy Server,也就是 Performance Cache 之後,傳送給 PHP 的 IP 位址將會是 Web Server 本身的 IP 位址!而不再是外部使用者的 IP 位址!



所以我只好把 Proxy Server 關閉!其實如果沒有這個令人頭痛的大 Bug,開啟 Proxy Server 還能當成一道 Proxy Firewall 代理防火牆使用!對於 Cross-site scripting 攻擊,Proxy Server 會認為這是一個錯誤的 GET 指令而完全不予回應,再加上硬體防火牆的兩道保護 (DMZ to WAN 與 Content Filter),這樣就能把跨網站攻擊的行動擋在 Apache Server 之前!

到底「雙層防火牆」對於公司、住家真正的內部電腦網路安全性如何?能防止駭客企圖攻擊、入侵內部電腦主機嗎?請看底下這篇的說明。 :-)

企圖攻擊、入侵BNW內部LAN網路的駭客

答案當然是肯定的! :lol:


這篇文章雖然是在「作成: 11/04/06」已經是6年前的文章,網站的設備也隨著網路速度的提升,而漸漸的改善,從最早期使用單一的「一台IP分享器」到「兩台IP分享器」,再升級為「一台防火牆+一台IP分享器」,再次升級為使用ZyWALL 70 + ZyWALL 5組成的「兩台防火牆」。

最近則是因應「光纖100M/100M」寬頻網路,再次升級為「FortiGate 110C + ZyWALL 70」的架構。Laughing

 

阻擋駭客入侵內部網路的“雙層防火牆” 網路系統!

BNW網站的雙層防火牆與DoS攻擊防禦

BNW網路正式升級為ZyWALL 70與ZyWALL 5雙層防火牆

阻止網路駭客的攻擊與入侵行動的 “雙防火牆” 網路系統!

雙防火牆技術,打造一個安全的家用有線無線網路

SonicWALL防火牆可控管40Gbps流量售價285萬~1,263萬元

企圖從WAN入侵BNW內部LAN網路的駭客!

BNW網站被駭客派出的殭屍大軍猛烈攻擊!

你絕對需要的「旗鑑型」電腦保全系統-終極版

AETs先進規避技術能躲避防火牆、入侵偵測、IPS系統而侵入網路

ZyXEL的VDSL數據機與ZyWALL 5、ZyWALL 70雙層防火牆

把老舊電腦打造成一台"IPCop 高級防火牆"!

 

「雙層防火牆」當然也不是我個人的異想天開的奇怪發明,在Google搜尋「Two layer firewall」之類的關鍵字就會找到類似「Two layer firewall architecture」這樣的文章,底下這兩個網頁都是「電腦書」的網頁版本,由於著作權的關係,就只貼出網址,請花點時間瞭解,為什麼會需要「多層防火牆」來徹底封鎖駭客入侵真正的企業內部網路?Laughing

 

Firewall Design :: Chapter 2. Introduction to Firewalls :: Part I: Security Overview and Firewalls :: Router firewall security :: Networking :: eTutorials.org

Mission: Firewall

蘇言霖 2012/10/20 0 2947
Comments
Order by: 
Per page:
 
  • There are no comments yet
Rate
0 votes
Post info
蘇言霖
「超級懶貓級」社群網站站長
2012/10/20 (2406 days ago)
Actions