版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
Linux網(wǎng)絡(luò)管理1項目引入在Internet網(wǎng)絡(luò)世界漫游,隨時都可能遭到各種惡意攻擊,這些惡意攻擊可能導致的后果是上網(wǎng)賬號被竊取冒用、銀行賬號被盜用、電子郵件密碼被修改、財務數(shù)據(jù)被利用、機密文件丟失、隱私曝光等等,甚至黑客通過遠程控制刪除硬盤上所有的資料數(shù)據(jù),使整個計算機系統(tǒng)架構(gòu)全面崩潰。幸運的是,我們可以通過使用防火墻來降低這些風險。防火墻旨在檢查往來于Internet間的信息。對于連接到網(wǎng)絡(luò)上的Linux系統(tǒng)來說,防火墻是必不可少的防御機制,它只允許合法的網(wǎng)絡(luò)流量進出系統(tǒng),而禁止其它任何網(wǎng)絡(luò)流量?!皀etfilter/iptablesIP信息包過濾系統(tǒng)”是集成到Linux內(nèi)核的防火墻解決方案。Linux核心里的netfilter子系統(tǒng)除了完成的網(wǎng)絡(luò)防火墻功能,還可以進行網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)、數(shù)據(jù)包(package)記錄、流量統(tǒng)計等。iptables是用戶操作netfilter的唯一工具接口。為敘述便利,以下敘述將不嚴格區(qū)分iptables與netfilter。2項目環(huán)境圖是一種常見的網(wǎng)絡(luò)環(huán)境拓撲圖。本項目主要圍繞主機—Linux防火墻/路由器構(gòu)建進行設(shè)計,本項目中在“Linux防火墻/路由器”主機安裝3塊網(wǎng)卡。一塊網(wǎng)卡(Linux系統(tǒng)識別為eth0,IP地址為)連接網(wǎng)段為192.168.0的局域網(wǎng)(LAN);另一塊網(wǎng)卡(系統(tǒng)識別為eth1,IP地址為66)連接網(wǎng)段為192.168.1的局域網(wǎng);第3塊網(wǎng)卡(系統(tǒng)識別為eth2,IP地址可以為公網(wǎng)地址,也可以是上層局域網(wǎng)地址,本項目采用一個假設(shè)公有地址8)連接Internet或上層局域網(wǎng)。3項
目
10Linux防火墻實現(xiàn)——iptables基本任務:1)使用iptables搭建簡單防火墻;2)使用ufw防火墻。拓展任務:1)構(gòu)建一個更完善的防火墻;2)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT);3)iptables與Squid透明代理;4)使用FireStarter防火墻。4任務1使用iptables搭建簡單防火墻本任務主要構(gòu)建能夠完成訪問外部資源,但不提供服務的Linux桌面型主機安全策略。對常見的網(wǎng)絡(luò)環(huán)境中選取一部分并簡化作為任務實驗環(huán)境,如圖所示,局域網(wǎng)環(huán)境是通過上層LAN而不是直接連接Internet,構(gòu)造如此環(huán)境并不影響測試。5iptables是通過一些規(guī)則、策略構(gòu)成的表對通過數(shù)據(jù)包進行處理。iptables的語法相當多,可以分為規(guī)則清除,定義策略,添加,插入、刪除規(guī)則等幾種。以下將依照搭建防火墻的過程(規(guī)則清除→定義策略→添加、插入、刪除規(guī)則→保存規(guī)則)進行。1.查看當前iptables信息iptables內(nèi)建三個表:filter、nat以及mangle,每個表都被預先設(shè)置了一或多個代表各攔截點的鏈,其中filter預設(shè)的三個INPUT、FORWARD、OUTPUT鏈。對iptables設(shè)置規(guī)則實質(zhì)是對iptables表的鏈設(shè)置規(guī)則,更詳細的參考后文歸納說明部分或其他資料。在做進一步操作之前,我們先查看iptables表信息,初步了解iptables。61)查看filter表信息。使用“iptables–L”默認是查看表filter的鏈。在“Linux防火墻/路由器”主機輸入如下(如果沒有特殊說明,以下都將在“Linux防火墻/路由器”進行操作)。student@ubuntu:~$sudoiptables-LChainINPUT(policyACCEPT)//INPUT鏈默認策略為接受所有包targetprotoptsourcedestination//INPUT鏈沒有設(shè)置規(guī)則ChainFORWARD(policyACCEPT)//FORWARD鏈默認策略為接受所有包targetprotoptsourcedestination//FORWARD鏈沒有設(shè)置規(guī)則ChainOUTPUT(policyACCEPT)//OUTPUT鏈默認策略為接受所有包targetprotoptsourcedestination//OUTPUT鏈沒有設(shè)置規(guī)則72)查看nat表的規(guī)則。從上看出Linux系統(tǒng)nat表有PREROUTING、POSTROUTING、OUTPUT鏈,默認策略對于任何包也都接受,并沒有設(shè)置規(guī)則。student@ubuntu:~$sudoiptables-tnat-LChainPREROUTING(policyACCEPT)//PREROUTING鏈默認策略為接受所有包targetprotoptsourcedestinationChainPOSTROUTING(policyACCEPT)//POSTROUTING鏈默認策略為接受所有包targetprotoptsourcedestinationChainOUTPUT(policyACCEPT)//OUTPUT鏈默認策略為接受所有包targetprotoptsourcedestinationstudent@ubuntu:~$83)查看nat表的詳細信息。student@ubuntu:~$sudoiptables-L-vChainINPUT(policyACCEPT683packets,53617bytes)//683表示INPUT鏈通過的數(shù)據(jù)包數(shù)量,53617表示通過數(shù)據(jù)量
pktsbytestargetprotoptinoutsourcedestinationChainFORWARD(policyACCEPT0packets,0bytes)//FORWARD鏈還沒有數(shù)據(jù)包通過pktsbytestargetprotoptinoutsourcedestinationChainOUTPUT(policyACCEPT745packets,53775bytes)pktsbytestargetprotoptinoutsourcedestination92.規(guī)則清除一般設(shè)置iptables之前,首先要清除所有以前設(shè)置的規(guī)則。雖然很多情況下它什么也不做,但是保險起見,不妨小心一點吧。student@ubuntu:~$sudoiptables–F//清除默認表filter所有的設(shè)置規(guī)則student@ubuntu:~$sudoiptables–X//刪除表filter中用戶建立的鏈student@ubuntu:~$sudoiptables-tnat–F//清除表nat所有的設(shè)置規(guī)則student@ubuntu:~$sudoiptables-tnat-X//清除表nat中用戶建立的鏈103.定義策略規(guī)則清除后,接下來就是對鏈定義策略,策略就是當鏈的規(guī)則都相符是數(shù)據(jù)包的默認動作。從上面查看表信息得知,iptables表的鏈沒有設(shè)置規(guī)則,且對任何數(shù)據(jù)包的策略都是接受的。顯然,這是一種過于寬松的防火墻。1)定義策略之前檢查網(wǎng)絡(luò)連通性student@ubuntu:~$ping-c3//測試回環(huán)網(wǎng)絡(luò)接口lo┆3packetstransmitted,3received,0%packetloss,time2007msrttmin/avg/max/mdev=0.058/0.384/1.025/0.453msstudent@ubuntu:~$ping-c3//測試局域網(wǎng)絡(luò)其他主機┆3packetstransmitted,3received,0%packetloss,time2003msrttmin/avg/max/mdev=0.209/3.032/8.624/3.954ms112)定義filter表的INPUT鏈策略首先,定義一個非常嚴格的策略。student@ubuntu:~$sudoiptables-PINPUTDROP//設(shè)置Filter的INPUT鏈策略為丟棄所有包INPUT鏈是處理那些進入Linux主機的數(shù)據(jù)包。上命令將會為構(gòu)建一個非?!鞍踩钡姆阑饓Γ茈y有哪個黑客(hacker)能攻破這樣的主機,因為它將所有從網(wǎng)絡(luò)想進入你主機的數(shù)據(jù)丟棄(drop)了。這當然是安全過頭了,此時主機將相當于沒有網(wǎng)絡(luò)。123)檢測配置如果ping,就會發(fā)現(xiàn)屏幕一直停在那里,因為ping收不到任何回應,必須按“Ctrl+C”強行終止。student@ubuntu:~$sudoiptables–L//查看Filter表信息ChainINPUT(policyDROP)//Filter表的INPUT鏈策略為DROP,拒絕任何包通過targetprotoptsourcedestination┆student@ubuntu:~$ping-c3 //測試回環(huán)網(wǎng)絡(luò)接口loPING()56(84)bytesofdata.---pingstatistics---3packetstransmitted,0received,100%packetloss,time2010msstudent@ubuntu:~$ping//測試本地局域網(wǎng)PING()56(84)bytesofdata.---pingstatistics---9packetstransmitted,0received,100%packetloss,time8041ms134)定義其他鏈策略雖然Ubuntu系統(tǒng)其他鏈默認策略為允許所有包,但保險起見還是重新設(shè)置。student@ubuntu:~$sudoiptables-POUTPUTACCRPT//Filter設(shè)置OUTPUT鏈策略允許所有包student@ubuntu:~$sudoiptables-PFORWARDACCRPT//FORWARD鏈策略允許所有包student@ubuntu:~$sudoiptables–tnat-PPREROUTINGACCRPT//策略允許所有包student@ubuntu:~$sudoiptables–tnat-POUTPUTACCRPT//策略允許所有包student@ubuntu:~$sudoiptables–tnat-PPOSTROUTINGACCRPT//策略允許所有包144.定義規(guī)則1)連通局域網(wǎng)通過上面定義的策略,Linux主機就好比是一個沒有網(wǎng)卡的主機。以下的規(guī)則將使主機能夠與局域網(wǎng)連通。student@ubuntu:~$iptables-AINPUT-i!eth1-jACCEPT這條規(guī)則的意思是:接受所有來源不是網(wǎng)絡(luò)接口eth1的數(shù)據(jù)。前面已經(jīng)說明,Linux主機有三塊網(wǎng)卡,因此將有四個網(wǎng)絡(luò)接口:eth0、eth1分別連接不同局域網(wǎng),loop是回環(huán)網(wǎng)(localhost),eth2連接internet或上層網(wǎng)絡(luò)接口(如果是采用在是adsl上網(wǎng),規(guī)則修改為“iptables-AINPUT-i!ppp0-jACCEPT),因此添加上述規(guī)則,即允許了局域網(wǎng)的訪問,當然也可以訪問lo接口。152)檢測測試回環(huán)地址與局域網(wǎng)其他主機。結(jié)果顯示通過主機與eth0接口連接的局域網(wǎng)絡(luò)連通。student@ubuntu:~$sudoiptables-L–v//查看filter規(guī)則,注意INPUT鏈規(guī)則變化ChainINPUT(policyDROP820packets,51677bytes)pktsbytestargetprotoptinoutsourcedestination72240969ACCEPTall--!eth1anyanywhereanywhere//上條記錄就是剛添加的規(guī)則┆student@ubuntu:~$ping-c3//測試回環(huán)網(wǎng)絡(luò)接口lo┆3packetstransmitted,3received,0%packetloss,time1998msrttmin/avg/max/mdev=0.128/0.122/0.125/0.009msstudent@ubuntu:~$ping-c3//測試局域網(wǎng)絡(luò)其他主機┆3packetstransmitted,3received,0%packetloss,time1999msrttmin/avg/max/mdev=0.262/0.293/0.339/0.038ms163)允許主機訪問Web站點雖然能夠進行本地局域網(wǎng)絡(luò)訪問了,但我們主機還不能訪問Internet上Web站點,添加如下規(guī)則。student@ubuntu:~$sudoiptables-AINPUT-ieth1-ptcp--sport80-jACCEPT允許來自網(wǎng)絡(luò)接口eth1(eth1接口能夠通過上層LAN能夠連接internet),并且來源端口是80的數(shù)據(jù)進入你的計算機(80端口正是www服務所使用的端口)。查看一下查看Filter表信息,顯示如下。student@ubuntu:~$sudoiptables-L-v//查看規(guī)則ChainINPUT(policyDROP233packets,23252bytes)pktsbytestargetprotoptinoutsourcedestination262K12MACCEPTall--!eth1anyanywhereanywhere00ACCEPTtcp--eth1anyanywhereanywheretcpspt:www┆17到目前為止,應該能夠連接Internet瀏覽網(wǎng)頁,在主機瀏覽器中分別輸入(百度網(wǎng)站的IP地址,建議輸入之前在其他計算機上重新確認IP是否正確)與測試。圖12.7所示是測試顯示結(jié)果,其中上部分是直接使用IP地址,下半部分是使用域名。測試表明,使用IP地址能夠訪問,而使用域名出問題了,怎么回事啊,自己先想想吧。184)打開dns端口使用IP地址能夠訪問,而使用域名出問題了,問題肯定就出現(xiàn)在域名解析上。因為域名解析使用與Web不同的端口,因此要打開端口53。student@ubuntu:~$sudoiptables-AINPUT-ieth1-pudp--sport53-jACCEPT注意,域名解析使用的是udp協(xié)議。查看Filter表信息,顯示如下。student@ubuntu:/etc/iptables$sudoiptables-L–v//查看規(guī)則ChainINPUT(policyDROP319packets,40985bytes)pktsbytestargetprotoptinoutsourcedestination262K13MACCEPTall--!eth1anyanywhereanywhere1358830KACCEPTtcp--eth1anyanywhereanywheretcpspt:www00ACCEPTudp--eth1anyanywhereanywhereudpspt:domain┆19在主機瀏覽器中再使用IP地址與域名測試,圖12.8所示是測試顯示結(jié)果,其中上部分是直接使用IP地址,下半部分是使用域名。205.存儲/恢復iptables表iptables設(shè)置的規(guī)則在系統(tǒng)重新啟動后將消失,因此必須進行規(guī)則保存。student@ubuntu:~$sudosh-c"iptables-save>iptabels-rule“iptables-save是存儲規(guī)則的命令,但默認是在屏幕顯示,因此要使用輸出重定向符定向到文件。如果要恢復保存的規(guī)則,如下。student@ubuntu:~$sudosh-c"iptables-restore>iptabels-rule"21任務2使用ufw防火墻ufw是Ubuntu下的一個簡易的防火墻配置工具,底層還是調(diào)用iptables來處理的,雖然功能較簡單,但對桌面型應用來說比較實用,基本常用功能都有,使用也較為容易。演示22相關(guān)知識iptables機制iptables能夠為Linux個人計算機系統(tǒng)創(chuàng)建一個防火墻,也可以為一個子網(wǎng)創(chuàng)建防火墻以保護其它的系統(tǒng)平臺。iptables只讀取數(shù)據(jù)包頭,不會給信息流增加負擔,也無需進行驗證。23相關(guān)知識1.表、攔截點、鏈iptables將許多組繁雜的規(guī)則集成組織成容易管理的形式,以便管理員可以進行分組測試,或關(guān)閉、啟動某組規(guī)則。Linux核心的包處理流程中,共設(shè)置了五個攔截點(hookpoints),分別是PREROUTING、INPUT、FORWARD、POSTROUTING以及OUTPUT。內(nèi)建鏈只能作用在這些攔截點;可以針對每個攔截點設(shè)置一系列處理規(guī)則,每條規(guī)則各代表一次影響(或監(jiān)測)包處理流程的機會。攔截點的作用,以及各攔截適合處理的包類型,見表。攔截點適合處理的包類型FORWARD要通過主機的包,從一個網(wǎng)絡(luò)接口進去,然后從另一個網(wǎng)絡(luò)接口出去INPUT即將交給本機進程處理的包OUTPUT本機進程剛剛產(chǎn)生的包POSTROUTING即將從網(wǎng)絡(luò)接口發(fā)出的包PREROUTING剛剛抵達網(wǎng)絡(luò)接口的有效包24另一面,為用戶操作方便,iptables依據(jù)應用內(nèi)建三個表:filter、nat以及mangle,每個表都被預先設(shè)置了一或多個代表各攔截點的鏈。例如,filter預設(shè)的三個FORWARD、INPUT、OUTPUT鏈。這三個內(nèi)建表的作用,參考表拓展:我們??吹胶芏噘Y料有著“nat表格的PREROUTING鏈”這樣的提法,隱喻著鏈是屬于表格。然而,鏈與表格兩者之間并沒有統(tǒng)屬關(guān)系,最多只有隱諱的關(guān)聯(lián)性而已。鏈(chains)的真正含意是“包(package)路徑上的攔截點”,而表格(tables)則是象征“處理效果”。然而,為了表達上的方便,這里仍免不了出現(xiàn)“某表格的某鏈”之類的表述。表用途說明nat已經(jīng)“連線追蹤”(connettiontracking)機制提供的線索來修改包的來源地址或目的地址,以達成連線追蹤的效果,nat表內(nèi)建的鏈PREROUTING、POSTROUTING以及OUTPUT。filter用于設(shè)定“入境、穿越、出境”三種性質(zhì)的處理原則,內(nèi)建的filter表的鏈包括INPUT、FORWARD以及OUTPUT。使用iptables時,如果沒有刻意以-t指出要操作的表,iptables就假設(shè)你要操作filter表mangle用于執(zhí)行特殊的包內(nèi)容修改,例如裁掉IPoptions(需搭配擴展模組)mangle表內(nèi)建的鏈包括PREROUTING、INPUT、FORWARD、POSTROUTING以及OUTPUT25圖10.6、10.7、10.8所示分別展示了表與鏈的三種有效組合,以及各種組合所象征的包處理流程。其中圖12.6所示是包經(jīng)過“網(wǎng)絡(luò)地址轉(zhuǎn)換”(NAT)的流程,相關(guān)鏈是作用于nat表。圖10.7所示是包流經(jīng)“包過濾系統(tǒng)”的流程,相關(guān)鏈是作用于filter(過濾)表。圖10.8所示是包流經(jīng)“包內(nèi)容調(diào)整系統(tǒng)”的流程,相關(guān)鏈是作用于mangle表。但為了講述簡便,本書將不詳細介紹mangle表。圖10.6nat表與相關(guān)鏈圖10.7filter表與相關(guān)鏈圖10.8mangle表與相關(guān)鏈262.包(package)的流程當包流經(jīng)鏈時,必須依序通過該鏈里每一條規(guī)則的檢驗。若包符合某條規(guī)則的“篩選條件”(match),則將包交給該規(guī)則的“目標”(target)來處理,否則,就繼續(xù)由同鏈里的下一條規(guī)則予以檢驗。倘若包順利通過鏈里的所有規(guī)則(不符合任何規(guī)則的篩選條件),則以鏈結(jié)的“策略”。包實際會經(jīng)過哪些鏈,取決于包本身的性質(zhì)(轉(zhuǎn)交、輸入、輸出、繞回),表12.3到表12.6分別列出各種性質(zhì)包的路徑順序。圖12.6、圖12.7和圖12.8所示是單看特定表時,包如何通過該表各鏈的詳細流程。27iptables語法iptables的語法相當?shù)亩?,這些語法分成規(guī)則清除、定義政策以及新增與插入規(guī)則、三部分來說明1.清除規(guī)則與觀察規(guī)則1)觀察規(guī)則iptables在一開始的時候,應該是沒有規(guī)則的,不過,也可能在安裝的時候就有選擇系統(tǒng)自動幫您建立防火墻機制,此時系統(tǒng)就會有預設(shè)的防火墻規(guī)則。查看規(guī)則命令格式:iptables[-ttables][-L][-n]參數(shù)說明:-t:后面接iptables的table,例如nat或filter,如果沒有-ttable
,那么默認就是-tfilter這個table;-L:列出目前的table的規(guī)則;-n:不進行IP與HOSTNAME的轉(zhuǎn)換,屏幕顯示訊息的速度會快很多。-v顯示規(guī)則詳細信息。282)清除規(guī)則清除規(guī)則命令格式:iptables[-ttables][-FXZ]參數(shù)說明:-F:清除所有的已訂定的規(guī)則;-X:殺掉所有使用者建立的chain(應該說的是tables);-Z:將所有的鏈的計數(shù)與流量統(tǒng)計都清零。例,清除filter表規(guī)則student@ubuntu:~$sudoiptables–F//清除默認表filter所有的設(shè)置規(guī)則student@ubuntu:~$sudoiptables–X//刪除表filter中用戶建立的鏈student@ubuntu:~$sudoiptables–Z//將表filter計數(shù)與流量統(tǒng)計都清零請注意,如果在遠程連機的時候管理iptables,這三個指令必須要用scripts來連續(xù)執(zhí)行,不然肯定會讓被主機擋在門外。292.定義政策定義規(guī)則命令格式:iptables[-ttables][-P][INPUT,OUTPUT,FORWARD,PREROUTING,OUTPUT,POSTROUTING][ACCEPT,DROP]參數(shù)說明:-P:定義政策(Policy)。注意,這個P為大寫;INPUT:數(shù)據(jù)包為輸入主機的方向;OUTPUT:數(shù)據(jù)包為輸出主機的方向;FORWARD:數(shù)據(jù)包為不進入主機而向外再傳輸出去的方向;PREROUTING:在進入路由之前進行的工作;OUTPUT:數(shù)據(jù)包為輸出主機的方向;POSTROUTING:在進入路由之后進行的工作;ACCEPT:放任數(shù)據(jù)包進入下以階段處理;DROP:終結(jié)包的后續(xù)流程。鏈的策略主要有ACCEPT與DROP,對于自訂鏈的策略都固定是RETURN,不能改變。303.新增與插入規(guī)則新增與插入規(guī)則較語法復雜,大概格式是:命令+操作表格+過濾條件+處置動作構(gòu)成。具體格式如下:iptables[-tfilter][-AIINPUT,OUTPUT,FORWARD][-iointerface][-ptcp,udp,icmp,all][-sIP/network][--sportports][-dIP/network][--dportports]-j[ACCEPT,DROP]參數(shù)說明:-A:新增加一條規(guī)則,該規(guī)則增加在最后面,例如原本已經(jīng)有四條規(guī)則,使用-A就可以加上第五條規(guī)則!-I:插入一條規(guī)則,如果沒有設(shè)定規(guī)則順序,預設(shè)是插入變成第一條規(guī)則,例如原本有四條規(guī)則,使用-I則該規(guī)則變成第一條,而原本四條變成2~5INPUT:規(guī)則設(shè)定為filtertable的INPUT鏈OUTPUT:規(guī)則設(shè)定為filtertable的OUTPUT鏈FORWARD:規(guī)則設(shè)定為filtertable的FORWARD鏈-i:設(shè)定數(shù)據(jù)包進入的網(wǎng)絡(luò)接口-o:設(shè)定數(shù)據(jù)包流出的網(wǎng)絡(luò)接口Interface:網(wǎng)絡(luò)卡接口,例如eth0,eth1,ppp0等31-p:請注意,小寫,數(shù)據(jù)包的協(xié)議。tcp:數(shù)據(jù)包為TCP協(xié)議的包;upd:數(shù)據(jù)包為UDP協(xié)議的包;icmp:數(shù)據(jù)包為ICMP協(xié)議;all:表示為所有的包。-s:來源數(shù)據(jù)包的IP或者是Network(網(wǎng)域)--sport:來源數(shù)據(jù)包的端口號,也課使用port1:port2,如21:23,表示允許21,22,23通過-d:目標主機的IP或者是Network(網(wǎng)域)--dport:目標主機的port號碼-j:動作,通常是以下的動作;ACCEPT:接受該封包DROP:丟棄封包LOG:將該封包的信息記錄下來(默認記錄到/var/log/messages文件)以上新增與插入規(guī)則只是針對主機設(shè)置的這一部分,還有更多的,比如針對NAT的規(guī)則、針對硬件地址(MAC)分析規(guī)則等需要參考資料。324.保存與恢復防火墻規(guī)則這主要涉及兩個iptables命令。1)保存規(guī)則iptables-save>將防火墻機制儲存成那個文件,該文件為ASCII格式,可以進入查看。2)恢復規(guī)則iptables-restore<將那個防火墻文件的規(guī)則讀入目前的Linux主機環(huán)境中。33拓展提高1)構(gòu)建一個更完善的防火墻;2)網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT);3)iptables與Squid透明代理;4)使用FireStarter防火墻。34任務1構(gòu)建一個更完善的防火墻使用iptables搭建簡單防火墻已經(jīng)能夠完成本地局域網(wǎng)相互訪問,Linux主機也能夠訪問Internet,但如果Linux主機還提供Web、郵件服務等服務,簡單服務器設(shè)置能滿足要求嗎?另外,一些更安全的規(guī)則也應該考慮。351.主機提供服務以下過程要在Linux主機保證運行了Apache服務器。1)配置前測試在上層局域網(wǎng)的主機6上打開瀏覽器,輸入Linux主機地址66,訪問Linux主機web站點;在本地局域網(wǎng)主機上打開瀏覽器,輸入Linux主機地址,訪問Linux主機web站點。以上兩種操作,正常情況上層局域網(wǎng)的主機不能訪問Web站點,而本地局域可以正確訪問。2)添加規(guī)則允許Web服務student@ubuntu:~$sudoiptables-AINPUT-ieth1-ptcp--dport80-jACCEPT允許eth1上目的端口是80的數(shù)據(jù)包進入主機。363)添加規(guī)則后測試在上層局域網(wǎng)的主機打開瀏覽器,輸入Linux主機地址66,訪問Linux主機web站點;4)添加規(guī)則允許郵件服務郵件服務使用的是25、110兩端口,添加規(guī)則允許進入。student@ubuntu:~$sudoiptables-AINPUT-ieth1-ptcp--dport25-jACCEPTstudent@ubuntu:~$sudoiptables-AINPUT-ieth1-ptcp--dport110-jACCEPT對于其他服務,依照上述方法打開相應的端口。372、安全規(guī)則1)限制icmp包icmp包通常用于網(wǎng)絡(luò)測試等,黑客常常采用icmp進行攻擊。當其他主機使用ping命令(ping命令使用icmp包)測試時,主機不響應。student@ubuntu:~$sudoiptables–IINPUT-picmp–icmp-type8–jDROP注意,這里使用的是-I參數(shù)把規(guī)則添加到第一條。如果要保護局域網(wǎng)絡(luò)其他主機對ping命令不響應可以使用如下規(guī)則。student@ubuntu:~$sudoiptables–IFORWARD-picmp–icmp-type8–jDROP添加完上述規(guī)則后在本地局域網(wǎng)ping一下Linux主機,測試一下。其實完全限制也并不可取,對于上述兩條規(guī)則更好的是采用limit匹配擴展加以限制,規(guī)則如下。student@ubuntu:~$sudoiptables-AFORWARD-picmp-mlimit--limit1/s--limit-burst10-jACCEPTstudent@ubuntu:~$sudoiptables-AFORWARD-picmp-mlimit--limit1/s--limit-burst10-jACCEPT對不管來自哪里的icmp包都進行限制,允許每秒通過一個包,該限制觸發(fā)的條件是10個包。382)處理ip碎片在TCP/IP通訊過程中,每一個網(wǎng)絡(luò)接口都有一個最大傳輸單元(MTU),這個參數(shù)定義了可以通過的數(shù)據(jù)包的最大尺寸。如果一個數(shù)據(jù)包大于這個參數(shù)值時,系統(tǒng)會將其劃分成更小的數(shù)個數(shù)據(jù)包(稱之為ip碎片)來傳輸,而接收方則對這些ip碎片再進行重組以還原整個包。完全允許ip碎片通過是有安全隱患的,對于這一點可以采用iptables的匹配擴展來進行限制。student@ubuntu:~$sudoiptables-AINPUT-f-mlimit--limit100/s--limit-burst100-jACCEPTstudent@ubuntu:~$sudoiptables-AFORWARD-f-mlimit--limit100/s--limit-burst100-jACCEPT對不管來自哪里的ip碎片都進行限制,允許每秒通100個ip碎片,該限制觸發(fā)的條件是100個ip碎片。39任務2網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)到目前為止,還有一個非常重要的問題,就是局域網(wǎng)主機之間互訪,局域網(wǎng)主機通過防火墻主機訪問Internet,或者Internet主機通過防火墻訪問本地局域網(wǎng)主機,要實現(xiàn)這就涉及到網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)。401.路由器網(wǎng)段的局域網(wǎng)與網(wǎng)段的局域網(wǎng)出于不同的網(wǎng)段,要實現(xiàn)兩者之間的相互訪問必須要求Linux防火墻主機能夠?qū)崿F(xiàn)路由功能,圖12.12所示是一種典型多個局域網(wǎng)網(wǎng)絡(luò)拓撲圖。411)配置局域網(wǎng)主機實現(xiàn)實驗環(huán)境網(wǎng)段192.168.0的局域網(wǎng)主機的網(wǎng)關(guān)要求是,網(wǎng)段192.168.1的局域網(wǎng)主機的網(wǎng)關(guān)要求是66。如果主機是Linux,添加一條網(wǎng)絡(luò)路由方法如下。student@ubuntu:~$routeadd-netnetmaskgwdeveth0如果主機是Windows,要添加一條網(wǎng)絡(luò)路由,在終端輸入如下命令:routeaddmaskmetric1422)設(shè)置Linux防火墻主機要使Linux主機啟動路由能力,必須將ip_forward功能打開,執(zhí)行下面命令就可以。root@ubuntu:~#echo"1">/proc/sys/net/ipv4/ip_forward注意,開啟路由必須在root用戶下,使用sudo工具是完成不了的。如果想要在開機的時候就將ip_forward打開,可以修改/etc/sysctl.conf文件,把以下語句前的注釋符去掉。net.ipv4.ip_forward=1433)測試在主機使用ping命令。student@ubuntu:~$ping-c36┆3packetstransmitted,3received,0%packetloss,time1998msrttmin/avg/max/mdev=0.589/0.704/0.830/0.101ms結(jié)果顯示能夠訪問另外局域網(wǎng)主機。442.SourceNAT通常情況,使用局域網(wǎng)的私有IP地址是不能直接在Internet上使用。到目前為止,不同局域網(wǎng)主機已經(jīng)能夠互相訪問了,但要使局域網(wǎng)主機能夠訪問Internet站點(比如,百度搜索網(wǎng)站)還需要Linux主機具有SourceNAT(SNAT)功能,其實通常的NAT服務器就是指這種服務器。45圖12.13所示局域網(wǎng)連接Internet兩種方式,對于大型企業(yè)單位,由于網(wǎng)絡(luò)單元眾多,更多的是采取第二種多層局域網(wǎng)絡(luò)方式,目前我們學校機房就是采用這種方式,這里采用第二種模式作為SNAT實驗環(huán)境。461)配置主機實現(xiàn)實驗環(huán)境網(wǎng)段192.168.0的局域網(wǎng)主機的網(wǎng)關(guān)要求是,上層網(wǎng)段192.168.1的局域網(wǎng)主機的網(wǎng)關(guān)應該是更上層局域網(wǎng)地址或直接Internet公網(wǎng)地址。2)設(shè)置Linux防火墻主機SourceNAT的動作用“-jSNAT'”來指定,同時“--tosource'”指定一個IP地址或一段IP地址以及一個可選的端口。student@ubuntu:~$sudoiptables-tnat-APOSTROUTING-oeth1-jSNAT–to66有一個SNAT的特例叫做包偽裝它只用于動態(tài)分配的IP地址,例如撥號上網(wǎng)。student@ubuntu:~$iptables-tnat-APOSTROUTING-oppp0-jMASQUERADE473)測試在主機使用ping命令。student@ubuntu:~$ping-c3如果能夠ping通,說明SourceNAT配置成功,局域網(wǎng)主機能夠訪問Internet。483.DestinationNAT局域網(wǎng)主機可以訪問Internet上的Web、Mail的服務器了,考慮安全性,Web服務器通常放在Linux防火墻主機后部的局域網(wǎng)內(nèi)部主機上,目前為止,局域網(wǎng)內(nèi)部主機可以連接Internet了,但Internet上主機還不能夠訪問Linux防火墻主機后部的Web服務器,要實現(xiàn)Internet能夠訪問局域網(wǎng)上的Web服務器,Linux主機還要具有DestinationNAT(DNAT)功能。491)實驗環(huán)境實驗環(huán)境與SourceNAT相同。2)設(shè)置Linux防火墻主機DNAT動作用“-jDNAT”來指定使用同時用“--todestination'”選項指定一個IP地址或一段IP地址,以及可以配選一個端口或一段端口值域。student@ubuntu:~$sudoiptables-tnat-APREROUTING-ieth1-ptcp--dport80-jDNAT--to:80如果端口監(jiān)測標準端口80而是8080,要求修改為以下命令。student@ubuntu:~$sudoiptables-tnat-APREROUTING-ieth1-ptcp--dport80-jDNAT--to:8080503)檢測查看nat表信息。以上是配置了DNAT與SNAT的nat表顯示情況。如果沒有問題,在上層局域網(wǎng)上主機瀏覽器中輸入66就可以訪問局域網(wǎng)主機上的Web服務器(為檢測準確,首先應確定66沒有運行Web服務器)。student@ubuntu:~$sudoiptables-L-tnat-vChainPREROUTING(policyACCEPT64packets,6157bytes)pktsbytestargetprotoptinoutsourcedestination00DNATtcp--eth1anyanywhereanywheretcpdpt:ChainPOSTROUTING(policyACCEPT27packets,1800bytes)pktsbytestargetprotoptinoutsourcedestination15911SNATall--anyeth1/24anywhereto:66ChainOUTPUT(policyACCEPT24packets,1610bytes)pktsbytestargetprotoptinoutsourcedestination514)用Shell腳本處理規(guī)則一個iptables防火墻規(guī)則眾多,可以使用Shell腳本簡化工作。#!/bin/bash#這個script是建立防火墻,基本規(guī)則定義為“拒絕所有,開放特定”的模式
EXTIF="eth2"#定義連接Internet或上層網(wǎng)絡(luò)接口
INIF="eth0"#內(nèi)部網(wǎng)絡(luò)接口
INNET="/24"
#內(nèi)部網(wǎng)段Open_ports="8011025"#自己機器對外開放的端口Allow_ports="80532021"#internet的數(shù)據(jù)可以進入自己機器的端口#清除所有的防火墻規(guī)則
/sbin/iptables-F
/sbin/iptables-X
/sbin/iptables-Z
/sbin/iptables-F-tnat
/sbin/iptables-X-tnat
/sbin/iptables-Z-tnat#定義防火墻策略
/sbin/iptables-PINPUT
DROP
/sbin/iptables-POUTPUT
ACCEPT
/sbin/iptables-PFORWARDACCEPT
/sbin/iptables-tnat-PPREROUTING
ACCEPT
/sbin/iptables-tnat-PPOSTROUTINGACCEPT/sbin/iptables-tnat-POUTPUT
ACCEPT#先允許信任網(wǎng)域,這包含lo這個內(nèi)部循環(huán)接口,以及剛剛指定的內(nèi)部接口網(wǎng)絡(luò)#
重點是可以啟動Linux成為NAT主機/sbin/iptables-AINPUT-ilo
-jACCEPT
524)用Shell腳本處理規(guī)則一個iptables防火墻規(guī)則眾多,可以使用Shell腳本簡化工作。
if["$INIF"!=""];then
/sbin/iptables-AINPUT-i$INIF-jACCEPT
echo"1">/proc/sys/net/ipv4/ip_forward
/sbin/iptables-tnat-APOSTROUTING-s$INNET-o$EXTIF-jMASQUERADE
fi#允許ICMP封包與允許已建立的聯(lián)機通過
/sbin/iptables-AINPUT-mstate--stateESTABLISHED,RELATED-j
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年高考地理一輪復習(新人教版)第三部分區(qū)域發(fā)展復習講義
- 體育館行業(yè)智慧化及數(shù)字化轉(zhuǎn)型研究
- 《AGO紙牌游戲規(guī)則》課件
- 管理層文件存檔培訓
- 中西醫(yī)治療腎病
- 鋼結(jié)構(gòu)墻面板安裝合同范例
- 電腦合同范例范例
- 工地瓷磚供貨合同范例
- 竣工結(jié)算編制合同范例
- 大包銷售合同范例
- 2024譯林版七年級英語上冊單詞(帶音標)
- 品管圈PDCA案例-普外科提高甲狀腺手術(shù)患者功能鍛煉合格率
- 2024-2025學年語文二年級上冊 部編版期末測試卷(含答案)
- 2025年消防救援設(shè)施操作員職業(yè)技能資格知識考試題庫與答案
- 電玩城租賃經(jīng)營合同
- 2024年中國救生圈市場調(diào)查研究報告
- “雄鷹杯”全國小動物醫(yī)師技能大賽考試題庫(660題)
- 2024年國家公務員考試《申論》真題(地市級)及答案解析
- 學前兒童家庭與社區(qū)教育學習通超星期末考試答案章節(jié)答案2024年
- 新能源汽車充電樁項目可行性研究報告模板及范文
評論
0/150
提交評論