演示:Linux工程环境应用实训(防火墙、NAT、静态路由)详细配步骤
各位童鞋注意:該實(shí)驗(yàn)完成可以使用GNS3與4虛擬機(jī)進(jìn)行橋接,然后在一臺(tái)物理計(jì)算機(jī)上完成,不雖要去拿真正的4臺(tái)服務(wù)器或者交換機(jī)路由器來(lái)連成一個(gè)網(wǎng)絡(luò),現(xiàn)在大家都使用網(wǎng)絡(luò)仿真教學(xué)與實(shí)驗(yàn)!
Linux工程環(huán)境應(yīng)用實(shí)訓(xùn)(防火墻、NAT、靜態(tài)路由)有詳細(xì)配步驟版
配套演示錄像:http://edu.51cto.com/course/course_id-499.html
檔案編號(hào)ID:sec01
實(shí)訓(xùn)重點(diǎn):因?yàn)長(zhǎng)inux操作系統(tǒng)(企業(yè)版)在現(xiàn)代化的工業(yè)環(huán)境中應(yīng)用越來(lái)越多、因?yàn)樗焐邆浔萕indows更高的開(kāi)放性、可移植性、安全性。所以在工業(yè)環(huán)境中網(wǎng)絡(luò)管理員時(shí)常使用Linux來(lái)搭建邊界網(wǎng)絡(luò)服務(wù)器,比如防火墻、NAT等。在這個(gè)實(shí)訓(xùn)中的重點(diǎn)任務(wù)是使用Redhat Linux Enterprise版本來(lái)實(shí)現(xiàn)簡(jiǎn)單狀態(tài)防火墻和NAT服務(wù)器的建設(shè)。
支持實(shí)訓(xùn)平臺(tái)的環(huán)境:使用虛擬實(shí)驗(yàn)完成4個(gè)服務(wù)器(2臺(tái)windows服務(wù)器)1臺(tái)Redhat Linux Enterprise服務(wù)器、1臺(tái)Redhat Linux客戶端。
實(shí)訓(xùn)拓?fù)浼懊枋?#xff1a;具體網(wǎng)絡(luò)環(huán)境如下圖1所示,網(wǎng)絡(luò)環(huán)境被分為企業(yè)內(nèi)部網(wǎng)絡(luò)與Internet兩部分組成,嚴(yán)格區(qū)分RFC1918地址和公共IP,在它們之間不能啟動(dòng)任何動(dòng)態(tài)路由協(xié)議,因?yàn)樵谡鎸?shí)環(huán)境中即便是相互公告路由也沒(méi)有任何意義,因?yàn)殡娦胚\(yùn)營(yíng)商決不可能讓私有網(wǎng)絡(luò)的路由發(fā)向Internet,當(dāng)然每個(gè)企業(yè)邊界訪問(wèn)Internet的一條必備的路由是允許的。
實(shí)訓(xùn)需求:
首先復(fù)位防火墻上的已經(jīng)存在的規(guī)則、用戶自定義的規(guī)則、所有“鏈”計(jì)數(shù)器。然后第一次打印iptales filter的狀態(tài),再?gòu)?fù)位NAT的所有規(guī)則,然后打印NAT狀態(tài)(其目標(biāo)在于實(shí)驗(yàn)前和實(shí)驗(yàn)后的效果好作對(duì)比)
配置基于Linux的NAT服務(wù)器,要求該服務(wù)器能將192.168.200.0/24子網(wǎng)翻譯成out接口202.202.1.1去訪問(wèn)Internet,事實(shí)上是去執(zhí)行一個(gè)SNAT的翻譯配置,必須驗(yàn)證配置結(jié)果,使得企業(yè)內(nèi)主機(jī)可以成功的訪問(wèn)Internet上的202.202.2.100的Web服務(wù)器。
使用iptables配置基本的防火墻策略:配置默認(rèn)安全策略拒絕一切從外部世界主動(dòng)INPUT的數(shù)據(jù)包,而允許OUTPUT和FORWARD數(shù)據(jù)包。將服務(wù)器的lo接口配置為受信接口,可以接收所有數(shù)據(jù)包,否則會(huì)出現(xiàn)Linux防火墻自己ping不通自己。
在Linux的防火墻上外掛狀態(tài)模塊(state),允許已經(jīng)建立了連接,或者由防火墻主動(dòng)發(fā)向外部,然后返回的數(shù)據(jù)包進(jìn)入防火墻、配置防火墻防御TCP洪水***和ICMP洪水***(調(diào)用內(nèi)核管理功能實(shí)現(xiàn))。
要求Internet主機(jī)訪問(wèn)linux防火墻外部接口地址202.202.1.1的Web服務(wù)時(shí),防火墻使用DNAT將202.202.1.1轉(zhuǎn)換成192.168.200.100的80號(hào)端口應(yīng)答,事實(shí)上,就是讓企業(yè)內(nèi)部的Web服務(wù)器對(duì)外部世界提供伺服功能,只是外部世界的主機(jī)看到的服務(wù)器IP地址是202.202.1.1而不是真實(shí)的192.168.200.100,必須測(cè)試外部主機(jī)成功訪問(wèn)內(nèi)部的Web。
再次打印iptales filter和NAT的狀態(tài),對(duì)比配置前后的區(qū)別。
配置與檢測(cè)過(guò)程:
第一步:基于linux操作系統(tǒng)的NAT和防火墻服務(wù)器配置IP地址(該服務(wù)器應(yīng)該有兩張網(wǎng)卡,一張對(duì)內(nèi);一張對(duì)外),首先保證它與內(nèi)部網(wǎng)絡(luò)中的所有主機(jī)能夠正常的通信,為linux的防火墻配置IP地址,如下圖2和圖3所示。
當(dāng)然,除了使用圖型化界面來(lái)配置Linux服務(wù)器的IP地址以外,還可以使用指令和編輯etc/sysconfig/network-scripts/ifcfg-ethx(x表示網(wǎng)卡的編號(hào))來(lái)完成IP地址配置。
當(dāng)完成IP地址配置后,可以使用ifconfig查看兩張網(wǎng)卡的IP地址,如下圖4所示。
現(xiàn)在到內(nèi)部主機(jī)192.168.200.100上為其配置IP地址及其它TCP/IP參數(shù),如下圖5所示,然后在Linux的NAT服務(wù)器上ping 192.168.200.100如果配置沒(méi)有錯(cuò)誤,Linux的服務(wù)器應(yīng)該能成功ping通192.168.200.100如下圖6所示。
然后如下所述的指令配置該環(huán)境中模擬運(yùn)營(yíng)商的IPS路由器,注意該路由器上的IP地址全部為公共網(wǎng)絡(luò)IP(對(duì)Internet有效的地址),配置完成后在Linux的NAT服務(wù)器上測(cè)試與ISP路由器的連通性如下圖7所示。至此為止完成了網(wǎng)絡(luò)環(huán)境的基礎(chǔ)配置。
ISP路由器的配置:
isp(config)#interface e1/0
isp(config-if)#ip address 202.202.1.2 255.255.255.0
isp(config-if)#no shutdown
isp(config-if)#exit
isp(config)#interface e1/1
isp(config-if)#ip address 202.202.2.1 255.255.255.0
isp(config-if)#no shutdown
isp(config-if)#exit
第二步:簡(jiǎn)略的分析一下Linux防火墻和NAT的表,Linux防火墻和NAT都是基于iptables組成,如果使用中文直譯iptables時(shí),就是“關(guān)于IP的表”。事實(shí)上也如此,在Linux防火墻上存在多張表,每張表都定義了屬于自己的默認(rèn)安全規(guī)則與策略,而且每張talbe的用途都不一樣,下面簡(jiǎn)單描述一下iptables,如下圖8所示,iptables存在著三張表,分別是filter(過(guò)濾)、NAT(地址翻譯)、Mangle(破壞者),每張表里需又分有很多種鏈(chain)。最常用的是filter和NAT表,下面分別對(duì)filter和NAT表做理解:
Filter(過(guò)濾表):主要和進(jìn)入或者穿越Linux防火墻的數(shù)據(jù)有關(guān),是默認(rèn)的表,它下面有三個(gè)鏈,分別是INPUT、OUTPUT、FORWARD.INPUT鏈與進(jìn)入防火墻的數(shù)據(jù)有關(guān),先叛斷路由再?zèng)Q定是否允許進(jìn)入,因?yàn)槭强刂茢?shù)據(jù)進(jìn)入防火墻的鏈,所以要小心處理;OUTPUT鏈與防火墻要送向Internet的數(shù)據(jù)有關(guān),先叛斷路由再?zèng)Q定是否允許從本機(jī)轉(zhuǎn)發(fā)數(shù)據(jù)報(bào)文出去,一般都允許本許向外部發(fā)送數(shù)據(jù);FORWARD鏈與防火墻本身的流量沒(méi)有關(guān)系,當(dāng)防火墻成為路由器需要轉(zhuǎn)發(fā)流量時(shí)與該鏈有關(guān),進(jìn)入防火墻的數(shù)據(jù),不是針對(duì)防火墻本本的流量,執(zhí)行路由叛斷后直接發(fā)給FORWARD鏈處理,是否轉(zhuǎn)發(fā)數(shù)據(jù)到后端網(wǎng)絡(luò)由該鏈決定。
? NAT(NAT表):NAT表里面有三個(gè)鏈分別是PREROUTING、OUTPUT、POSTROUTING、其中PREROUTING指示路由判斷前需要進(jìn)行的規(guī)則,如下圖9所示,通常用在使用公共IP地址的Internet主機(jī)通過(guò)訪問(wèn)某個(gè)目標(biāo)公共IP就成功的訪問(wèn)處于企業(yè)網(wǎng)絡(luò)內(nèi)部使用私有網(wǎng)絡(luò)專用地址的主機(jī),圖9正是這樣的情況,這種也叫做基于目標(biāo)的NAT(DNAT),DNAT就會(huì)使用PREROUTING,因?yàn)樗仨氃诼酚芍巴瓿稍L問(wèn)目標(biāo)地址的修改,否則會(huì)導(dǎo)致路由無(wú)效;POSTROUTING指示完成路由叛斷之后再完成NAT規(guī)則,如下圖10所示,當(dāng)企業(yè)網(wǎng)絡(luò)使用私有專用IP的內(nèi)部主機(jī)發(fā)起對(duì)Internet的訪問(wèn),那么源地址就會(huì)被NAT修改為某個(gè)公共IP地址,然后才能成功的訪問(wèn)Internet,這種修改源IP地址的NAT叫基于源的NAT(SNAT),SNAT就會(huì)使用POSTROUTING。OUTPUT鏈與發(fā)送出去的數(shù)據(jù)有關(guān)。
第三步:首先復(fù)位防火墻上的已經(jīng)存在的規(guī)則、用戶自定義的規(guī)則、所有“鏈”計(jì)數(shù)器。然后第一次打印iptales filter的狀態(tài),再?gòu)?fù)位NAT的所有規(guī)則,然后打印NAT狀態(tài)(其目標(biāo)在于實(shí)驗(yàn)前和實(shí)驗(yàn)后的效果好作對(duì)比),在防火墻上執(zhí)行如下指令
指令分析:
–F ?指示清除所有已經(jīng)訂制的安全規(guī)則
-X ?指示清除所有用戶自定義的表或者鏈
-Z ?將所有鏈的計(jì)數(shù)據(jù)和流量統(tǒng)計(jì)器都?xì)w零
-t ? 指示清除iptables中具體的那張表,默認(rèn)的filter表就不用指定,如果是nat表就要指定。
查看當(dāng)前的防火墻策略中的所有表:
Iptables-save是查看當(dāng)前的防火墻策略中的所有表,執(zhí)行結(jié)果如圖11所示。顯示filter和NAT表的任何鏈都被配置為允許。
查看當(dāng)前的NAT表策略:
Iptables -save-t nat指示查看當(dāng)前NAT表的策略,因?yàn)槭遣榭茨硰埦唧w的表,所以必須使用參數(shù)-t,然后接具體表的名稱,來(lái)顯示該表,顯示如下圖12所示,指示NAT表關(guān)聯(lián)的各個(gè)鏈都被配置為允許。
第四步:配置基于Linux的NAT服務(wù)器,要求該服務(wù)器能將192.168.200.0/24子網(wǎng)翻譯成out接口IP202.202.1.1去訪問(wèn)Internet,事實(shí)上是去執(zhí)行一個(gè)SNAT的翻譯配置,必須驗(yàn)證配置結(jié)果,使得企業(yè)內(nèi)主機(jī)可以成功的訪問(wèn)Internet上的202.202.2.100主機(jī)
?完成SNAT的配置后,現(xiàn)在來(lái)查驗(yàn)配置效果,現(xiàn)在到企業(yè)網(wǎng)絡(luò)內(nèi)部主機(jī)192.168.200.100上ping公共網(wǎng)絡(luò)IP202.202.2.100,如下圖14所示成功ping通202.202.2.100.并讓ping 202.202.2.100處于連續(xù)ping狀態(tài),然后在目標(biāo)主機(jī)202.202.2.100上執(zhí)行協(xié)議分析,捕獲ping包,如下圖15所示,可明確的看到ping包的源地址根本不是始發(fā)主機(jī)192.168.200.100的地址,而是Linux NAT服務(wù)器的外部接口地址202.202.1.1,證實(shí)SNAT成功, 數(shù)據(jù)包的源IP翻譯成202.202.1.1。
第五步:使用iptables配置基本的防火墻策略:配置默認(rèn)安全策略拒絕一切從外部世界主動(dòng)INPUT的數(shù)據(jù)包,而允許OUTPUT鏈和FORWARD鏈的數(shù)據(jù)包。將服務(wù)器的lo接口配置為受信接口,可以接收所有數(shù)據(jù)包,否則會(huì)出現(xiàn)Linux防火墻自己ping不通自己。
在沒(méi)有開(kāi)始配置前第五步的配置需求之前,任何的外部主機(jī)都可以主動(dòng)的ping到防火墻202.202.1.1,如下圖16所示為外部主機(jī)202.202.2.100ping 202.202.1.1的效果。
參數(shù)解釋:
-P定義策略,注意大寫(xiě),后面緊跟應(yīng)用該策略的表名或者鏈名稱。
DROP表示直接丟棄
ACCEPT表示直接允許。
上面對(duì)Linux防火墻的配置表示對(duì)fliter表定義默認(rèn)策略規(guī)則,雖然沒(méi)有申明是fliter表,但是如果沒(méi)有使用-t申請(qǐng)表類型,那么默認(rèn)就是fliter,規(guī)則指示任何主動(dòng)進(jìn)入防火墻的的數(shù)據(jù)都會(huì)被丟棄,然后防火墻可以直接向外部發(fā)送數(shù)據(jù),當(dāng)防火墻是路由器或者NAT設(shè)備時(shí)也可以直接轉(zhuǎn)發(fā)數(shù)據(jù)。當(dāng)完成上述配置后,再到外部主機(jī)202.202.2.100上,現(xiàn)在不能再ping 202.202.1.1(防火墻外部接口IP),如下圖17所示,因?yàn)楝F(xiàn)在進(jìn)入防火墻的流量被INPUT DROP所拒絕。
參數(shù)解釋:
-i 指定數(shù)據(jù)包進(jìn)入的網(wǎng)絡(luò)接口,該實(shí)例是lo(表示環(huán)回接口,就是自己)
-j 指定行為,可以是接受、拒絕、丟棄、或者是記錄,該實(shí)例是ACCEPT。
再次測(cè)試防火墻讓自己ping自己,如下圖19所示成功ping通自己。
第六步:在Linux的防火墻上外掛狀態(tài)模塊(state),允許已經(jīng)建立了連接,或者由防火墻主動(dòng)發(fā)向外部,然后返回的數(shù)據(jù)包進(jìn)入防火墻、配置防火墻防御TCP洪水***和ICMP洪水***(調(diào)用內(nèi)核管理功能實(shí)現(xiàn))。
首先理解什么是狀態(tài)模塊:
它是一個(gè)幫助我們分析,現(xiàn)進(jìn)入防火墻的數(shù)據(jù)包,是否是由內(nèi)部網(wǎng)絡(luò)或者防火墻本身主動(dòng)請(qǐng)求的響應(yīng)數(shù)據(jù),如果是響應(yīng)數(shù)據(jù),防火墻就允許進(jìn)入或者通過(guò)防火墻,通常這種數(shù)據(jù)的具備定的標(biāo)識(shí)信息,比如:TCP標(biāo)記中的SYN=1 ACK=1。如果是外部主動(dòng)連接到防火墻或者試圖主動(dòng)穿越防火墻的數(shù)據(jù),將其拒絕,通常這種數(shù)據(jù)也有相關(guān)的標(biāo)記,比如:TCP標(biāo)記中SYN=1 ACK=0.
注意:建議大家再獨(dú)立學(xué)習(xí)一下?tīng)顟B(tài)防火墻的相關(guān)知識(shí),因?yàn)槔斫饬藸顟B(tài)防火墻的知識(shí),會(huì)更好理解這里所提到的狀態(tài)模塊,而且基于狀態(tài)進(jìn)行叛斷的防火墻并不是Linux這門(mén)課程的專利,現(xiàn)今信息安全市場(chǎng)上所使用的防火墻基本上都集成有狀態(tài)判斷功能,所以這對(duì)于推動(dòng)整個(gè)安全技術(shù)的學(xué)習(xí)有很大價(jià)值。
參數(shù)解釋:
-A 針對(duì)具體的鏈新增加一個(gè)規(guī)則,本例是針對(duì)filter表的INPUT鏈。
-i 申明檢測(cè)從哪個(gè)接口進(jìn)入的數(shù)據(jù),本例是防火墻的外部接口eth2。
-m 申明防火墻外掛模塊的類型,本例是外掛防火墻的state模塊。
--state 申明檢測(cè)數(shù)據(jù)包的狀態(tài),一般情況下有INVALID(無(wú)效)、 ESTABLISHED (成功連接)、NEW(新連接)、RELATED(關(guān)聯(lián))幾種類型的狀態(tài)。一定要分別理解這幾種狀態(tài)的特點(diǎn),這并是Linux的課程,而是網(wǎng)絡(luò)基礎(chǔ)或者協(xié)議分析該思考的問(wèn)題。
-j 執(zhí)行的行為,是接收還是直接丟棄。
上述配置防火墻狀態(tài)檢測(cè)的意思是:在防火墻的eth2接口的進(jìn)入方向上對(duì)數(shù)據(jù)包進(jìn)行狀態(tài)檢測(cè),如果被檢測(cè)出的數(shù)據(jù)包為關(guān)聯(lián)和成功建立連接的狀態(tài)就接受,如果是無(wú)效狀態(tài)就直接丟棄。
注意:防火墻iptables的配置腳本默認(rèn)情況下存放在/etc/sysconfig/iptables,事實(shí)上管理員可以使用VIM工具直接編輯該腳本,只是因?yàn)楸救碎L(zhǎng)期配置路由交換或其它硬件安全設(shè)備養(yǎng)成了逐條指令配置,然后最后保存的習(xí)慣,至配置方式完全可能由管理員自行選擇。但是這里需要提一下的是如果要大量修改防火墻的策略規(guī)則,比如交換機(jī)策略規(guī)則的執(zhí)行順序,那么在這種情況下強(qiáng)烈建設(shè)使用VIM工具編輯該腳本,而且圖型化的更方便,就像操作windows操作系統(tǒng)中的記事本一樣的復(fù)制粘貼換位即可。
第六步:要求Internet主機(jī)訪問(wèn)linux防火墻外部接口地址202.202.1.1的Web服務(wù)時(shí),防火墻使用DNAT將202.202.1.1轉(zhuǎn)換成192.168.200.100的80號(hào)端口應(yīng)答,事實(shí)上,就是讓企業(yè)內(nèi)部的Web服務(wù)器對(duì)外部世界提供伺服功能,只是外部世界的主機(jī)看到的服務(wù)器IP地址是202.202.1.1而不是真實(shí)的192.168.200.100,必須測(cè)試外部主機(jī)成功訪問(wèn)內(nèi)部的Web。
建議首先還是在企業(yè)內(nèi)部網(wǎng)絡(luò)中架設(shè)一臺(tái)用于測(cè)試的Web服務(wù)器。本人的Web架設(shè)如下圖20所示,以方便提供給Internet主機(jī)訪問(wèn)來(lái)測(cè)試配置結(jié)果。
有前面iptables指令的配置基礎(chǔ),來(lái)分析DNAT的配置就非常簡(jiǎn)單了,該指令表示將所有訪問(wèn)目標(biāo)為eth2接口(202.202.1.1)80號(hào)端口的流量全部翻譯并轉(zhuǎn)發(fā)到另一個(gè)目標(biāo)IP地址192.168.200.100(企業(yè)內(nèi)部私網(wǎng)上的Web)的80號(hào)端口上,因?yàn)檫@是基于目標(biāo)IP地址的NAT(DNAT)所以必須使用NAT表的PREROUTING鏈,關(guān)于一點(diǎn)前面第二步有詳細(xì)描述。
為了進(jìn)一步的證明DNAT翻譯成功,你可以在使用協(xié)議分析器完成相關(guān)的取證工作,分別對(duì)DNAT翻譯前和翻譯后進(jìn)行取證,翻譯前的取證可以基于Linux防火墻(NAT服務(wù)器)eth2接口以外的任何位置取證沒(méi)有進(jìn)行NAT翻譯的數(shù)據(jù)幀,如下圖21所示,該HTTP數(shù)據(jù)幀的源地址為公共網(wǎng)絡(luò)主機(jī)202.202.2.100,目標(biāo)地址為202.202.1.1,當(dāng)Linux的執(zhí)行DNAT翻譯后,訪問(wèn)目標(biāo)的202.202.1.1被翻譯成192.168.200.100,如下圖22所示。
總結(jié)
以上是生活随笔為你收集整理的演示:Linux工程环境应用实训(防火墙、NAT、静态路由)详细配步骤的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。