咨詢電(diàn)話(huà):023-88959644    24小(xiǎo)時(shí)服務熱線:400-023-8809
NEWS CENTER ·
新聞動态
關注中技(jì)互聯 關注前沿

如何使用反向代理(lǐ)技(jì)術(shù)保護Web服務器(qì)

發表日期:2014-11-10    文章編輯:    浏覽次數(shù):32    标簽:

随着Internet的發展,很(hěn)多(duō)機構都将自己內(nèi)部的網絡連接到Internet上(shàng),因而網絡安全問題越來(lái)越重要。

一、現有(yǒu)防火(huǒ)牆技(jì)術(shù)及其局限性

為(wèi)了增加網絡的安全和(hé)保護內(nèi)部網絡上(shàng)的重要數(shù)據,需要将內(nèi)部網與Internet相隔離,當前主要通(tōng)過防火(huǒ)牆技(jì)術(shù)來(lái)完成這個(gè)目的。然而為(wèi)了保護內(nèi)部主機,防火(huǒ)牆軟件就必須限制(zhì)外部網絡中的主機對內(nèi)部網絡的訪問。因此普通(tōng)防火(huǒ)牆軟件的設置中,外部網絡無法訪問內(nèi)部主機。然而,為(wèi)了向外發布自己的信息,就需要允許外部網絡訪問自己的Web服務器(qì)。最簡單的處理(lǐ)方法是将Web服務器(qì)放在防火(huǒ)牆之外,這樣就将Web服務器(qì)和(hé)內(nèi)部網絡區(qū)分開(kāi),Web服務器(qì)暴露在網絡外部,就有(yǒu)可(kě)能招受攻擊而導緻服務器(qì)癱瘓或網頁被更改等潛在的問題。而當前,Web服務器(qì)上(shàng)面的信息越來(lái)越豐富和(hé)重要,Web服務器(qì)的重要性也非常明(míng)顯。因此就需要使用防火(huǒ)牆來(lái)保護它,如果要将Web服務器(qì)放在防火(huǒ)牆之內(nèi),則需要防火(huǒ)牆的支持。

當前防火(huǒ)牆主要有(yǒu)兩種類型,一種為(wèi)包過濾型防火(huǒ)牆,這種防火(huǒ)牆針對每個(gè)IP包識别它是否符合管理(lǐ)員設定的過濾規則,符合一定要求的才被正确轉發。可(kě)以使用的過濾規則包括源和(hé)目的主機的名字和(hé)IP地址,端口地址,使用的網絡界面,以及IP包的類型。通(tōng)常包過濾型的防火(huǒ)牆軟件根據IP包的類型屏蔽所有(yǒu)的由外部發起的連接請(qǐng)求,從而保護內(nèi)部網絡。如果要将Web服務器(qì)放在放火(huǒ)牆之內(nèi),就需要允許對這個(gè)Web服務器(qì)和(hé)它使用的TCP端口的訪問。

另一種類型的防火(huǒ)牆為(wèi)應用代理(lǐ)型的防火(huǒ)牆,這種防火(huǒ)牆針對每種應用協議提供相應的代理(lǐ)服務,由代理(lǐ)服務器(qì)訪問網絡,并将結果返回給客戶機。标準的http協議的代理(lǐ)服務,客戶端的浏覽器(qì)必須配置代理(lǐ)服務器(qì)的IP地址,不可(kě)能要求其他外部主機為(wèi)訪問這個(gè)內(nèi)部網絡上(shàng)的主機而重新設置代理(lǐ)服務器(qì)的地址。代理(lǐ)服務器(qì)并不區(qū)分外部網絡和(hé)內(nèi)部網絡,但(dàn)是代理(lǐ)服務器(qì)使用Internet上(shàng)的名字解析來(lái)确定Web服務器(qì)的位置,而通(tōng)常防火(huǒ)牆內(nèi)使用內(nèi)部地址,這也決定了普通(tōng)代理(lǐ)型防火(huǒ)牆不支持外部網絡對內(nèi)部Web服務器(qì)的http訪問請(qǐng)求。因此普通(tōng)代理(lǐ)服務器(qì)簡單的屏蔽外部地址的訪問,因此最簡單的保護對外發布信息的Web服務器(qì)的方式是使用包過濾型的防火(huǒ)牆。

