![Linux個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn)_第1頁(yè)](http://file4.renrendoc.com/view/644a9ee54503704837c8cc4c0498b8be/644a9ee54503704837c8cc4c0498b8be1.gif)
![Linux個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn)_第2頁(yè)](http://file4.renrendoc.com/view/644a9ee54503704837c8cc4c0498b8be/644a9ee54503704837c8cc4c0498b8be2.gif)
![Linux個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn)_第3頁(yè)](http://file4.renrendoc.com/view/644a9ee54503704837c8cc4c0498b8be/644a9ee54503704837c8cc4c0498b8be3.gif)
![Linux個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn)_第4頁(yè)](http://file4.renrendoc.com/view/644a9ee54503704837c8cc4c0498b8be/644a9ee54503704837c8cc4c0498b8be4.gif)
![Linux個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn)_第5頁(yè)](http://file4.renrendoc.com/view/644a9ee54503704837c8cc4c0498b8be/644a9ee54503704837c8cc4c0498b8be5.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
.PAGE.xxxx《Linux個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn)》第1頁(yè)共21頁(yè)Linux個(gè)人防火墻的設(shè)計(jì)與實(shí)現(xiàn)學(xué)生__xxx指導(dǎo)xxx摘要防火墻在配置上能夠防止來(lái)自"外部"世界未經(jīng)授權(quán)的交互式登錄。這大大有助于防止破壞者登錄到你網(wǎng)絡(luò)中的計(jì)算機(jī)上。本課程設(shè)計(jì)介紹基于Netfilter/Iptables的包過(guò)濾防火墻的實(shí)現(xiàn)原理。對(duì)Linux系統(tǒng)、TCP/IP的相關(guān)知識(shí)及Iptables語(yǔ)法做了介紹。詳細(xì)介紹了Iptables命令的使用舉例,通過(guò)實(shí)例介紹了基于Netfilter/Iptables的包過(guò)濾防火墻的配置過(guò)程。關(guān)鍵詞網(wǎng)絡(luò)操作系統(tǒng);包過(guò)濾;Iptables;Netfilter;防火墻DesignandImplementThePersonalFirewallofLinuxStudentname:YUMing-yinAdvisor:HouLi-juanAbstractIntheconfigurationonthefirewalltopreventfromthe"external"worldofinteractiveunauthorizedlogin.Thiswillsignificantlyhelppreventspoilerstologintoyourcomputernetwork.Basedonthecurriculumdesign,introducedNetfilter/Iptablesfirewallpacketfilteringoftherealizationoftheprinciple.OnLinuxsystems,TCP/IPknowledgeandIptablessyntaxisintroduced.Iptablescommanddescribedindetailtheuseof,forexample,throughanexamplebasedontheNetfilter/Iptablesfirewall'spacketfilteringconfigurationprocess.KeywordsNetworkOS;PacketFilter;Iptbles;Netfilter;Firewall1引言1.1課程設(shè)計(jì)的意義對(duì)于因特網(wǎng)上的系統(tǒng),不管是什么情況,首先我們要明確一點(diǎn):網(wǎng)絡(luò)是不安全的。雖然創(chuàng)建一個(gè)防火墻并不能保證系統(tǒng)100%安全[7],但卻是絕對(duì)有必要的。防火墻的目的就是將破壞網(wǎng)絡(luò)安全的人擋在你的網(wǎng)絡(luò)之外,使你可以順利完成自己的工作。LINUX是近幾年突出的一種操作系統(tǒng),以其公開(kāi)的源代碼、強(qiáng)大穩(wěn)定的網(wǎng)絡(luò)功能和大量的免費(fèi)資源受到業(yè)界的普遍贊揚(yáng)。LINUX防火墻其實(shí)是操作系統(tǒng)本身所自帶的一個(gè)功能模塊。通過(guò)安裝特定的防火墻內(nèi)核,LINUX操作系統(tǒng)會(huì)對(duì)接收到的數(shù)據(jù)包按一定的策略進(jìn)行處理。隨著Linux系統(tǒng)被越來(lái)越多地使用,安全問(wèn)題成了關(guān)鍵。Linux防火墻技術(shù)也在不斷的發(fā)展,經(jīng)歷了Ipfw、Ipchains等過(guò)程。Iptables作為L(zhǎng)inux防火墻的新一代繼承人,當(dāng)然也針對(duì)駭客不斷推陳出新的探測(cè)技術(shù)擬出一些因應(yīng)之道,那就是對(duì)封包的聯(lián)機(jī)狀態(tài),作出更詳細(xì)的分析,透過(guò)這樣的分析能對(duì)一些可能被駭客利用的弱點(diǎn)加以阻隔,另外也開(kāi)發(fā)出真正的封包改寫能力,不需要透過(guò)其它程序的協(xié)助來(lái)仿真網(wǎng)址轉(zhuǎn)譯,除此之外,Iptables也獲得系統(tǒng)核心的直接支持,不需要像Ipchains那樣需要自行重新編譯核心。Iptables優(yōu)越的性能使它取代了Ipchains,成為網(wǎng)絡(luò)防火墻的主流,而Ipchains并未被淘汰,目前Ipchains已經(jīng)轉(zhuǎn)型成單機(jī)防火墻,在安裝新版Linux時(shí),會(huì)自動(dòng)被安裝啟用,以保護(hù)單機(jī)上未被使用的通訊端口[1]。總之,目前大部分國(guó)內(nèi)金融、商業(yè)等企業(yè)都采用Linux系統(tǒng),因此在Linux上配置防火墻有極其重要的意義,同時(shí)可以學(xué)習(xí)這一先進(jìn)的技術(shù)與熟悉一個(gè)優(yōu)秀的操作平臺(tái)。1.2課程設(shè)計(jì)的目的本課程設(shè)計(jì)設(shè)主要目的是在Linux操作系統(tǒng)下完成基于Netfilter/Iptables的包過(guò)濾防火墻的設(shè)計(jì)與實(shí)現(xiàn)。Internet等網(wǎng)絡(luò)服務(wù)給人們的生活帶來(lái)極大便利的同時(shí)也存在很多隱患,學(xué)會(huì)基于Netfilter/Iptables的包過(guò)濾防火墻的配置就能在一定程度上有效地抵御來(lái)自網(wǎng)絡(luò)上的攻擊。通過(guò)完成課程設(shè)計(jì)的過(guò)程,學(xué)習(xí)包過(guò)濾防火墻的相關(guān)知識(shí),同時(shí)也深化對(duì)這學(xué)期Linux課程的學(xué)習(xí)。1.3Linux防火墻的背景知識(shí)Linux是一個(gè)類UNIX的操作系統(tǒng)[5],它是由芬蘭赫爾辛基大學(xué)的學(xué)生LinusTorvalds于1991年創(chuàng)建并在因特網(wǎng)上發(fā)布,任何人只要遵守GPL版權(quán),都可以免費(fèi)使用和修改Linux。實(shí)際上,GPL要求的是完全的軟件共享,你可從中獲利,但你不能占為己有。經(jīng)過(guò)因特網(wǎng)上的千千萬(wàn)萬(wàn)的志愿者對(duì)其的不斷修改,八年后的今天,Linux已經(jīng)變得強(qiáng)大無(wú)比!特別是去年下半年以來(lái),IBM、Intel、Oracle、Sysbase、Borland,HP,SUN,Corel等商業(yè)軟件[6]廠商紛紛表示對(duì)Linux進(jìn)行商業(yè)開(kāi)發(fā)和技術(shù)支持,更使得Linux的商業(yè)價(jià)值越來(lái)越高。同時(shí)Linux將在兩個(gè)方向發(fā)展,即微型設(shè)備的嵌入式操作系統(tǒng)和桌面操作系統(tǒng)。IDC預(yù)測(cè)Linux將成為WindowsNT后的第二大操作系統(tǒng)[3]。Linux以它的高效性和靈活性著稱。它能夠在個(gè)人計(jì)算機(jī)上實(shí)現(xiàn)全部的UNIX特性,具有多任務(wù)、多用戶的功能。Linux可在GNU〔"不是UNIX"工程的縮寫公共許可權(quán)限下免費(fèi)獲得,是一個(gè)符合POSIX標(biāo)準(zhǔn)的操作系統(tǒng)。Linux操作系統(tǒng)軟件包不僅包括完整的Linux操作系統(tǒng),而且還包括了文本編輯器、高級(jí)語(yǔ)言編譯器等應(yīng)用軟件。它還包括帶有多個(gè)窗口管理器的X-Windows圖形用戶界面,如同我們使用Windows一樣,允許我們使用窗口、圖標(biāo)和菜單對(duì)系統(tǒng)進(jìn)行操作。包過(guò)濾防火墻用軟件查看所流經(jīng)的數(shù)據(jù)包的XX〔header,由此決定整個(gè)包的命運(yùn)。它可能丟棄〔DROP這個(gè)包,可能接受〔ACCEPT這個(gè)包,也可能執(zhí)行其它更復(fù)雜的動(dòng)作。Linux因其健壯性、可靠性、靈活性以及好象無(wú)限范圍的可定制性而在IT界倍受歡迎。Linux具有許多內(nèi)置的功能,使開(kāi)發(fā)人員可以根據(jù)自己的需要定制其工具、行為和外觀而無(wú)需昂貴的第三方工具。Netfilter/IptablesIP信息包過(guò)濾系統(tǒng)是最新的解決方案,而且也是第一個(gè)集成到Linux內(nèi)核的解決方案。對(duì)于Linux系統(tǒng)管理員、網(wǎng)絡(luò)管理員以及家庭用戶〔他們想要根據(jù)自己特定的需求來(lái)配置防火墻,在防火墻解決方案上節(jié)省費(fèi)用和對(duì)IP信息包過(guò)濾具有完全控制權(quán)來(lái)說(shuō),Netfilter/Iptables系統(tǒng)十分理想。Iptables是與最新的2.4.x版本Linux內(nèi)核集成的IP信息包過(guò)濾系統(tǒng)。如果Linux系統(tǒng)連接到因特網(wǎng)或LAN、服務(wù)器或連接LAN和因特網(wǎng)的代理服務(wù)器,則該系統(tǒng)有利于在Linux系統(tǒng)上更好地控制IP信息包過(guò)濾和防火墻配置。Iptables組件是一種工具,也稱為用戶空間〔userspace,它使插入、修改和除去信息包過(guò)濾表中的規(guī)則變得容易[2]。Iptables是復(fù)雜的,它集成到Linux內(nèi)核中。用戶通過(guò)Iptables可以對(duì)進(jìn)出你的計(jì)算機(jī)的數(shù)據(jù)包進(jìn)行過(guò)濾。通過(guò)Iptables命令設(shè)置來(lái)把守你的計(jì)算機(jī)網(wǎng)絡(luò)--哪些數(shù)據(jù)允許通過(guò),哪些不能通過(guò),哪些通過(guò)的數(shù)據(jù)進(jìn)行記錄。2Netfilter/Iptables介紹2.1配置防火墻的filter表<1>查看本機(jī)關(guān)于IPTABLES的設(shè)置情況[rootlocalhostroot]#iptables-L–n<2>清除原有規(guī)則不管你在安裝linux時(shí)是否啟動(dòng)了防火墻,如果你想配置屬于自己的防火墻,那就清除現(xiàn)在filter[8]的所有規(guī)則。[rootlocalhostroot]#iptables-F
清除預(yù)設(shè)表filter中的所有規(guī)則鏈的規(guī)則。[rootlocalhostroot]#iptables-X
清除預(yù)設(shè)表filter中使用者自定鏈中的規(guī)則。<3>設(shè)定預(yù)設(shè)規(guī)則[rootlocalhostroot]#iptables-pINPUTDROP[rootlocalhostroot]#iptables-pOUTPUTACCEPT[rootlocalhostroot]#iptables-pFORWARDDROP<4>添加規(guī)則首先添加INPUT鏈,INPUT鏈的默認(rèn)規(guī)則是DROP,所以我們就寫需要ACCETP<通過(guò)>的鏈。為了能采用遠(yuǎn)程SSH登陸,我們要開(kāi)啟22端口[rootlocalhostroot]#iptables-AINPUT-ptcp--dport22-jACCEPT[rootlocalhostroot]#iptables-AOUTPUT-ptcp--sport22-jACCEPT如果開(kāi)啟了web服務(wù)器,OUTPUT設(shè)置成DROP的話,同樣也要添加一條鏈:[rootlocalhostroot]#iptables-AOUTPUT-ptcp--sport80-jACCEPT如果做了WEB服務(wù)器,開(kāi)啟80端口[rootlocalhostroot]#iptables-AINPUT-ptcp--dport80-jACCEPT如果做了郵件服務(wù)器,開(kāi)啟25110端口[rootlocalhostroot]#iptables-AINPUT-ptcp--dport110-jACCEPT[rootlocalhostroot]#iptables-AINPUT-ptcp--dport25-jACCEPT如果做了FTP服務(wù)器,開(kāi)啟21端口[rootlocalhostroot]#iptables-AINPUT-ptcp--dport21-jACCEPT[rootlocalhostroot]#iptables-AINPUT-ptcp--dport20-jACCEPT如果做了DNS服務(wù)器,開(kāi)啟53端口[rootlocalhostroot]#iptables-AINPUT-ptcp--dport53-jACCEPT2.2配置防火墻的NAT表<1>查看本機(jī)關(guān)于NAT的設(shè)置情況[rootlocalhostroot]#iptables-tnat–L<2>添加規(guī)則添加基本的NAT[8]地址轉(zhuǎn)換,我們只添加DROP鏈.因?yàn)槟J(rèn)鏈全是ACCEPT。防止外網(wǎng)用內(nèi)網(wǎng)IP欺騙[roottpsysconfig]#iptables-tnat-APREROUTING-ieth0-s.0/8-jDROP[roottpsysconfig]#iptables-tnat-APREROUTING-ietDROP非法連接[rootlocalhostroot]#iptables-AINPUT
-mstate--stateINVALID-jDROP[rootlocalhostroot]#iptables-AOUTPUT
-mstate--stateINVALID-jDROP[rootlocalhostroot]#iptables-AFORWARD-mstate--stateINVALID-jDROP允許所有已經(jīng)建立的和相關(guān)的連接[rootlocalhostroot]#iptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT[rootlocalhostroot]#iptables-AINPUT-mstate--stateESTABLISHED,RELATED-jACCEPT[rootlocalhostroot]#iptables-AOUTPUT-mstate--stateESTABLISHED,RELATED-jACCEPT[rootlocalhostroot]#/etc/rc.d/init.d/iptablessave這樣就可以寫到/etc/sysconfig/iptables文件里,寫入后把防火墻重起一下,才能起作用。[rootlocalhostroot]#serviceiptablesrestart2.3Iptables的結(jié)構(gòu)Iptables一般由指定表〔table、指定鏈〔chains、指定操作命令〔command、指定規(guī)則匹配器〔matcher、指定目標(biāo)動(dòng)作〔target等構(gòu)成,如圖2.1所示。圖2.1Iptables結(jié)構(gòu)圖Iptables的指令結(jié)構(gòu)如圖2.2所示。圖2.2Iptables的指令結(jié)構(gòu)圖2.4Iptables的規(guī)則要素一條Iptables規(guī)則基本上應(yīng)該包含5個(gè)要素:1、指定表〔table2、指定操作命令〔command3、指定鏈〔chains4、指定規(guī)則匹配器〔matcher5、指定目標(biāo)動(dòng)作〔target2.5Iptables工具的調(diào)用語(yǔ)法Iptables的語(yǔ)法通??梢院?jiǎn)化為下面的形式:Iptables[-ttable]CMD[chain][rule-matcher][-jtarget]其中:tables為表名,CMD為操作命令,chain為鏈名,rule-matcher為規(guī)則匹配器,target為目標(biāo)動(dòng)作。Iptables軟件包提供了兩個(gè)命令分別用于保存和恢復(fù)規(guī)則集。可以使用下在的命令轉(zhuǎn)儲(chǔ)在內(nèi)存中的內(nèi)核規(guī)則集。其中/etc/sysconfig/Iptables是Iptables守護(hù)進(jìn)程調(diào)用的默認(rèn)規(guī)則集文件:#/sbin/Iptables-save>;/etc/sysconfig/Iptables
要恢復(fù)原來(lái)的規(guī)則庫(kù),需使用命令:#/sbin/Iptables-restore</etc/sysconfig/Iptables為了使得用Iptables命令配置的規(guī)則在下次啟動(dòng)機(jī)器時(shí)還能被使用,有兩種方法:1、使用Iptables的啟動(dòng)腳本實(shí)現(xiàn)。Iptables的啟動(dòng)腳/etc/rc.d/init.d/Iptables每次啟動(dòng)時(shí)都使用/etc/sysconfig/Iptables所提供的規(guī)則進(jìn)行規(guī)則恢復(fù),并可以使用如下的命令保存規(guī)則:#serviceIptablessave2、在自定義腳本中用Iptables命令直接創(chuàng)建規(guī)則集??梢灾苯佑肐ptables命令編寫一個(gè)規(guī)則腳本,并在啟動(dòng)時(shí)執(zhí)行這個(gè)腳本。例如:若規(guī)則腳本的文件名為/etc/fw/rules,則可以在啟動(dòng)腳本/etc/rd.d/init.d/rc.local中加入下面的代碼:if[-x/etc/fw/rules];then/etc/fw/rules;fi;這樣,機(jī)器每次啟動(dòng)時(shí)即可執(zhí)行該規(guī)則腳本。如果使用此種方式,建議使用ntsysv命令關(guān)閉系統(tǒng)的Iptables守護(hù)進(jìn)程。2.6Iptables的優(yōu)點(diǎn)1、Iptables允許建立狀態(tài)〔stateful防火墻,就是在內(nèi)存中保存穿過(guò)防火墻的每條連接。這種模式對(duì)于有效地配置FTP和DNS以及其它網(wǎng)絡(luò)服務(wù)是必要的。2、Iptables能夠過(guò)濾TCP標(biāo)志任意組合報(bào)文,還能夠過(guò)濾MAC地址。3、系統(tǒng)日志比ipchains更容易配置,擴(kuò)展性也更好。4、對(duì)于網(wǎng)絡(luò)地址轉(zhuǎn)換〔NetworkAddressTranslation和透明代理的支持,Netfilter更為強(qiáng)大和易于使用。5、Iptables能夠阻止某些DOS攻擊,例如SYS洪泛攻擊。3防火墻的配置及操作命令3.1鏈的基本操作1、清除所有的規(guī)則。通常在開(kāi)始配置包過(guò)濾防火墻之初清除所有的規(guī)則,重新開(kāi)配置,以免原有的規(guī)則影響新的設(shè)定。使用如下命令[9]進(jìn)行:清除預(yù)設(shè)表filter中所有規(guī)則鏈中的規(guī)則:#Iptables–F清除預(yù)設(shè)表filter中使用者自定義鏈中的規(guī)則:#Iptables–X將指定鏈所有規(guī)則的包字節(jié)記數(shù)器清零:#Iptables–Z2、設(shè)置鏈的默認(rèn)策略。一般地,配置鏈的默認(rèn)策略有兩種方法?!?允許所有的包,然后再禁止有危險(xiǎn)的包通過(guò)防火墻。即"沒(méi)有被拒絕的都允許"。這種方法對(duì)于用戶而言比較靈活方便,但對(duì)系統(tǒng)而言,容易引起嚴(yán)重的安全問(wèn)題。為此,應(yīng)該使用如下的初始化命令:#Iptables-PINPUTACCEPT#Iptables-POUTPUTACCEPT#Iptables-PFORWARDACCEPT〔2禁止所有的包,然后再根據(jù)需要的服務(wù)允許特定的包通過(guò)防火墻。即"沒(méi)有明確允許的都被拒絕"。這種方法最安全,但不太方便。為了使得系統(tǒng)有足夠的安全性,一般采用此種策略進(jìn)行Iptables防火墻[10]的配置。為此,應(yīng)該使用如下的初始化命令:#Iptables-PINPUTDROP#Iptables-POUTPUTDROP#Iptables-PFORWAEDDROP列出表/鏈中的所有規(guī)則。包過(guò)濾防火墻只使用filter表,此表為默認(rèn)的表,因此可以使用下面的命令列出filter表中所有規(guī)則:#Iptables–L使用上面的命令時(shí),Iptables將逆向解析IP地址,這將發(fā)費(fèi)很多時(shí)間,從而造成信息出來(lái)的非常慢。為了解決這個(gè)問(wèn)題,可以使用下面的帶有-n參數(shù)的命令〔-n參數(shù)用于顯示數(shù)字化的地址和端口:#Iptables-L–n向鏈中添加規(guī)則。下面的語(yǔ)句用于開(kāi)放網(wǎng)絡(luò)接口:#Iptables-AINPUT-ilo-jACCEPT#Iptables-AOUTPUT-olo-jACCEPT#Iptables-A
INPUT-i
eth0-jACCEPT#Iptables-AOUTPUT-oeth0-jACCEPT#Iptables-AFORWARD-ieth0-jACCEPT#Iptables-AFPRWAED-oeth0-jACCEPT使用用戶自定義鏈。下面是一個(gè)用戶自定義鏈的創(chuàng)建、修改和調(diào)用的簡(jiǎn)單命令序列:#Iptables-Ncustom#Iptables-Acustom-s0/0-d0/0-picmp-jDROP#Iptables-AINPUT-s0/0-d0/0-jcustom首先使用帶-N參數(shù)的Iptables命令新建了一個(gè)名為custom的用戶定義鏈。然后使用帶-A參數(shù)的命令添加了一條用戶自定義的堵截規(guī)則,該規(guī)則丟棄全部的ICMP包。最后向默認(rèn)的INPUT鏈加入一條規(guī)則,使所有的包都由custom自定義鏈處理。結(jié)果全部的ICMP包都將被丟棄。3.2設(shè)置基本的規(guī)則匹配下面舉例說(shuō)明Iptables的基本規(guī)則匹配〔忽略目標(biāo)動(dòng)作:指定協(xié)議匹配#Iptables-AINPUT-ptcp匹配指定協(xié)議之外的所有協(xié)議#Iptables-AINPUT-p!tcp指定地址匹配指定匹配的主機(jī)#Iptables-AINPUT-s指定匹配的網(wǎng)絡(luò)#Iptables-AINPUT-s/24匹配指定主機(jī)之外的地址。#Iptables-AFORWARD-s!匹配指定網(wǎng)絡(luò)之外的網(wǎng)絡(luò)#Iptables-AFORWARD-s!/24指定網(wǎng)絡(luò)接口匹配。指定單一的網(wǎng)絡(luò)接口匹配。#Iptables-AINPUT-ieth0#Iptables-AFORWARD-oeth0指定同類型的網(wǎng)絡(luò)接口匹配#Iptables-AFORWARD-oppp+指定端口匹配指定單一的端口匹配。#Iptables-AINPUT-ptcp-sportwww#Iptables-AINPUT-ptcp-sport80#Iptables-AINPUT-ptcp-sport53#Iptables-AINPUT-pudp-dport53匹配指定端口之外的端口。#Iptables-AINPUT-ptcp-dport!22匹配指定端口的范圍。#Iptables-AINPUT-ptcp-soprt22:80匹配ICMP端口和ICMP類型。#Iptables-AINPUT-picmp--icmp-type8指定ip碎片在TCP/IP通信過(guò)程中,每一個(gè)網(wǎng)絡(luò)接口都有一個(gè)最大的傳輸單元〔MTU,這個(gè)參數(shù)定義了可以通過(guò)的數(shù)據(jù)包的最大尺寸。如果一個(gè)數(shù)據(jù)包大于這個(gè)參數(shù)值時(shí),系統(tǒng)會(huì)將其劃分成更小的數(shù)個(gè)數(shù)據(jù)包〔稱之為ip碎片來(lái)傳輸,而接收方則對(duì)這些ip碎片[9]再進(jìn)行重組以還原整個(gè)包。但是在進(jìn)行包過(guò)濾的時(shí)候,ip碎片會(huì)導(dǎo)致這樣一個(gè)問(wèn)題:當(dāng)系統(tǒng)將大數(shù)據(jù)包劃分成ip碎片傳送時(shí),第一個(gè)碎片含有完整的XX信息〔IP+TCP、UDP和ICMP,但是后續(xù)的碎片只有XX的部分信息〔如源地址、目的地址。因此,檢查后面的ip碎片的頭部〔就像有TCP、UDP和ICMP一樣是不可能的。假如有這樣一條規(guī)則:并且這時(shí)的FORWARD的策略〔policy為DROP時(shí),系統(tǒng)只會(huì)讓第一個(gè)ip碎片通過(guò),而丟掉其余的ip碎片,因?yàn)榈谝粋€(gè)碎片含有完整的XX[11]信息,可以滿足該規(guī)則的條件,而余下的碎片因?yàn)閄X信息不完整而無(wú)法滿足規(guī)則定義的條件,因而無(wú)法通過(guò)??梢酝ㄟ^(guò)-fragment/-f選項(xiàng)來(lái)指定第二個(gè)及其以后的ip碎片,以上面的例子為例,我們可以再加上這樣一條規(guī)則來(lái)解決這個(gè)問(wèn)題:但是需要注意的是,現(xiàn)在已經(jīng)有許多進(jìn)行ip碎片攻擊的實(shí)例〔例如向Win98NT4SP5,6Win2K發(fā)送大量的ip碎片進(jìn)行DOS攻擊,因此允許ip碎片通過(guò)是有安全隱患的,對(duì)于這一點(diǎn)可以采用Iptables的匹配擴(kuò)展來(lái)進(jìn)行限制。3.3設(shè)置擴(kuò)展的規(guī)則匹配要獲得匹配的簡(jiǎn)要說(shuō)明,可以使用如下的命令:#Iptables-mname_of_match–help下面舉例說(shuō)明Iptables的擴(kuò)展規(guī)則匹配〔忽略目標(biāo)動(dòng)作:匹配多個(gè)源端口。#Iptables-AINPUT-ptcp-mmultiport-source-port22,53,80,110匹配多個(gè)目的端口#Iptables-AINPUT-ptcp-mmultiport-destionation-port22,53,80,110匹配多個(gè)端口〔無(wú)論源源端口還是目的端口。#Iptables-AINPUT-ptcp-mmultiport-port22,53,80,110指定TCP匹配擴(kuò)展通過(guò)使用-tcp-flags選項(xiàng)可以根據(jù)tcp包的標(biāo)志位進(jìn)行過(guò)濾,該選項(xiàng)后接兩個(gè)參數(shù):第一個(gè)參數(shù)為要檢查的標(biāo)志位,可以是SYN、ACK、FIN、URG、PSH的組合,可以用ALL指定所有標(biāo)志位:第二個(gè)參數(shù)是標(biāo)志位值為1的標(biāo)志#Iptables-AINPUT-ptcp-tcp-flagsSYN,FIN,ACKSYN表示SYN、ACK、FIN的標(biāo)志都要被檢查,但是只有設(shè)置了SYN的才匹配。#Iptables-AINPUT-ptcp-tcp-flagsALLSYN,ACK表示ALL〔SYN,ACK,FIN,RST,URG,PSH的標(biāo)志都要被檢查,但是只有設(shè)置了SYN和ACK的才匹配。選項(xiàng)-syn是以上的一種特殊情況,相當(dāng)于"--tcp-flagsSYN,RST,ACKSYN"的簡(jiǎn)寫。#Iptables-ptc-synlimit速率匹配擴(kuò)展指定單位時(shí)間內(nèi)允許通過(guò)的數(shù)據(jù)包的個(gè)數(shù)。單位時(shí)間可以是/second、/minute、/hour、/day或使用第一個(gè)字母。例如:#Iptables-AINPUT-mlimit-limit300/hour表示限制每小時(shí)允許通過(guò)300個(gè)數(shù)據(jù)包。指定觸發(fā)事件的閥值。使用-limit-burst指定觸發(fā)事件的閥值〔默認(rèn)是5,用來(lái)比對(duì)瞬間大量數(shù)據(jù)包的數(shù)量。#Iptables-AINPUT-mlimit-limit-burst10上面的例子是用來(lái)比對(duì)一次同時(shí)涌入的封包是否超過(guò)10個(gè),超過(guò)此上限的包將被直接丟棄。同時(shí)指定速率限制和觸發(fā)閥值。#Iptables-AINPUT-picmp-mlimit-limit3/m-limit-burst3假設(shè)均勻通過(guò),平均每分鐘3個(gè),那么觸發(fā)閥值burst保持為3個(gè),如果每分鐘通過(guò)的包的數(shù)目小于3,那么觸發(fā)閥值burst將在每個(gè)周期〔若每分鐘允許通過(guò)3個(gè),則周期數(shù)為20秒后加1,但最大值為3。每分鐘要通過(guò)的包的數(shù)量如果超過(guò)3,那么觸發(fā)閥值burst將減掉超出的數(shù)值,例如第二分鐘有4個(gè)包,那么觸發(fā)閥值burst變成2,同時(shí)4個(gè)包都可以通過(guò),第三分鐘有6個(gè)包,則只能通過(guò)5個(gè),觸發(fā)閥值burst將變成0。之后,每分鐘如果包數(shù)小于等于3,則觸發(fā)閥值burst將加1,如果每分鐘包數(shù)大于3,觸發(fā)閥值burst將逐漸減小最終維持為0。即每分鐘所允許的最大包數(shù)量為限制速率〔本例為3加上當(dāng)前的觸發(fā)閥值burst數(shù)。在任何情況下,都可以保證3個(gè)包通過(guò),觸發(fā)閥值burst相當(dāng)于是允許額外的包數(shù)量?;跔顟B(tài)的匹配擴(kuò)展
每個(gè)網(wǎng)絡(luò)連接包括以下信息:源地址、目的地址、源端口、目的湍口,稱為套接字對(duì)〔socketpairs;協(xié)議類型、連接狀態(tài)〔TCP協(xié)議和超時(shí)時(shí)間等。防火墻把這些信息稱為狀態(tài)〔stateful,能夠檢測(cè)每個(gè)連接狀態(tài)的防火墻叫作狀態(tài)包過(guò)濾防火墻。它除了能夠完成簡(jiǎn)單包過(guò)濾防火墻的包過(guò)濾工作外,還在自己的內(nèi)存中維護(hù)一個(gè)跟蹤連接狀態(tài)的表,比簡(jiǎn)單包過(guò)濾防火墻具有更大的安全性。Iptables與ipchains的不同之處在于Iptables可以使用連接狀態(tài)信息,創(chuàng)建基于包的狀態(tài)的規(guī)則匹配。Iptables-mstate-state[!]state[state,state,state]其中,state表是一個(gè)用逗號(hào)分割的列表,用來(lái)指定的連接狀態(tài)可以是如下的4種:NEW:該包想要開(kāi)始一個(gè)連接〔重新連接或?qū)⑦B接重定向。RELATED:該包是屬于某個(gè)已經(jīng)建立連接[4]所建立的新連接。例如:FTP的數(shù)據(jù)傳輸連接和控制連接之間就是RELATED關(guān)系。ESTABLISHED:該包屬于某個(gè)已經(jīng)建立的連接。INVALID:該包不匹配于任何連接,通常這些包會(huì)被DROP。例如:在INPUT鏈添加一條規(guī)則,匹配已經(jīng)建立的連接或由已經(jīng)建立的連接所建立的新連接。即匹配所有的TCP回應(yīng)包。#Iptables-AINPUT-mstate-stateRELATED,ESTABLISHED在INPUTP鏈添加一條規(guī)則,匹配所有從非eth0接口來(lái)的連接請(qǐng)求包。#Iptables-AINPUT-mstate-stateNEW-i!eth0又如,對(duì)于ftp連接可以使用下面的連接跟蹤:被動(dòng)ftp連接模式。#Iptables-AINPUT-ptcp-sport1024:--dport1024:-mstate-stateESTABLES-jACCEPT#Iptables-AOUTPUT-ptcp-sport1024:--dport1024:-mstate-stateESTABLISHED,RELATED-jACCEPT主動(dòng)ftp連接模式。#Iptables-AINPUT-ptcp-sport20-mstate-stateESTABLISHED,RELATED-jACCEPT-mstate-stateESTABLISHED-jACCEPTToS匹配擴(kuò)展所有數(shù)據(jù)包的首部都有一個(gè)稱為服務(wù)類型的專用字段。該字段用于當(dāng)數(shù)據(jù)包經(jīng)過(guò)路由器時(shí)區(qū)分優(yōu)先順序。使用ToS字段,可以使用某種類型的數(shù)據(jù)包優(yōu)先于其它的數(shù)據(jù)包。有標(biāo)記的數(shù)據(jù)包在路由器中進(jìn)行不同的處理。設(shè)置ToS字段的工作是在網(wǎng)絡(luò)層進(jìn)行的。有關(guān)ToS的具體工作過(guò)程請(qǐng)參專考RFC1349。在數(shù)據(jù)包中設(shè)置ToS字段的主要原因是:對(duì)不同類型的數(shù)據(jù)包加以區(qū)分,從而在流量較高的網(wǎng)絡(luò)上減少網(wǎng)絡(luò)擁塞。數(shù)據(jù)包的ToS字段用一個(gè)字節(jié)表示。此字節(jié)的高3位舍棄不用,最低位使用固定值0,因此,有效位共有4個(gè)。有效位分別用來(lái)控制數(shù)據(jù)包的最小延時(shí),最大吞吐量,最大可靠度和最小成本。其中最小延時(shí):用于減少數(shù)據(jù)包從路由到達(dá)主機(jī)的時(shí)間。最大吞吐量:用于提高數(shù)據(jù)傳輸量。適用于FTP數(shù)據(jù)端口,大文件傳輸和大量的POP3傳輸。最大可靠度:用來(lái)試圖減少數(shù)據(jù)重傳。最小成本:通常只在商業(yè)產(chǎn)品中使用。要?jiǎng)?chuàng)建與ToS字段匹配的規(guī)則,可以使用下面的語(yǔ)法:Iptables[-ttable]CMD[chain]-mtostos_value[-jtarget],其中tos_value可以是0x02、0x04、0x06、0x08、0x10。3.4設(shè)置目標(biāo)擴(kuò)展要獲得目標(biāo)的簡(jiǎn)要說(shuō)明,可以使用如下的命令:#Iptables-jname_of_TARGET-help目標(biāo)擴(kuò)展由內(nèi)核模塊組成,而且Iptables的一個(gè)可選擴(kuò)展提供了新的命令行選項(xiàng)。在幾個(gè)擴(kuò)展是包含在默認(rèn)netfilter發(fā)布中的。1、設(shè)置包的ToS值。為了設(shè)置數(shù)據(jù)包的ToS值,需要使用ToS目標(biāo)擴(kuò)展。設(shè)置ToS的值,只能對(duì)FORWARD、OUTPUT和PREROUTING鏈進(jìn)行。語(yǔ)法如下:Iptables[-ttable]CMD[chain][rule-matcher]-jTOS-set-tostos_value其中tos_value可以是0x02、0x04、0x06、0x08、0x10。2、日志記錄,Iptables使用新的目標(biāo)擴(kuò)展LOG來(lái)實(shí)現(xiàn)日志記錄。LOG目標(biāo)用syslogd記錄此包并繼續(xù)傳播。LOG目標(biāo)擴(kuò)展還可以使用如下的一些參數(shù):log-level--跟蹤一個(gè)級(jí)別名稱或數(shù)字。合適的名字是‘debug’、‘info’、‘notice’、‘warning’、‘err’、‘crit’、‘a(chǎn)lert’和‘emerg’,相當(dāng)于數(shù)字7到0。參考syslog.conf的手冊(cè)可獲取這些級(jí)別的說(shuō)明。默認(rèn)是‘warning’。log-prefix——跟蹤一個(gè)最多29個(gè)字符的字符串,它被寫入到log信息的開(kāi)始處,這樣可以方便地使用grep對(duì)日志進(jìn)行過(guò)濾。另外,在使用LOG目標(biāo)擴(kuò)展的同時(shí),還可以使用limitmatch,這樣可以使記錄有用日志的同時(shí)確保日志記錄不會(huì)變得冗長(zhǎng)。下面是使用LOG目標(biāo)擴(kuò)展的一些例子:#Iptables-AFORWARD-mtcp-ptcp-jLOG#Iptables-AFORWARD-micmp-picmp-sportecho-reply-jLOG4防火墻的設(shè)計(jì)與實(shí)現(xiàn)4.1網(wǎng)絡(luò)結(jié)構(gòu)假設(shè)內(nèi)部網(wǎng)有有效的Internet地址。為了將內(nèi)部網(wǎng)段/24與Internet隔離,在內(nèi)部網(wǎng)絡(luò)和Internet之間使用了包過(guò)濾防火墻。防火墻的網(wǎng)接口是eth1<54>,防火墻的Internet接口是eth0<54>。加外,內(nèi)網(wǎng)中有3臺(tái)服務(wù)器對(duì)外提供服務(wù),如圖4.1所示。分別為:WWW服務(wù)器:IP地址為51FTP服務(wù)器:IP地址為52E-mail服務(wù)器:IP地址為53圖4.1網(wǎng)絡(luò)拓?fù)鋱D4.2防火墻的實(shí)現(xiàn)要求1、允許網(wǎng)絡(luò)接口相連接的網(wǎng)絡(luò)之間相互通信。2、從網(wǎng)絡(luò)發(fā)往internet的數(shù)據(jù)包被偽裝成IP地址54。3、網(wǎng)絡(luò)上的任何主機(jī)可以使用internet的任何服務(wù)〔Web,E-mail,Ftp等。4、拒絕從防火墻的internet接口〔eth0進(jìn)行的欺騙攻擊〔即黑客把防火墻作為默認(rèn)網(wǎng)關(guān),偽裝成內(nèi)部網(wǎng)IP,進(jìn)入內(nèi)部網(wǎng)絡(luò),并進(jìn)行日志記錄。5、拒絕全部從eth0進(jìn)入的ICMP通信。6、允許internet用戶訪問(wèn)網(wǎng)絡(luò)中的DNS服務(wù)、WEB服務(wù)、FTP服務(wù)〔其它服務(wù)禁止如telnet等。4.3防火墻的實(shí)現(xiàn)原理包過(guò)濾器操作的基本過(guò)程如下,器工作流程圖如圖4.2所示:包過(guò)濾規(guī)則必須被包過(guò)濾設(shè)備端口存儲(chǔ)起來(lái)。當(dāng)包到達(dá)端口時(shí),對(duì)包報(bào)頭進(jìn)行語(yǔ)法分析。大多數(shù)包過(guò)濾設(shè)備只檢查IP、TCP、或UDP報(bào)頭中的字段。包過(guò)濾規(guī)則已特殊的方式存儲(chǔ)。應(yīng)用于包的規(guī)則的順序與包過(guò)濾器規(guī)則存儲(chǔ)順序必須相同。若一條規(guī)則阻止包傳輸或接收,則此包不被允許。若一條規(guī)則允許包傳輸或接收,則此包可以被繼續(xù)處理。若包不滿足任何一條規(guī)則,則此包被阻止。圖4.2包過(guò)濾操作流程圖數(shù)據(jù)包在Filter表中的流程圖如圖4.3所示,數(shù)據(jù)包的過(guò)濾過(guò)程如圖4.4所示。有數(shù)據(jù)包進(jìn)入系統(tǒng)時(shí),系統(tǒng)首先根據(jù)路由表決定將數(shù)據(jù)包發(fā)給哪一條鏈,則可能有3種情況:<1>如果數(shù)據(jù)包的目的地址是本機(jī),則系統(tǒng)將數(shù)據(jù)包送往INPUT鏈,如果通過(guò)規(guī)則檢查,則該數(shù)據(jù)包發(fā)給相應(yīng)的本地進(jìn)程處理;如果沒(méi)有通過(guò)規(guī)則檢查,系統(tǒng)就會(huì)將這個(gè)包丟棄。<2>如果數(shù)據(jù)包的目的地址不是本機(jī),也就是說(shuō),這個(gè)包將被轉(zhuǎn)發(fā),則系統(tǒng)將數(shù)據(jù)包送往FORWARD鏈,如果通過(guò)規(guī)則檢查,則該包被發(fā)給相應(yīng)的本地進(jìn)程處理;如果沒(méi)有通過(guò)規(guī)則檢查,系統(tǒng)就會(huì)將這個(gè)包丟棄。<3>如果數(shù)據(jù)包是由本地系統(tǒng)進(jìn)程產(chǎn)生的,則系統(tǒng)將其送往OUTPUT鏈,如果通過(guò)規(guī)則檢查,則該包被發(fā)給相應(yīng)的本地進(jìn)程處理;如果沒(méi)有通過(guò)規(guī)則檢查,系統(tǒng)就會(huì)將這個(gè)包丟棄。圖4.3數(shù)據(jù)包在Filter表中的處理流程圖圖4.4信息包過(guò)濾過(guò)程示意圖4.4防火墻的建立過(guò)程此防火墻主要是對(duì)內(nèi)部的各種服務(wù)器提供保護(hù)。下面采用編輯并執(zhí)行可執(zhí)行腳本的方法建立此防火墻。其截圖如圖4.5所示,具本過(guò)程如下:圖4.5RedHat9.0中的安全設(shè)置截圖基本規(guī)則的配置#!/sbin/bash在屏幕上顯示信息:echo"StartingIptablesrules..."開(kāi)啟內(nèi)核轉(zhuǎn)發(fā)功能echo"1">;/proc/sys/net/ipv4/ip_forward定義變量:IPT=/sbin/IptablesWWW-SERVER=51FTP-SERVER=52EMAIL-SERVER=53IP_RANGE="/24"刷新所有的鏈的規(guī)則:$IPT–F首先禁止轉(zhuǎn)發(fā)任何包,然后再一步步設(shè)置允許通過(guò)的包,所以首先設(shè)置防火墻FORWARD鏈的策略為DROP。$IPT-PFORWARDDROP下面設(shè)置關(guān)于服務(wù)器的包過(guò)濾規(guī)則,由于服務(wù)器/客戶機(jī)交互是雙向的,所以不僅僅要設(shè)置數(shù)據(jù)包,出去的規(guī)則,還要設(shè)置數(shù)據(jù)包返回的規(guī)則。<1>WWW服務(wù)服務(wù)端口為80,采用tcp或udp協(xié)議,規(guī)則為eth0=>;允許目的為內(nèi)部網(wǎng)WWW服務(wù)器的包:$IPT-AFORWARD-ptcp-d$WWW-SERVER-dportwww-ieth0-jACCEPT<2>FTP服務(wù)服務(wù)端口為21,數(shù)據(jù)端口20,FTP的傳輸模式有主動(dòng)和被動(dòng)之分,FTP服務(wù)采用tcp協(xié)議,規(guī)則為eth0=>;僅允許目的為內(nèi)部網(wǎng)ftp服務(wù)器的包$IPT-AFORWARD-ptcp-d$FTP-SERVER-dportftp-ieth0-jACCEPT<3>EMAIL服務(wù)包含兩個(gè)協(xié)議,一個(gè)是smtp,另一個(gè)是pop3,出于安全性考慮,通常只提供對(duì)內(nèi)的pop3服務(wù),所以在這里我們只考慮對(duì)smtp的安全性問(wèn)題。smtp端口為25,采用tcp協(xié)議,規(guī)則為etho=>;僅允許目的為E-mail服務(wù)器的smtp請(qǐng)求。$IPT-AFORWARD-ptcp-d$EMAIL-SERVER-dportsmtp-ieth
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 完整版拆除工程施工方案
- DB6103T 41-2025玉米-小麥輪作機(jī)械化生產(chǎn)技術(shù)規(guī)范
- DB3715T 76-2025地理標(biāo)志產(chǎn)品 冠縣鴨梨
- 個(gè)人小額借款合同模板全集
- 萬(wàn)科地產(chǎn)租賃合同范本
- 2025年大型機(jī)械租賃服務(wù)合同
- 二手房買賣標(biāo)準(zhǔn)合同樣本
- 京東店鋪?zhàn)赓U合同模板
- 臨時(shí)借調(diào)合同模板(企業(yè)與員工)
- 個(gè)人汽車抵押合作合同書
- 動(dòng)物檢疫技術(shù)-動(dòng)物檢疫的方法方式(動(dòng)物防疫與檢疫技術(shù))
- DB31 SW-Z 017-2021 上海市排水檢測(cè)井圖集
- 日語(yǔ)專八分類詞匯
- GB/T 707-1988熱軋槽鋼尺寸、外形、重量及允許偏差
- GB/T 33084-2016大型合金結(jié)構(gòu)鋼鍛件技術(shù)條件
- 高考英語(yǔ)課外積累:Hello,China《你好中國(guó)》1-20詞塊摘錄課件
- 茶文化與茶健康教學(xué)課件
- 降水預(yù)報(bào)思路和方法
- 虛位移原理PPT
- QE工程師簡(jiǎn)歷
- 輔音和輔音字母組合發(fā)音規(guī)則
評(píng)論
0/150
提交評(píng)論