| 導購 | 订阅 | 在线投稿
分享
 
 
 

用Linux防火牆構建DMZ

來源:互聯網網民  2006-12-16 16:51:49  評論

用Linux防火牆構建DMZ

摘要

針對不同資源提供不同安全級別的保護,可以考慮構建一個叫做「Demilitarized Zone」(DMZ)的區域。DMZ可以理解爲一個不同于外網或內網的特殊網絡區域。DMZ內通常放置一些不含機密信息的公用服務器,比如Web、Mail、FTP等。這樣來自外網的訪問者可以訪問DMZ中的服務,但不可能接觸到存放在內網中的公司機密或私人信息等。即使DMZ中服務器受到破壞,也不會對內網中的機密信息造成影響。(2004-11-14 14:46:52)

防守在網絡安全中的重要性不必多說。保護網絡最常見的方法就是使用防火牆。防火牆作爲網絡的第一道防線,通常放置在外網和需要保護的網絡之間。最簡單的情況是直接將防火牆放置在外網和企業網絡之間,所有流入企業網絡的數據流量都將通過防火牆,使企業的所有客戶機及服務器都處于防火牆的保護下。這對于一些中小企業來說是簡單易行的,而且這種解決方法在某些情況下也表現不錯。然而這種結構畢竟比較簡單。企業中有許多服務器、客戶機等資源需要保護,不同的資源對安全強度的要求也不同。不能用對待客戶機的安全級別來對待服務器,這樣服務器將會很危險;同樣,也不能用對待服務器的安全級別來對待客戶機,這樣用戶會感覺很不方便。

針對不同資源提供不同安全級別的保護,可以考慮構建一個叫做「Demilitarized Zone」(DMZ)的區域。DMZ可以理解爲一個不同于外網或內網的特殊網絡區域。DMZ內通常放置一些不含機密信息的公用服務器,比如Web、Mail、FTP等。這樣來自外網的訪問者可以訪問DMZ中的服務,但不可能接觸到存放在內網中的公司機密或私人信息等。即使DMZ中服務器受到破壞,也不會對內網中的機密信息造成影響。

許多防火牆産品都提供了DMZ的接口。硬件防火牆由于使用專門的硬件芯片,所以在性能和流量上有絕對的優勢。軟件防火牆的性價比非常好,一般企業使用起來效果不錯。如果使用Linux防火牆,其成本將更低。因此這裏將要介紹的是在Linux防火牆上劃分DMZ區域的方法。

構建DMZ的策略

Linux從2.4內核開始,正式使用iptables來代替以前的ipfwadm和ipchains,實現管理Linux的包過濾功能。Linux的包過濾通過一個叫netfilter的內核部件來實現。netfilter內建了三個表,其中默認表Filter中又包括3個規則鏈,分別是負責外界流入網絡接口的數據過濾的INPUT鏈、負責對網絡接口輸出的數據進行過濾的OUTPUT鏈,以及負責在網絡接口之間轉發數據過濾的FORWARD鏈。要構建一個帶DMZ的防火牆,需要利用對這些鏈的設定完成。首先要對從連接外部網絡的網卡(eth0)上流入的數據進行判斷,這是在INPUT鏈上完成。如果數據的目標地址屬于DMZ網段,就要將數據轉發到連接DMZ網絡的網卡(eth1)上;如果是內部網絡的地址,就要將數據轉發到連接內部網絡的網卡(eth2)上。表1顯示了各個網絡之間的訪問關系。

表1 網絡間訪問關系表

內網 外網 DMZ

內網 / Y Y

外網 N / Y

DMZ N N /

根據表1,可以明確以下六條訪問控制策略。

1.內網可以訪問外網

內網的用戶顯然需要自由地訪問外網。在這一策略中,防火牆需要進行源地址轉換。

2.內網可以訪問DMZ

此策略是爲了方便內網用戶使用和管理DMZ中的服務器。

3.外網不能訪問內網

很顯然,內網中存放的是公司內部數據,這些數據不允許外網的用戶進行訪問。

4.外網可以訪問DMZ

DMZ中的服務器本身就是要給外界提供服務的,所以外網必須可以訪問DMZ。同時,外網訪問DMZ需要由防火牆完成對外地址到服務器實際地址的轉換。

5.DMZ不能訪問內網

很明顯,如果違背此策略,則當入侵者攻陷DMZ時,就可以進一步進攻到內網的重要數據。

6.DMZ不能訪問外網

此條策略也有例外,比如DMZ中放置郵件服務器時,就需要訪問外網,否則將不能正常工作。

|||||| DMZ的實現

