自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

iptables實(shí)戰(zhàn)系列:構(gòu)建DMZ

系統(tǒng) Linux
DMZ防火墻方案為要保護(hù)的內(nèi)部網(wǎng)絡(luò)增加了一道安全防線,通常認(rèn)為是非常安全的。同時(shí)它提供了一個(gè)區(qū)域放置公共服務(wù)器,從而又能有效地避免一些互聯(lián)應(yīng)用需要公開,而與內(nèi)部安全策略相矛盾的情況發(fā)生。要注意的是電子商務(wù)服務(wù)器只能用作用戶連接,真正的電子商務(wù)后臺(tái)數(shù)據(jù)需要放在內(nèi)部網(wǎng)絡(luò)中。

1、 DMZ原理

DMZ是英文“demilitarized zone”的縮寫,中文名稱為“隔離區(qū)”,也稱“非軍事化區(qū)”。它是為了解決安裝防火墻后外部網(wǎng)絡(luò)不能訪問內(nèi)部網(wǎng)絡(luò)服務(wù)器的問題,而設(shè)立的一個(gè)非安全系統(tǒng)與安全系統(tǒng)之間的緩沖區(qū),這個(gè)緩沖區(qū)位于企業(yè)內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間的小網(wǎng)絡(luò)區(qū)域內(nèi),在這個(gè)小網(wǎng)絡(luò)區(qū)域內(nèi)可以放置一些必須公開的服務(wù)器設(shè)施,如企業(yè)Web服務(wù)器、FTP服務(wù)器和論壇等。另一方面,通過這樣一個(gè)DMZ區(qū)域,更加有效地保護(hù)了內(nèi)部網(wǎng)絡(luò),因?yàn)檫@種網(wǎng)絡(luò)部署,比起一般的防火墻方案,對(duì)攻擊者來(lái)說又多了一道關(guān)卡。網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。網(wǎng)絡(luò)設(shè)備開發(fā)商利用這一技術(shù),開發(fā)出了相應(yīng)的防火墻解決方案。DMZ通常是一個(gè)過濾的子網(wǎng),DMZ在內(nèi)部網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間構(gòu)造了一個(gè)安全地帶。

DMZ示意圖
圖1  DMZ示意圖

DMZ防火墻方案為要保護(hù)的內(nèi)部網(wǎng)絡(luò)增加了一道安全防線,通常認(rèn)為是非常安全的。同時(shí)它提供了一個(gè)區(qū)域放置公共服務(wù)器,從而又能有效地避免一些互聯(lián)應(yīng)用需要公開,而與內(nèi)部安全策略相矛盾的情況發(fā)生。在DMZ區(qū)域中通常包括堡壘主機(jī)、Modem池,以及所有的公共服務(wù)器,但要注意的是電子商務(wù)服務(wù)器只能用作用戶連接,真正的電子商務(wù)后臺(tái)數(shù)據(jù)需要放在內(nèi)部網(wǎng)絡(luò)中。在這個(gè)防火墻方案中,包括兩個(gè)防火墻,外部防火墻抵擋外部網(wǎng)絡(luò)的攻擊,并管理所有內(nèi)部網(wǎng)絡(luò)對(duì)DMZ的訪問。內(nèi)部防火墻管理DMZ對(duì)于內(nèi)部網(wǎng)絡(luò)的訪問。內(nèi)部防火墻是內(nèi)部網(wǎng)絡(luò)的第三道安全防線(前面有了外部防火墻和堡壘主機(jī)),當(dāng)外部防火墻失效的時(shí)候,它還可以起到保護(hù)內(nèi)部網(wǎng)絡(luò)的功能。而局域網(wǎng)內(nèi)部,對(duì)于Internet的訪問由內(nèi)部防火墻和位于DMZ的堡壘主機(jī)控制。在這樣的結(jié)構(gòu)里,一個(gè)黑客必須通過三個(gè)獨(dú)立的區(qū)域(外部防火墻、內(nèi)部防火墻和堡壘主機(jī))才能夠到達(dá)局域網(wǎng)。攻擊難度大大加強(qiáng),相應(yīng)內(nèi)部網(wǎng)絡(luò)的安全性也就大大加強(qiáng),但投資成本也是最高的。