一旦允許外部網絡中的主機可(kě)以向內(nèi)部網絡發起連接請(qǐng)求,攻擊者就可(kě)以在網絡外部嘗試進行(xíng)連接,這增加了攻擊者攻擊內(nèi)部網絡的方式,降低(dī)了整個(gè)網絡的安全系數(shù)。如果不允許外部主機向內(nèi)部網絡發起連接請(qǐng)求,攻擊者就隻好在外部發起攻擊,使用特洛伊木馬或者IP spoof等技(jì)術(shù),這些(xiē)方式與發起主動連接的攻擊方式相比,沒有(yǒu)現成的工具供利用,因此使得(de)攻擊的複雜性大(dà)大(dà)增加,因此網絡被攻擊的可(kě)能性大(dà)為(wèi)減少(shǎo),幾乎成為(wèi)不可(kě)能。一旦攻擊者進入內(nèi)部網絡中的Web服務器(qì),整個(gè)內(nèi)部網絡就暴露在攻擊者的面前,防火(huǒ)牆就不能起到應有(yǒu)的作(zuò)用了。因此通(tōng)過重新定義包過濾型防火(huǒ)牆的過濾規則,并将Web服務器(qì)放在內(nèi)部網絡內(nèi),隻是一種簡單的保護Web服務器(qì)的方法,然而不利于保護整個(gè)內(nèi)部網絡的安全。

因此,為(wèi)了在保護Web服務器(qì)和(hé)內(nèi)部網絡的安全,當前使用的更安全的做(zuò)法是實現雙層防火(huǒ)牆。外層防火(huǒ)牆實現包過濾功能,然而卻允許外部網絡訪問其中的Web服務器(qì),內(nèi)部防火(huǒ)牆允許最中間(jiān)的內(nèi)部網絡可(kě)以訪問外部網絡。在外部防火(huǒ)牆和(hé)內(nèi)部防火(huǒ)牆之間(jiān)稱為(wèi)停火(huǒ)區(qū),提供外部網絡訪問的服務器(qì)就位于這個(gè)區(qū)域,表明(míng)即使攻擊者通(tōng)過外部防火(huǒ)牆進入這個(gè)區(qū)域,也無法攻入內(nèi)部網絡。雙層防火(huǒ)牆通(tōng)過設置了兩層防火(huǒ)牆,使得(de)內(nèi)部網絡更為(wèi)安全。然而,它在保護Web服務器(qì)方面的作(zuò)用,與單層防火(huǒ)牆相似。因為(wèi)此時(shí)Web服務器(qì)仍然隻受到一層防火(huǒ)牆的保護,同樣也無法對外部隐藏防火(huǒ)牆內(nèi)主機的各種信息,例如服務器(qì)的ip等。而且這層防火(huǒ)牆是對應用協議一無所知的包過濾防火(huǒ)牆,由于包過濾的方式不識别應用協議,通(tōng)常為(wèi)http協議,那(nà)麽就無法正确識别外部的連接請(qǐng)求是否屬于正常連接,通(tōng)常也無法進行(xíng)詳盡的連接記錄。為(wèi)了更好的保護Web服務器(qì)不被外部攻擊者破壞,就應該屏蔽內(nèi)部服務器(qì)的IP地址等信息,并且防火(huǒ)牆能夠識别連接協議,顯然這是代理(lǐ)型防火(huǒ)牆的任務。

二、反向代理(lǐ)方式