根據以上訪問控制策略可以設定Linux防火牆的過濾規則。下面將在一個虛構的網絡環境中,探討如何根據以上六條訪問控制策略建立相應的防火牆過濾規則。這裏的討論和具體應用會有所區別,不過這種討論將有助于實際應用。用戶在實際應用時可根據具體的情況進行設置。該虛擬環境的網絡拓撲如圖1。

圖1 DMZ網絡拓撲圖

如圖1所示,路由器連接Internet和防火牆。作爲防火牆的Linux服務器使用三塊網卡:網卡eth0與路由器相連,網卡eth1與DMZ區的Hub相連,網卡eth2與內網Hub相連。作爲一個抽象的例子,我們用「[內網地址]」來代表「192.168.1.0/24」之類的具體數值。同理還有「[外網地址]」和「[DMZ地址]」。

對于防火牆,原則之一就是默認禁止所有數據通信,然後再打開必要的通信。所以在防火牆腳本的最初,需要清空系統原有的規則,然後將INPUT、OUTPUT、FORWARD的默認規則設置爲丟棄所有數據包。

對應的防火牆腳本片段如下: # Flush out the tables and delete all user-defined chains

/sbin/iptables -F

/sbin/iptables -X

/sbin/iptables -t nat -F

/sbin/iptables -t nat -X

# Drop every packet

/sbin/iptables -P INPUT DROP

/sbin/iptables -P OUTPUT DROP

/sbin/iptables -P FORWARD DROP

接下來,逐一解釋六種策略的實現。

1.內網可以訪問外網

對應的防火牆腳本片段如下:

/sbin/iptables -t nat -A POSTROUTING -s [內網地址] -d [外網地址] -o eth0 -j SNAT --to [NAT的真實IP]

當數據從連接外網的eth0流出時,要將來自內網的數據包的源地址改成Internet上的真實IP,這樣才能和外網的主機進行通信。「[NAT的真實IP]」表示分配給NAT用戶的真實IP,有幾個就寫幾個,以空格分開,但至少要寫一個。

2.內網可以訪問DMZ

對應的防火牆腳本片段如下:

/sbin/iptables -A FORWARD -s [內網地址] -d [DMZ地址] -i eth2 -j ACCEPT

以上命令允許所有來自內網、目的地爲DMZ的數據包通過。

3.外網不能訪問內網

對應的防火牆腳本片段如下:

/sbin/iptables -t nat -A PREROUTING -s [外網地址] -d [內網地址] -i eth0 -j DROP

以上命令將來自外網、去往內網的數據包全部丟棄。

4.外網可以訪問DMZ

爲了保護DMZ中的服務器,外網對DMZ的訪問也要加以限制。通常的思路是,只允許外網訪問DMZ中服務器所提供的特定服務,比如HTTP。

對應的防火牆腳本片段如下:

/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -d [分配給HTTP服務器的Internet上的真實IP] -s [外網地址] -i eth0 -j DNAT --to [HTTP服務器的實際IP]

/sbin/iptables -A FORWARD -p tcp -s [外網地址] -d [HTTP服務器的實際IP] -i eth0 --dport 80 -j ACCEPT

/sbin/iptables -A FORWARD -p tcp -d [外網地址] -s [HTTP服務器的實際IP] -i eth1 --sport 80 ! --syn -j ACCEPT

/sbin/iptables -t nat -A PREROUTING -s [外網地址] -d [DMZ地址] -i eth0 -j DROP

該防火牆腳本片段將開放HTTP服務,使得只有訪問DMZ中HTTP服務的數據包才能通過防火牆。

5.DMZ不能訪問內網

對應的防火牆腳本片段如下:

/sbin/iptables -A FORWARD -s [DMZ地址] -d [內網地址] -i eth1 -j DROP

以上命令將丟棄所有從DMZ到內網的數據包。

6.DMZ不能訪問外網

對應的防火牆腳本片段如下:

/sbin/iptables -t nat -A POSTROUTING -p tcp --dport 25 -d [外網地址] -s [郵件服務器的IP] -o eth0 -j SNAT --to [分配給SMTP服務器的Internet上的真實IP]

/sbin/iptables -A FORWARD -p tcp -s [郵件服務器的IP] -d [外網地址] -i eth1 --dport 25 -j ACCEPT

/sbin/iptables -A FORWARD -p tcp -d [郵件服務器的IP] -s [外網地址] -i eth0--sport 25 ! --syn -j ACCEPT

以上命令先允許DMZ中郵件服務器連接外網的SMTP服務端口(25),然後禁止其它從DMZ發往外網的數據包。

針對以上基本策略例舉了實現它們的基本規則。在實際應用中,需要根據具體情況進行設置。只要設置得當,Linux也能成爲很好的防火牆。需要補充的是,無論何種防火牆都只能提供有限的保護。設置好防火牆不等于網絡就是安全的,關鍵在于綜合運用各種安全手段。

 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