2、構(gòu)建DMZ

1.構(gòu)建原則

Linux從2.4內(nèi)核開始,正式使用iptables來(lái)代替以前的ipfwadm和ipchains,實(shí)現(xiàn)管理Linux的包過濾功能。Linux的包過濾通過一個(gè)叫netfilter的內(nèi)核部件來(lái)實(shí)現(xiàn)。netfilter內(nèi)建了三個(gè)表,其中默認(rèn)表Filter中又包括3個(gè)規(guī)則鏈,分別是負(fù)責(zé)外界流入網(wǎng)絡(luò)接口的數(shù)據(jù)過濾的INPUT鏈、負(fù)責(zé)對(duì)網(wǎng)絡(luò)接口輸出的數(shù)據(jù)進(jìn)行過濾的OUTPUT鏈,以及負(fù)責(zé)在網(wǎng)絡(luò)接口之間轉(zhuǎn)發(fā)數(shù)據(jù)過濾的FORWARD鏈。

要在Linux系統(tǒng)中構(gòu)建一個(gè)帶DMZ的防火墻,需要利用對(duì)這些鏈的設(shè)定完成。首先要對(duì)從連接外部網(wǎng)絡(luò)的網(wǎng)卡(eth0)上流入的數(shù)據(jù)進(jìn)行判斷,這是在INPUT鏈上完成。如果數(shù)據(jù)的目標(biāo)地址屬于DMZ網(wǎng)段,就要將數(shù)據(jù)轉(zhuǎn)發(fā)到連接DMZ網(wǎng)絡(luò)的網(wǎng)卡(eth1)上;如果是內(nèi)部網(wǎng)絡(luò)的地址,就要將數(shù)據(jù)轉(zhuǎn)發(fā)到連接內(nèi)部網(wǎng)絡(luò)的網(wǎng)卡(eth2)上。表1顯示了各個(gè)網(wǎng)絡(luò)之間的訪問許可關(guān)系:

DMZ和內(nèi)外網(wǎng)的訪問關(guān)系
表1  DMZ和內(nèi)外網(wǎng)的訪問關(guān)系

根據(jù)表,可以明確以下六條訪問控制策略:

◆內(nèi)網(wǎng)可以訪問外網(wǎng):內(nèi)網(wǎng)的用戶顯然需要自由地訪問外網(wǎng)。在這一策略中,防火墻需要進(jìn)行源地址轉(zhuǎn)換。

◆內(nèi)網(wǎng)可以訪問DMZ:此策略是為了方便內(nèi)網(wǎng)用戶使用和管理DMZ中的服務(wù)器。

◆外網(wǎng)不能訪問內(nèi)網(wǎng):內(nèi)網(wǎng)中存放的是公司內(nèi)部數(shù)據(jù),這些數(shù)據(jù)不允許外網(wǎng)的用戶進(jìn)行訪問。

◆外網(wǎng)可以訪問DMZ:DMZ中的服務(wù)器本身就是要給外界提供服務(wù)的,所以外網(wǎng)必須可以訪問DMZ。同時(shí),外網(wǎng)訪問DMZ需要由防火墻完成對(duì)外地址到服務(wù)器實(shí)際地址的轉(zhuǎn)換。

◆DMZ不能訪問內(nèi)網(wǎng):很明顯,如果違背此策略,則當(dāng)入侵者攻陷DMZ時(shí),就可以進(jìn)一步進(jìn)攻到內(nèi)網(wǎng)的重要數(shù)據(jù)。

◆DMZ不能訪問外網(wǎng):此條策略在有的情況下可能會(huì)有例外,比如DMZ中放置郵件服務(wù)器時(shí),就需要訪問外網(wǎng),否則將不能正常工作。

2.DMZ的具體實(shí)現(xiàn)