通(tōng)常的代理(lǐ)服務器(qì),隻用于代理(lǐ)內(nèi)部網絡對Internet的連接請(qǐng)求,客戶機必須指定代理(lǐ)服務器(qì),并将本來(lái)要直接發送到Web服務器(qì)上(shàng)的http請(qǐng)求發送到代理(lǐ)服務器(qì)中。由于外部網絡上(shàng)的主機并不會(huì)配置并使用這個(gè)代理(lǐ)服務器(qì),普通(tōng)代理(lǐ)服務器(qì)也被設計(jì)為(wèi)在Internet上(shàng)搜尋多(duō)個(gè)不确定的服務器(qì),而不是針對Internet上(shàng)多(duō)個(gè)客戶機的請(qǐng)求訪問某一個(gè)固定的服務器(qì),因此普通(tōng)的Web代理(lǐ)服務器(qì)不支持外部對內(nèi)部網絡的訪問請(qǐng)求。當一個(gè)代理(lǐ)服務器(qì)能夠代理(lǐ)外部網絡上(shàng)的主機,訪問內(nèi)部網絡時(shí),這種代理(lǐ)服務的方式稱為(wèi)反向代理(lǐ)服務。此時(shí)代理(lǐ)服務器(qì)對外就表現為(wèi)一個(gè)Web服務器(qì),外部網絡就可(kě)以簡單把它當作(zuò)一個(gè)标準的Web服務器(qì)而不需要特定的配置。不同之處在于,這個(gè)服務器(qì)沒有(yǒu)保存任何網頁的真實數(shù)據,所有(yǒu)的靜态網頁或者CGI程序,都保存在內(nèi)部的Web服務器(qì)上(shàng)。因此對反向代理(lǐ)服務器(qì)的攻擊并不會(huì)使得(de)網頁信息遭到破壞,這樣就增強了Web服務器(qì)的安全性。

反向代理(lǐ)方式和(hé)包過濾方式或普通(tōng)代理(lǐ)方式并無沖突,因此可(kě)以在防火(huǒ)牆設備中同時(shí)使用這兩種方式,其中反向代理(lǐ)用于外部網絡訪問內(nèi)部網絡時(shí)使用,正向代理(lǐ)或包過濾方式用于拒絕其他外部訪問方式并提供內(nèi)部網絡對外部網絡的訪問能力。因此可(kě)以結合這些(xiē)方式提供最佳的安全訪問方式。

綜合反向代理(lǐ)功能和(hé)普通(tōng)拒絕外部訪問的普通(tōng)防火(huǒ)牆軟件相結合,就能構成一個(gè)既具有(yǒu)保護內(nèi)部網絡、又能對外提供Web信息發布的能力的防火(huǒ)牆系統。由于反向代理(lǐ)能力需要軟件實現,因此不能使用現有(yǒu)的防火(huǒ)牆系統,需要使用相關軟件進行(xíng)開(kāi)發改進。Unix顯然是首選平台,我們基于FreeBSD系統,提出一種基于ipfw、natd與squid的防火(huǒ)牆設置方式。其中ipfw可(kě)以基于ip地址、端口、協議等對ip包進行(xíng)過濾,natd提供網絡地址轉換功能,這樣就隐藏了內(nèi)部網絡的拓撲等信息,ipfw和(hé)natd結合就構成了強大(dà)的包過濾網關。而squid是Internet上(shàng)最流行(xíng)的Web代理(lǐ)服務器(qì)之一,雖然它提供的是普通(tōng)的正向代理(lǐ)能力,但(dàn)其為(wèi)開(kāi)放源代碼軟件,并且具有(yǒu)強大(dà)的可(kě)配置性,因此很(hěn)容易可(kě)以将其更改為(wèi)反向代理(lǐ)服務器(qì)。