用Linux防火牆構建DMZ 摘要 針對不同資源提供不同安全級別的保護,可以考慮構建一個叫做「Demilitarized Zone」(DMZ)的區域。DMZ可以理解爲一個不同于外網或內網的特殊網絡區域。DMZ內通常放置一些不含機密信息的公用服務器,比如Web、Mail、FTP等。這樣來自外網的訪問者可以訪問DMZ中的服務,但不可能接觸到存放在內網中的公司機密或私人信息等。即使DMZ中服務器受到破壞,也不會對內網中的機密信息造成影響。(2004-11-14 14:46:52) 防守在網絡安全中的重要性不必多說。保護網絡最常見的方法就是使用防火牆。防火牆作爲網絡的第一道防線,通常放置在外網和需要保護的網絡之間。最簡單的情況是直接將防火牆放置在外網和企業網絡之間,所有流入企業網絡的數據流量都將通過防火牆,使企業的所有客戶機及服務器都處于防火牆的保護下。這對于一些中小企業來說是簡單易行的,而且這種解決方法在某些情況下也表現不錯。然而這種結構畢竟比較簡單。企業中有許多服務器、客戶機等資源需要保護,不同的資源對安全強度的要求也不同。不能用對待客戶機的安全級別來對待服務器,這樣服務器將會很危險;同樣,也不能用對待服務器的安全級別來對待客戶機,這樣用戶會感覺很不方便。 針對不同資源提供不同安全級別的保護,可以考慮構建一個叫做「Demilitarized Zone」(DMZ)的區域。DMZ可以理解爲一個不同于外網或內網的特殊網絡區域。DMZ內通常放置一些不含機密信息的公用服務器,比如Web、Mail、FTP等。這樣來自外網的訪問者可以訪問DMZ中的服務,但不可能接觸到存放在內網中的公司機密或私人信息等。即使DMZ中服務器受到破壞,也不會對內網中的機密信息造成影響。 許多防火牆産品都提供了DMZ的接口。硬件防火牆由于使用專門的硬件芯片,所以在性能和流量上有絕對的優勢。軟件防火牆的性價比非常好,一般企業使用起來效果不錯。如果使用Linux防火牆,其成本將更低。因此這裏將要介紹的是在Linux防火牆上劃分DMZ區域的方法。 構建DMZ的策略 Linux從2.4內核開始,正式使用iptables來代替以前的ipfwadm和ipchains,實現管理Linux的包過濾功能。Linux的包過濾通過一個叫netfilter的內核部件來實現。netfilter內建了三個表,其中默認表Filter中又包括3個規則鏈,分別是負責外界流入網絡接口的數據過濾的INPUT鏈、負責對網絡接口輸出的數據進行過濾的OUTPUT鏈,以及負責在網絡接口之間轉發數據過濾的FORWARD鏈。要構建一個帶DMZ的防火牆,需要利用對這些鏈的設定完成。首先要對從連接外部網絡的網卡(eth0)上流入的數據進行判斷,這是在INPUT鏈上完成。如果數據的目標地址屬于DMZ網段,就要將數據轉發到連接DMZ網絡的網卡(eth1)上;如果是內部網絡的地址,就要將數據轉發到連接內部網絡的網卡(eth2)上。表1顯示了各個網絡之間的訪問關系。 表1 網絡間訪問關系表 內網 外網 DMZ 內網 / Y Y 外網 N / Y DMZ N N / 根據表1,可以明確以下六條訪問控制策略。 1.內網可以訪問外網 內網的用戶顯然需要自由地訪問外網。在這一策略中,防火牆需要進行源地址轉換。 2.內網可以訪問DMZ 此策略是爲了方便內網用戶使用和管理DMZ中的服務器。 3.外網不能訪問內網 很顯然,內網中存放的是公司內部數據,這些數據不允許外網的用戶進行訪問。 4.外網可以訪問DMZ DMZ中的服務器本身就是要給外界提供服務的,所以外網必須可以訪問DMZ。同時,外網訪問DMZ需要由防火牆完成對外地址到服務器實際地址的轉換。 5.DMZ不能訪問內網 很明顯,如果違背此策略,則當入侵者攻陷DMZ時,就可以進一步進攻到內網的重要數據。 6.DMZ不能訪問外網 此條策略也有例外,比如DMZ中放置郵件服務器時,就需要訪問外網,否則將不能正常工作。 |||||| DMZ的實現 根據以上訪問控制策略可以設定Linux防火牆的過濾規則。下面將在一個虛構的網絡環境中,探討如何根據以上六條訪問控制策略建立相應的防火牆過濾規則。這裏的討論和具體應用會有所區別,不過這種討論將有助于實際應用。用戶在實際應用時可根據具體的情況進行設置。該虛擬環境的網絡拓撲如圖1。 圖1 DMZ網絡拓撲圖 如圖1所示,路由器連接Internet和防火牆。作爲防火牆的Linux服務器使用三塊網卡:網卡eth0與路由器相連,網卡eth1與DMZ區的Hub相連,網卡eth2與內網Hub相連。作爲一個抽象的例子,我們用「[內網地址]」來代表「192.168.1.0/24」之類的具體數值。同理還有「[外網地址]」和「[DMZ地址]」。 對于防火牆,原則之一就是默認禁止所有數據通信,然後再打開必要的通信。所以在防火牆腳本的最初,需要清空系統原有的規則,然後將INPUT、OUTPUT、FORWARD的默認規則設置爲丟棄所有數據包。 對應的防火牆腳本片段如下: # Flush out the tables and delete all user-defined chains /sbin/iptables -F /sbin/iptables -X /sbin/iptables -t nat -F /sbin/iptables -t nat -X # Drop every packet /sbin/iptables -P INPUT DROP /sbin/iptables -P OUTPUT DROP /sbin/iptables -P FORWARD DROP 接下來,逐一解釋六種策略的實現。 1.內網可以訪問外網 對應的防火牆腳本片段如下: /sbin/iptables -t nat -A POSTROUTING -s [內網地址] -d [外網地址] -o eth0 -j SNAT --to [NAT的真實IP] 當數據從連接外網的eth0流出時,要將來自內網的數據包的源地址改成Internet上的真實IP,這樣才能和外網的主機進行通信。「[NAT的真實IP]」表示分配給NAT用戶的真實IP,有幾個就寫幾個,以空格分開,但至少要寫一個。 2.內網可以訪問DMZ 對應的防火牆腳本片段如下: /sbin/iptables -A FORWARD -s [內網地址] -d [DMZ地址] -i eth2 -j ACCEPT 以上命令允許所有來自內網、目的地爲DMZ的數據包通過。 3.外網不能訪問內網 對應的防火牆腳本片段如下: /sbin/iptables -t nat -A PREROUTING -s [外網地址] -d [內網地址] -i eth0 -j DROP 以上命令將來自外網、去往內網的數據包全部丟棄。 4.外網可以訪問DMZ 爲了保護DMZ中的服務器,外網對DMZ的訪問也要加以限制。通常的思路是,只允許外網訪問DMZ中服務器所提供的特定服務,比如HTTP。 對應的防火牆腳本片段如下: /sbin/iptables -t nat -A PREROUTING -p tcp --dport 80 -d [分配給HTTP服務器的Internet上的真實IP] -s [外網地址] -i eth0 -j DNAT --to [HTTP服務器的實際IP] /sbin/iptables -A FORWARD -p tcp -s [外網地址] -d [HTTP服務器的實際IP] -i eth0 --dport 80 -j ACCEPT /sbin/iptables -A FORWARD -p tcp -d [外網地址] -s [HTTP服務器的實際IP] -i eth1 --sport 80 ! --syn -j ACCEPT /sbin/iptables -t nat -A PREROUTING -s [外網地址] -d [DMZ地址] -i eth0 -j DROP 該防火牆腳本片段將開放HTTP服務,使得只有訪問DMZ中HTTP服務的數據包才能通過防火牆。 5.DMZ不能訪問內網 對應的防火牆腳本片段如下: /sbin/iptables -A FORWARD -s [DMZ地址] -d [內網地址] -i eth1 -j DROP 以上命令將丟棄所有從DMZ到內網的數據包。 6.DMZ不能訪問外網 對應的防火牆腳本片段如下: /sbin/iptables -t nat -A POSTROUTING -p tcp --dport 25 -d [外網地址] -s [郵件服務器的IP] -o eth0 -j SNAT --to [分配給SMTP服務器的Internet上的真實IP] /sbin/iptables -A FORWARD -p tcp -s [郵件服務器的IP] -d [外網地址] -i eth1 --dport 25 -j ACCEPT /sbin/iptables -A FORWARD -p tcp -d [郵件服務器的IP] -s [外網地址] -i eth0--sport 25 ! --syn -j ACCEPT 以上命令先允許DMZ中郵件服務器連接外網的SMTP服務端口(25),然後禁止其它從DMZ發往外網的數據包。 針對以上基本策略例舉了實現它們的基本規則。在實際應用中,需要根據具體情況進行設置。只要設置得當,Linux也能成爲很好的防火牆。需要補充的是,無論何種防火牆都只能提供有限的保護。設置好防火牆不等于網絡就是安全的,關鍵在于綜合運用各種安全手段。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 
 熱帖排行
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有