




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
CIW平安課程之
基于IPTABLES的
包過濾防火墻王世宏金鋮計(jì)算機(jī)學(xué)校包過濾防火墻簡介所謂包過濾就是由一個(gè)軟件查看所流經(jīng)的數(shù)據(jù)包的包頭,由此決定整個(gè)數(shù)據(jù)包的命運(yùn)。它可能會決定是丟棄〔DROP〕還是接受〔ACCEPT〕也可能執(zhí)行更為復(fù)雜的動(dòng)作。在LINUX系統(tǒng)中包過濾是基于內(nèi)核的包過濾的工作層次是在網(wǎng)絡(luò)層?!惨?yàn)榉阑饓κ腔诼酚傻乃栽诘谌龑印嘲^濾防火墻的工作原理使用過濾器,數(shù)據(jù)包的過濾用在內(nèi)部主機(jī)和外部主機(jī)之間,而過濾系統(tǒng)是一臺路由器或是一臺主機(jī)。過濾系統(tǒng)根據(jù)過濾規(guī)那么來決定是否讓數(shù)據(jù)包通過。而用于過濾數(shù)據(jù)包的路由器被稱作過濾路由器。internet過濾路由器內(nèi)部網(wǎng)絡(luò)數(shù)據(jù)包過濾是通過對數(shù)據(jù)包的IP頭和TCP或UDP頭的檢查來實(shí)現(xiàn)的。其檢查的對象主要包括:IP源地址IP目標(biāo)地址協(xié)議〔TCP包、UDP包和ICMP包〕TCP和UDP包的源端口TCP和UDP包的目標(biāo)端口ICMP消息類型TCP包頭中的SYN位數(shù)據(jù)包到達(dá)的接口數(shù)據(jù)包出去的接口過濾路由器與普通路由器的區(qū)別過濾路由器在在提供普通路徑選擇的同時(shí)還要仔細(xì)的查看數(shù)據(jù)包,以決定是否應(yīng)該發(fā)送這個(gè)數(shù)據(jù)包。當(dāng)然是由自己的決策所限制的〔由管理員設(shè)定〕另外過濾路由器〔防火墻〕又被稱作是包過濾網(wǎng)關(guān),主要因?yàn)樗婕暗搅藗鬏攲?。路由器的過濾決策主要有:拒絕來自某主機(jī)或某網(wǎng)段的所有連接允許來自某主機(jī)或某網(wǎng)段的所有連接拒絕來自某網(wǎng)段和某主機(jī)的指定端口的連接允許來自某網(wǎng)段和某主機(jī)的指定端口的連接拒絕本地主機(jī)或網(wǎng)段與其他主機(jī)或網(wǎng)段的所有連接允許本地主機(jī)或網(wǎng)段與其他主機(jī)或網(wǎng)段的所有連接拒絕本地主機(jī)或網(wǎng)段與其他主機(jī)或網(wǎng)段的指定端口連接允許本地主機(jī)或網(wǎng)段與其他主機(jī)或網(wǎng)段的指定端口連接包過濾的操作流程其實(shí)包過濾的流程與華為路由器中的ACL的過程差不多少。是是否是存儲包過濾規(guī)那么分析包頭字段IP、UDP、TCP應(yīng)用下一個(gè)包規(guī)那么包規(guī)那么是否允許包規(guī)那么是否阻塞是否是最后一個(gè)包規(guī)那么阻塞包允許包Netfilter/iptables架構(gòu)其實(shí)架構(gòu)就是指一套能在LINUX系統(tǒng)中方便用戶完成防火墻配置及管理的工具。從內(nèi)核版本為1.1的時(shí)候LINUX就有了包過濾的功能了,隨內(nèi)核版本的升級,LINUX下的包過濾經(jīng)歷了如下的階段:1、在內(nèi)核為2.0的時(shí)候,采用ipfwadm來操作內(nèi)核包過濾規(guī)那么2、在內(nèi)核為2.2時(shí),采用ipchains3、在內(nèi)核為2.4以后采用一個(gè)全新的內(nèi)核包過濾管理工具iptables其中,IPTABLES較前兩種工具而言更具優(yōu)先性和易用性。####注意####netfilter/iptables系統(tǒng)的含意為:在linux2.4內(nèi)核中netfilter是新的用來實(shí)現(xiàn)防火墻的過濾器,iptables是用來指定netfilter規(guī)那么的用戶工具。Iptables只是一個(gè)管理內(nèi)核包過濾的工具,它為用戶配置防火墻規(guī)那么提供了方便。Iptables可以參加、插入、或刪除核心包過濾表格、鏈中的規(guī)那么,實(shí)際上真正執(zhí)行這些規(guī)那么的是netfilter及相應(yīng)模塊〔NAT等〕。Netfilter/iptables的用途建立internet防火墻用NAT和偽裝共享上網(wǎng)〔偽裝是NAT的一種〕用NAT實(shí)現(xiàn)透明代理復(fù)雜一點(diǎn)的能夠?qū)崿F(xiàn)QOS路由Netfilter/iptables的內(nèi)核空間和用戶空間實(shí)際上Netfilter/iptables看似一個(gè)實(shí)體,但是由兩種組件組成,即:1、內(nèi)核空間:即Netfilter組件,是內(nèi)核的一局部。由一些表〔TABLE〕組成,每個(gè)表由假設(shè)干鏈〔CHAINS〕組成,每個(gè)鏈中又可以參加假設(shè)干規(guī)那么〔RULE〕Netfilter/iptables用戶空間用戶空間:即iptables組件,它是一種工具,使插入、修改或者除去過濾表中的規(guī)那么變的簡單。本章相關(guān)重點(diǎn)1LINUX系統(tǒng)中默認(rèn)有三張表格即:filter(包過濾〕NAT、mangle.每個(gè)表〔內(nèi)核空間〕中又有默認(rèn)的鏈。其中mangle表不常使用,還在進(jìn)一步開發(fā)中。本單元重點(diǎn)講FILTER表。〔NAT表將在下一單元詳述〕內(nèi)核各表中包含的鏈iptables根據(jù)不同的數(shù)據(jù)包處理功能使用不同的規(guī)那么表。filter——filter表是默認(rèn)的表。它包含真正的防火墻過濾規(guī)那么。內(nèi)建的規(guī)那么鏈包括:·INPUT·OUTPUT·FORWARDnat——nat表包含源和目的地址和端口轉(zhuǎn)換使用的規(guī)那么。這些規(guī)那么在功能上不同于防火墻過濾規(guī)那么。內(nèi)建的規(guī)那么鏈包括:·PREROUTING(DNAT/REDIRECT)·OUTPUT(DNAT/REDIRECT)·POSTROUTING(SNAT/MASQUERADE)mangle——mangle表包含用于設(shè)置特殊的數(shù)據(jù)包路由標(biāo)志的規(guī)那么。這些標(biāo)志隨后被filter表中的規(guī)那么檢查。內(nèi)建的規(guī)那么鏈包括:·PREROUTING(被路由的數(shù)據(jù)包)·INPUT(到達(dá)防火墻并通過PREROUTING規(guī)那么鏈的數(shù)據(jù)包)·FORWARD(修改通過防火墻路由出去的數(shù)據(jù)包)·POSTROUTING(在數(shù)據(jù)包通過OUTPUT規(guī)那么鏈之后但離開防火墻之前修改數(shù)據(jù)包)·OUTPUT(本地產(chǎn)生的數(shù)據(jù)包)本章相關(guān)重點(diǎn)2在包過濾防火墻的配置中,我們可以把一些規(guī)那么納入到filter表中的各鏈。Filter表中默認(rèn)有三個(gè)鏈,分別是:1、INPUT〔存放入站信息包規(guī)那么〕2、OUTPUT〔存放出站信息包規(guī)那么〕3、FORWARD〔存放正在轉(zhuǎn)發(fā)的信息包的規(guī)那么〕具體的過濾實(shí)現(xiàn)原理的步驟見下:過濾原理及步驟當(dāng)用戶用IPTABLES往鏈中添加完規(guī)那么之后,內(nèi)核空間接管過濾的工作。####包過濾工作經(jīng)過如下步驟###1、路由,當(dāng)信息包到達(dá)防火墻時(shí),內(nèi)核先檢查包頭信息,尤其是目標(biāo)IP。2、根據(jù)情況將數(shù)據(jù)包送往過濾表〔filter)的不同鏈如果信息包源自外界并且數(shù)據(jù)包的目的地是本機(jī),且防火墻是翻開的,那么內(nèi)核將其放入INPUT鏈。如果信息包源自本機(jī)或系統(tǒng)所連接的內(nèi)部網(wǎng)上的其他源,并且想前往另一個(gè)外部系統(tǒng),那么內(nèi)核將其送往OUTPUT鏈。如果信息包源自外部系統(tǒng)并前往外部系統(tǒng),剛被傳遞到FORWARD鏈3、規(guī)那么檢查,將信息包的頭信息與它所傳遞到的鏈中的每條規(guī)那么進(jìn)行比較,看是否與某條規(guī)那么完全匹配。配置RULE的那么按規(guī)那么中指定操作進(jìn)行。如:ACCEPT或DROP、REJECT如果不匹配當(dāng)前規(guī)那么那么繼續(xù)往下一條規(guī)那么匹配。最后如果信息包與鏈中的任何規(guī)那么都不匹配,那么內(nèi)核一般丟棄該包。數(shù)據(jù)包穿越FILTER表的流程圖入站包出站包路由FORWARDINPUT本地處理進(jìn)程OUTPUTRHEL4中的netfilter/iptables在此系統(tǒng)中該架構(gòu)的軟件包是被自動(dòng)安裝的??芍苯邮褂?。另外為了要完成轉(zhuǎn)發(fā)也就是說讓LINUX系統(tǒng)成為路由器,所以必須翻開內(nèi)核轉(zhuǎn)發(fā)功能。有兩種方法:1、修改內(nèi)核變量echo“1”>/proc/sys/net/ipv4/ip_forward2、修改腳本/etc/sysconfig/network將FORWARD_IPV4=false(將false改為true)相關(guān)的TCP/IP知識TCP通過三次握手建立通信假設(shè)A和B通信,1、首先A向B發(fā)一個(gè)SYN標(biāo)記的包請求聯(lián)接,只有對方接到這個(gè)包才可建立聯(lián)接?!矒Q句話說如果你的防火墻丟棄所有SYN包,那么你將不能與外網(wǎng)的任何主機(jī)建立連接〕2、接著B會對A發(fā)一個(gè)確認(rèn)SYN的包SYN/ACK,繼續(xù)握手操作3、A會再往B發(fā)一個(gè)確認(rèn)包,至此通信建立。Iptables語法Iptables規(guī)那么根本上應(yīng)該包含5個(gè)要素。1、指定表〔table)<防火墻只使用filter>2、指定操作命令〔CMD〕<包括添加、刪除、更新>3、指定鏈〔chains)<前文所講的三個(gè)>4、指定規(guī)那么匹配器〔matcher)<可指定多種匹配如:IP、端口、包類型。5、指定目標(biāo)動(dòng)作〔target)<此項(xiàng)為重要內(nèi)容,如果沒有此項(xiàng)內(nèi)容鏈的操作將無意義,主要包括這些:ACCEPT表示允許包通過DROP丟棄。REJECT表示拒絕包,給發(fā)送者發(fā)送沒有接受的通知。通??梢詫憺槿缦碌暮喕蝿輎ptables[-ttable]CMD[chain][rule-matcher][-jtarget]****操作命令****-A在所選鏈鏈尾參加一條或多條規(guī)那么-D從所選鏈中刪除一條或多條匹配的規(guī)那么-R在所選鏈中替換一條匹配的規(guī)那么-L列出指定鏈中所有的規(guī)那么-F去除指定鏈和表中的所有規(guī)那么-N以給定的名字建立一個(gè)用戶自定義鏈對鏈的操作列表命令帶有額外的選項(xiàng)常用的創(chuàng)立和刪除規(guī)那么鏈中規(guī)那么的命令規(guī)那么匹配器參數(shù)TCP頭部匹配
udp頭部匹配ICMP頭部匹配主要支持的ICMP類型名和數(shù)值如下所示:·echo-reply(0)·destination-unreachable(3)·network-unreachable·host-unreachable·protocol-unreachable·port-unreachable·fragmentation-needed·network-unknown·host-unknown·network-prohibited#網(wǎng)絡(luò)被禁止·host-prohibited#主機(jī)被禁止·source-quench(4)#源抑制〔可能是發(fā)包太快會收到此消息警告〕·redirect(5)#重定向·echo-request(8)#PING請求·time-exceeded(11)#超時(shí)·parameter-problem(10)#參數(shù)問題其他的ICMP支持iptables支持一些其他不常見或路由專用的ICMP消息類型和子類型。用下面的iptables幫助命令可以查看其整個(gè)列表:iptables-Picmp-h
filter表目標(biāo)擴(kuò)展目標(biāo)動(dòng)作除了DROP與ACCEPT外還有如下擴(kuò)展目標(biāo)動(dòng)作:-jLOG目標(biāo)動(dòng)作除了DROP與ACCEPT外還有如下擴(kuò)展目標(biāo)動(dòng)作:-jREJECT
filter表匹配擴(kuò)展filter表的匹配擴(kuò)展提供了對TCP、UDP和ICMP頭部的訪問,和一些可在iptables中進(jìn)行匹配的特性,像維持連接的狀態(tài)、端口列表、訪問硬件的MAC源地址和IP的TOS字段。
匹配擴(kuò)展要求-m或--match命令來裝載模塊,后面跟著任何相關(guān)的匹配選項(xiàng)
1.multiportfilter表匹配擴(kuò)展每個(gè)multiport端口列表最多可以包括15個(gè)端口。不允許有空格。命令和端口值之間可以沒有空格。列表中不能使用端口范圍。另外,-mmultiport命令必須緊跟在-P<protocol>定義的后面。多端口匹配例子multiport的語法比較靈活。這里有一些例子和本卷須知。下面的這個(gè)規(guī)那么阻塞到達(dá)接口eth0的入站數(shù)據(jù)包,這些數(shù)據(jù)包的目的地址為與NetBIOS和SMB有關(guān)的UDP端口或微軟Windows計(jì)算機(jī)常用的但已成為蠕蟲攻擊目標(biāo)的端口:iptables-AINPUT-iethO-pudp\-mmultiport--destination-port135,136,137,138,139-jDROP下一個(gè)規(guī)那么阻塞從eth0接口發(fā)送到與TCP效勞NFS、socks和squid相關(guān)的高端端口的連接請求:iptables-AOUTPUT-oeth0-ptcp\-mmultiport--destination-port2049,1080,3128--syn-jREJECT本例中需要注意的是多端口命令必須緊跟在協(xié)議定義的后面。如果--syn放在-Ptcp和-mmultiport之間,就會有語法錯(cuò)誤產(chǎn)生。limitfilter表匹配擴(kuò)展頻率限制數(shù)據(jù)包的接受也是可能的。當(dāng)一秒內(nèi)收到5個(gè)echo-requests,下面的兩個(gè)規(guī)那么一起限制對入站ping數(shù)據(jù)包的接受到每秒一個(gè)。iptables-AINPUT-iethO\-picmp--icmp-typeecho-request\-mlimit--limit1/second-jACCEPTiptables-AINPUT-iethO\-picmp--icmp-typeecho-request-jDROP峰值定義了通過初始匹配的數(shù)據(jù)包的數(shù)量,默認(rèn)值是5。當(dāng)?shù)竭_(dá)了限制值,后面的匹配就會受到頻率限制。默認(rèn)的頻率限制是每小時(shí)3次匹配??蛇x的時(shí)間幀定義包括/second、/minute、/hour和/day。換句話說,默認(rèn)情況下,當(dāng)時(shí)間限制內(nèi)的5次匹配初始峰值到達(dá)后,下一個(gè)小時(shí)中最大有三個(gè)數(shù)據(jù)包被匹配,每20分鐘一個(gè),而不管收到了多少個(gè)數(shù)據(jù)包。如果在頻率限制內(nèi)一個(gè)也沒有匹配,那么峰值變?yōu)?。下面例子限制用來響應(yīng)被丟棄的ICMPredirect消息的日志消息的數(shù)量。當(dāng)在20分鐘內(nèi)5個(gè)初始消息被記錄,那么后一個(gè)小時(shí)內(nèi)最多產(chǎn)生3個(gè)日志消息,每20分鐘一個(gè):
iptables-AINPUT-iethO\-picmp--icmp-typeredirect\-mlimit-jLOGmac匹配擴(kuò)展的可行選項(xiàng)記住,MAC地址不能越過路由邊界(或網(wǎng)絡(luò)段)。也要記住,只有源地址可以被指定。Mac擴(kuò)展僅僅用在in-interface,像INPUT、PREROUTING和FORWARD規(guī)那么鏈。
下面的規(guī)那么允許來自一臺本地主機(jī)的入站SSH連接:iptables-AINPUT-i<localinterface>-ptop\-mmac--mac-sourcexx:xx:xx:xx:xx:xx\--source-port1024:65535\-d<IPADDR>--dport22-jACCEPT特殊匹配擴(kuò)展介紹TOSUIDMARKlength通過使用iprange匹配,你可以指定任意的IP地址范圍來進(jìn)行匹配。iprange匹配也可以進(jìn)行否認(rèn)匹配。表3-22列出了iprange匹配命令。Iptables命令使用舉例鏈的根本操作一般在配置包過濾防火墻這初要去除所有規(guī)那么,重新配置,以免原有規(guī)那么影響新的設(shè)定。使用如下命令執(zhí)行:1、去除預(yù)設(shè)表filter中所有鏈中的規(guī)那么iptables–F2、去除使用者自定義鏈中的規(guī)那么iptables–X3、將指定鏈中所有規(guī)那么的包字節(jié)記數(shù)器清零設(shè)置鏈的默認(rèn)策略,即每個(gè)鏈中的最后一個(gè)限制條目,一般有兩種方式:1、沒有拒絕的都允許?!泊朔绞綄τ脩舳院莒`活,但容易引起平安問題〕初始化命令為:iptables–PINPUTACCEPTiptables–POUTPUTACCEPTiptables–PFORWARDACCEPT
2、沒有明確允許的都被拒絕,這種方法最平安,但不太方便。為了使系統(tǒng)有足夠的平安性一般采用此策略。初始化命令為:把上面的例子中的ACCEPT換成DROP3、iptables–L列出表/鏈中的所有規(guī)那么。4、向鏈中添加規(guī)那么,用于開放網(wǎng)絡(luò)接口iptables–AINPUT–ilo–jACCEPTiptables–AOUTPUT–olo–jACCEPTiptables–AINPUT–i
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 賣隨車吊合同范本
- 勞務(wù)下浮合同范本
- 加盟制式合同范本
- led設(shè)備租賃合同范本
- 單位安全合同范例
- 公園勞務(wù)服務(wù)合同范本
- 賣沙居間合同范本
- 倉儲貨架采購合同范本
- 包裝印刷銷售合同范本
- 變壓器加工合同范本
- JC-019粉煤灰檢測報(bào)告
- VTE相關(guān)知識考核試題及答案
- 高中語文教學(xué)課例《沁園春長沙》課程思政核心素養(yǎng)教學(xué)設(shè)計(jì)及總結(jié)反思
- 三生公司獎(jiǎng)金制度
- 神經(jīng)病學(xué)-緒論課件
- 危險(xiǎn)化學(xué)品全表
- 公路施工技術(shù)全套課件
- 胸痹心痛中醫(yī)診療方案及臨床路徑
- 泛讀2unit2-music
- 中學(xué)生防溺水安全教育課件(PPT 44頁)
- 2019版外研社高中英語選擇性必修二Unit 1 Growing up 單詞表
評論
0/150
提交評論