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