這種方式對內(nèi)部網絡的保護能力,要小(xiǎo)于雙層防火(huǒ)牆軟件,等于普通(tōng)的單層防火(huǒ)牆軟件,然而其對Web服務器(qì)的保護卻大(dà)于雙層防火(huǒ)牆系統中對位于對停火(huǒ)區(qū)內(nèi)的Web服務器(qì)的保護。然而其本身為(wèi)單層系統,因此比雙層系統配置起來(lái)更方便,是一種簡單有(yǒu)效的方案。其中反向代理(lǐ)功能能夠提供豐富的連接記錄,可(kě)以用來(lái)提供預防和(hé)捕獲攻擊的能力,而包過濾和(hé)網絡地址翻譯可(kě)以讓內(nèi)部網絡的主機可(kě)以使用多(duō)種協議訪問外部網絡,不需要考慮防火(huǒ)牆對應用協議的支持問題。這種方式适用于大(dà)多(duō)數(shù)Intranet系統。
三、討(tǎo)論

當需要對內(nèi)部網絡提供更進一步的保護時(shí),仍然可(kě)以使用雙層防火(huǒ)牆模式,這樣兼具反向代理(lǐ)對Web服務器(qì)的保護能力,和(hé)雙層防火(huǒ)牆對內(nèi)部數(shù)據的更大(dà)的保護能力。

當組織向外提供信息發布的時(shí)候,并不僅僅要提供一些(xiē)靜态的網頁,更大(dà)的可(kě)能是要根據實際的數(shù)據動态發布信息。因此發布的網頁便需要通(tōng)過訪問數(shù)據庫動态生(shēng)成,通(tōng)常使用的動态生(shēng)成技(jì)術(shù)有(yǒu)CGI或服務器(qì)端文檔解析等方式生(shēng)成的。然而無論那(nà)種方式,都需要使得(de)Web服務器(qì)能夠和(hé)數(shù)據庫服務器(qì)進行(xíng)連接、通(tōng)信。然而系統數(shù)據庫應該是內(nèi)部網絡中應該首要保護的系統,因此要求安全性要求不高(gāo)的對外發布信息的Web服務器(qì)和(hé)內(nèi)部數(shù)據庫服務器(qì)放置在同一個(gè)網段,就會(huì)造成相應的安全問題。

為(wèi)了提高(gāo)訪問數(shù)據庫服務器(qì)的安全性,就需要對能夠訪問數(shù)據庫的CGI程序進行(xíng)限制(zhì),這就要求對啓動CGI的URL請(qǐng)求比對普通(tōng)url進行(xíng)更嚴格的限制(zhì)。與普通(tōng)包過濾型防火(huǒ)牆不同,反向代理(lǐ)能夠理(lǐ)解http協議,能區(qū)分出不同的url請(qǐng)求,從而能夠實現對cgi請(qǐng)求比普通(tōng)http請(qǐng)求更嚴格的控制(zhì),甚至可(kě)以将cgi請(qǐng)求發送到一台專用的CGI服務器(qì)進行(xíng)處理(lǐ),從而分别處理(lǐ)普通(tōng)url請(qǐng)求和(hé)cgi請(qǐng)求。這台cgi服務器(qì)可(kě)以具有(yǒu)訪問數(shù)據庫的能力,保證數(shù)據庫的安全。

總結本文中的論述,可(kě)以看出,反向代理(lǐ)方式是一種對外提供Web發布時(shí)使用的有(yǒu)效的防火(huǒ)牆技(jì)術(shù),使用它和(hé)傳統防火(huǒ)牆技(jì)術(shù)相結合,就能實現簡單有(yǒu)效的防火(huǒ)牆系統。

如沒特殊注明(míng),文章均為(wèi)中技(jì)互聯原創,轉載請(qǐng)注明(míng)來(lái)自www.zjcoo.com
相關新聞

CopyrightZJCOO technology Co., LTD. All Rights Reserved.    

渝ICP 備11003429号

  • qq客服
  • 公衆号
  • 手機版
  • 新浪微博