根據(jù)以上訪問控制策略可以設(shè)定Linux防火墻的過濾規(guī)則。下面將在一個(gè)虛構(gòu)的網(wǎng)絡(luò)環(huán)境中,探討如何根據(jù)以上六條訪問控制策略建立相應(yīng)的防火墻過濾規(guī)則。這里的討論和具體應(yīng)用會(huì)有所區(qū)別,不過這種討論將有助于實(shí)際應(yīng)用。用戶在實(shí)際應(yīng)用時(shí)可根據(jù)具體的情況進(jìn)行設(shè)置。該虛擬環(huán)境的網(wǎng)絡(luò)拓?fù)淙鐖D2所示。

DMZ網(wǎng)絡(luò)拓?fù)鋱D
圖2  DMZ網(wǎng)絡(luò)拓?fù)鋱D

如圖2所示,路由器連接Internet和防火墻。作為防火墻的Linux服務(wù)器使用三塊網(wǎng)卡:網(wǎng)卡eth0與路由器相連,網(wǎng)卡eth1與DMZ區(qū)的Hub相連,網(wǎng)卡eth2與內(nèi)網(wǎng)Hub相連。作為一個(gè)抽象的例子,我們用“[內(nèi)網(wǎng)地址]”來(lái)代表“192.168.1.0/24”之類的具體數(shù)值。同理還有“[外網(wǎng)地址]”和“[DMZ地址]”。 

對(duì)于防火墻,原則之一就是默認(rèn)禁止所有數(shù)據(jù)通信,然后再打開必要的通信。所以在防火墻腳本的最初,需要清空系統(tǒng)原有的規(guī)則,然后將INPUT、OUTPUT、FORWARD的默認(rèn)規(guī)則設(shè)置為丟棄所有數(shù)據(jù)包。

(1)防火墻基本設(shè)置

對(duì)應(yīng)的防火墻腳本片段如下:

# Flush out the tables and delete alluser-definedchains
/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

(2)六種策略的具體實(shí)現(xiàn)

1)內(nèi)網(wǎng)可以訪問外網(wǎng)

對(duì)應(yīng)的防火墻腳本片段如下:

/sbin/iptables -t nat -A POSTROUTING -s [內(nèi)網(wǎng)地址] -d [外網(wǎng)地址] -oeth0-j SNAT --to [NAT的真實(shí)IP]

當(dāng)數(shù)據(jù)從連接外網(wǎng)的eth0流出時(shí),要將來(lái)自內(nèi)網(wǎng)的數(shù)據(jù)包的源地址改成Internet上的真實(shí)IP,這樣才能和外網(wǎng)的主機(jī)進(jìn)行通信。“[NAT的真實(shí)IP]”表示分配給NAT用戶的真實(shí)IP,有幾個(gè)就寫幾個(gè),以空格分開,但至少要寫一個(gè)。

2)內(nèi)網(wǎng)可以訪問DMZ

對(duì)應(yīng)的防火墻腳本片段如下:

/sbin/iptables -A FORWARD -s [內(nèi)網(wǎng)地址] -d [DMZ地址] -i eth2-jACCEPT

以上命令允許所有來(lái)自內(nèi)網(wǎng)、目的地為DMZ的數(shù)據(jù)包通過。

3)外網(wǎng)不能訪問內(nèi)網(wǎng)

對(duì)應(yīng)的防火墻腳本片段如下:

/sbin/iptables -t nat -A PREROUTING -s [外網(wǎng)地址] -d [內(nèi)網(wǎng)地址] -i eth0-jDROP

以上命令將來(lái)自外網(wǎng)、去往內(nèi)網(wǎng)的數(shù)據(jù)包全部丟棄。

4)外網(wǎng)可以訪問DMZ

為了保護(hù)DMZ中的服務(wù)器,外網(wǎng)對(duì)DMZ的訪問也要加以限制。通常的思路是,只允許外網(wǎng)訪問DMZ中服務(wù)器所提供的特定服務(wù),比如HTTP。

對(duì)應(yīng)的防火墻腳本片段如下:

/sbin/iptables -t nat -A PREROUTING -p tcp --dport 80-d[分配給HTTP服務(wù)器的Internet上的真實(shí)IP] -s [外網(wǎng)地址] -i eth0 -j DNAT--to[HTTP服務(wù)器的實(shí)際IP]
/sbin/iptables -A FORWARD -p tcp -s [外網(wǎng)地址] -d [HTTP服務(wù)器的實(shí)際IP]-ieth0 --dport 80 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -d [外網(wǎng)地址] -s [HTTP服務(wù)器的實(shí)際IP]-ieth1 --sport 80 ! --syn -j ACCEPT
/sbin/iptables -t nat -A PREROUTING -s [外網(wǎng)地址] -d [DMZ地址] -ieth0-j DROP

該防火墻腳本片段將開放HTTP服務(wù),使得只有訪問DMZ中HTTP服務(wù)的數(shù)據(jù)包才能通過防火墻。

5)DMZ不能訪問內(nèi)網(wǎng)

對(duì)應(yīng)的防火墻腳本片段如下:

/sbin/iptables -A FORWARD -s [DMZ地址] -d [內(nèi)網(wǎng)地址] -i eth1 -jDROP

以上命令將丟棄所有從DMZ到內(nèi)網(wǎng)的數(shù)據(jù)包。

6)DMZ不能訪問外網(wǎng)

對(duì)應(yīng)的防火墻腳本片段如下:

/sbin/iptables -t nat -A POSTROUTING -p tcp --dport 25 -d[外網(wǎng)地址]-s [郵件服務(wù)器的IP] -o eth0 -j SNAT --to[分配給SMTP服務(wù)器的Internet上的真實(shí)IP]
/sbin/iptables -A FORWARD -p tcp -s [郵件服務(wù)器的IP] -d [外網(wǎng)地址] -ieth1--dport 25 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp -d [郵件服務(wù)器的IP] -s [外網(wǎng)地址]-ieth0--sport 25 ! --syn -j ACCEPT

以上命令先允許DMZ中郵件服務(wù)器連接外網(wǎng)的SMTP服務(wù)端口(25),然后禁止其它從DMZ發(fā)往外網(wǎng)的數(shù)據(jù)包。

針對(duì)以上基本策略例舉了實(shí)現(xiàn)它們的基本規(guī)則。在實(shí)際應(yīng)用中,需要根據(jù)具體情況進(jìn)行設(shè)置。只要設(shè)置得當(dāng),Linux也能成為很好的防火墻。需要補(bǔ)充的是,無(wú)論何種防火墻都只能提供有限的保護(hù)。設(shè)置好防火墻不等于網(wǎng)絡(luò)就是安全的,關(guān)鍵在于綜合運(yùn)用各種安全手段。 

【編輯推薦】

  1. iptables實(shí)戰(zhàn)系列:通過NAT轉(zhuǎn)發(fā)實(shí)現(xiàn)私網(wǎng)對(duì)外發(fā)布信息
  2. iptables 中文man頁(yè)面
  3. iptables入門:郵件服務(wù)器簡(jiǎn)單防護(hù)
責(zé)任編輯:yangsai 來(lái)源: 51CTO.com
相關(guān)推薦

2011-08-18 10:22:44

2011-09-06 16:31:58

iptablesNAT轉(zhuǎn)發(fā)

2011-09-27 11:09:13

2011-03-15 09:10:43

iptables防火墻

2024-07-26 16:39:33

鴻蒙系統(tǒng)開源構(gòu)建系統(tǒng)

2011-03-15 10:48:47

2011-03-15 17:12:11

2017-05-26 11:00:38

Python算法

2021-05-17 09:27:07

項(xiàng)目實(shí)戰(zhàn)優(yōu)化項(xiàng)目構(gòu)建時(shí)間

2012-09-27 10:21:00

2012-09-28 09:44:32

2020-08-24 11:48:49

人工智能

2014-11-03 09:31:55

2021-12-15 09:21:59

Webpack 前端Sourcemap

2022-06-24 07:08:24

OHOS自定義服務(wù)

2022-09-06 10:39:38

Docker鏡像構(gòu)建

2022-01-07 15:11:27

項(xiàng)目Go 框架

2011-08-10 10:48:48

2013-05-27 09:32:07

構(gòu)建私有云OpenStack開源云計(jì)算

2018-04-23 13:10:01

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)