linux下iptablesLinux防火墻學(xué)習(xí)筆記一入門要領(lǐng)_第1頁
linux下iptablesLinux防火墻學(xué)習(xí)筆記一入門要領(lǐng)_第2頁
linux下iptablesLinux防火墻學(xué)習(xí)筆記一入門要領(lǐng)_第3頁
linux下iptablesLinux防火墻學(xué)習(xí)筆記一入門要領(lǐng)_第4頁
linux下iptablesLinux防火墻學(xué)習(xí)筆記一入門要領(lǐng)_第5頁
免費預(yù)覽已結(jié)束,剩余20頁可下載查看

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Linuxiptables學(xué)習(xí)筆記(一)入門要首先我們要弄明白,將怎么對待這些數(shù)據(jù)包。這些數(shù)據(jù)包會經(jīng)過一些相應(yīng)的規(guī)則鏈,比如要進入你的計算機的數(shù)據(jù)包會首先進入INPUT鏈,從我據(jù)經(jīng)過這臺計算機,那么這些數(shù)據(jù)包必經(jīng)FORWARD鏈,F(xiàn)ORWARD鏈即數(shù)據(jù)轉(zhuǎn)發(fā)鏈。明白了這些“鏈”的概念我們才能進一步學(xué)習(xí)使用iptables。,我們要對 過OUTPUT鏈,在請求發(fā)出前,Linux的內(nèi)核會在OUTPUT鏈中檢查有沒有相應(yīng)的規(guī)則適合這個數(shù)據(jù)包,如果沒有相應(yīng)的規(guī)則,OUTPUT鏈還會有默認的 過INPUT鏈,當(dāng)然,INPUT鏈中也會有相應(yīng)的規(guī)則等著它。下面我們介紹幾個iptableiptables-L[-tChainINPUTpolicyACCEPTtargetprotoptsourcedestinationChainFORWARD(policyACCEPT)targetprotoptsourcedestinationChainOUTPUT(policyACCEPT)targetprotoptsourcedestination從這里我們可以看出,iptablesINPUTOUTPUTINPUT是外部數(shù)據(jù)要進過我們主機的第一外關(guān)卡(OUTPUT 是轉(zhuǎn)發(fā)你在NAT要設(shè)置iptables主要是對這三條鏈進行設(shè)置,當(dāng)然也包括-nat你要用iptablesserviceiptablesrestartiptables的默認設(shè)置為三條鏈都是ACCEPT如下:iptables-PINPUTACCEPTiptables-POUTPUTACCEPTiptables-PFORWARDACCEPTiptablesL看到總體來說iptables可以有二種設(shè)置默認允許,特別默認,允許特別的.但iptalbes默認是第一種默認允許,特別的iptables-PINPUTDROPiptables-POUTPUTDROPiptables-PFORWARDDROP你再用iptablesL查看一下就會覺得默認值以改了-F-X-Z基本語法iptables[-tfilter][-AIINPUT,OUTPUT,FORWARD][-iointerface][-ptcp,udp.icmp,all][-sip/nerwork][--sportports][-dip/netword][--dportports][-jACCEPT以上是iptablesAIio指的是數(shù)據(jù)要進入或出去所要經(jīng)過的端口如eth1eth0pppoep-s指源地址可是單個IP如也可以是一個網(wǎng)絡(luò)/24還可以是一個如 如果你填寫的系統(tǒng)會自動解析出他的IP并在iptables里顯示--sport-d同-s相似只不過他指的是目標地址也可以是IP和網(wǎng)--dport-jACCEPT如我要來自己l0接口的數(shù)據(jù)全部接受,我們可以寫成這樣:iptables-AINPUT-ilo-jACCEPT這個IPiptablse-AINPUT-ieth1-ptcp-s-j如果我們要來自己/24這個網(wǎng) net連iptablse-AINPUT-ieth1-pudp-s/24--sport23-jLinuxiptables學(xué)習(xí)筆記(二)參數(shù)指iptables指令iptables[-ttable]command[match][-j-t參數(shù)用來指定規(guī)則表,內(nèi)建的規(guī)則表有三個,分別是:nat、manglefilter,當(dāng)未指定規(guī)則表時,則一律視為是filter。個規(guī)則表的功能如下:nat此規(guī)則表擁有Prerouting和postrouting兩個規(guī)則鏈,主要功能為進行一對一、一對多、多對多等轉(zhuǎn)譯工作(SNATDNAT),由于轉(zhuǎn)譯工作的特性,需進行目的地轉(zhuǎn)譯的封包,就不需要進行來源轉(zhuǎn)譯,反之亦然,因此為了提升改寫封包的率,在運作時,法對同一包進行多次比對,因此這個規(guī)則表除了作轉(zhuǎn)譯外,請不要做。manglePrerouting、FORWARDpostrouting規(guī)則表中,由于使用率不高,我們不打算在這里討論mangle的用法。filter這個規(guī)則表是預(yù)設(shè)規(guī)則表,擁有INPUT、FORWARD和OUTPUT三個規(guī)則鏈,這個-AiptablesAINPUT命令-D,--deleteiptablesDINPUTdport80jDROPiptables-DINPUT1令-R,--replaceiptablesRINPUT1sjDROP說明取代現(xiàn)行規(guī)則,規(guī)則被取代后并不會改變順序。命令-I,--insertiptablesIINPUT1dport80j命令-L,--listiptablesL命令-F,--flushiptablesF命令-Z,--zeroiptablesZ-N,new-iptablesNallowed說明定義新的規(guī)則鏈。命令-X,--delete-chainiptablesXallowed說明刪除某個規(guī)則鏈。命令-P,--policyiptablesPINPUT令-E,--rename-chainiptablesEallowed-piptablesAINPUTp!運算子進行反向比對,例如:-ptcp,意思鍵詞,例如:-pall。-s,srciptablesAINPUTs-s/24IP!運算子進行反向比對,例如:-s-ddst,iptablesAINPUTd參數(shù)-i,--in-interfaceiptablesAINPUTiethernet運算子進行反向比對,例如:-ieth0。參數(shù)-o,--out-interfaceiptablesAFORWARDo參數(shù)--sport,--source-portiptablesAINPUTptcpsport說明用來比對封包的來源埠號,可以比對單一埠,或是一個范圍,例如:--sport22:80,表示從2280埠之間都算是符合件,如果要比對不連續(xù)的多個埠,則必須使用--multiport參數(shù),詳見后文。比對埠號時,可以使用!運算子進行反向比對。--dportdestination-iptablesAINPUTptcpdport參數(shù)--tcp-flagsiptablesptcptcp-flagsSYN,FIN,ACK說明比對TCP封包的狀態(tài),參數(shù)分為兩個部分,第一個部分列舉出想比對的,第二PSH(強迫推送)等均可使用于參數(shù)中,除此之外還可以使用ALL和NONE進行比對。比對時,可以使用!運算子行反向比對。--iptablesptcpTCPiptablesptcptcp-flagsSYN,FIN,ACKSYN的作用完全相同,如果使用!運算子,可用來比對非要求聯(lián)機封包。-mmultiportsource-iptablesAINPUTptcpmmultiportsource-port15運算子進行-mmultiportdestination-iptablesAINPUTptcpmmultiportdestination-port參數(shù)-mmultiport--portiptablesAINPUTptcpmmultiportport本范例中,如果來源端為80目的地埠號為110,這種封包并不算符合條件。--icmp-iptablesAINPUTpicmpicmp-typeICMPiptablespicmp--help來查看有哪些代碼可用。-mlimitiptablesAINPUTmlimitlimit次3個封包。除了每小時平均次外,也可以每秒鐘、每分鐘或每天平均一次,默認值為每小時平均一次,參數(shù)如后:/second、/minute、/day。除了進行封--limit-iptablesAINPUTmlimitlimit-burst參數(shù)-mmac--mac-sourceiptablesAINPUTmmacmac-source說明用來比對封包來源網(wǎng)絡(luò)接口的硬件地址,這個參數(shù)不能用在OUTPUT和PostroutingMAC地址,所以iptables在進行封包比對時,并不知道封包會送到個網(wǎng)絡(luò)接口去。--iptablestmangleAINPUTmmarkmark 參數(shù)-mowner--uid-owneriptablesAOUTPUTmowneruid-owner-mownergid-iptablesAOUTPUTmownergid-owner數(shù)-mowner--pid-owneriptablesAOUTPUTmownerpid-owner參數(shù)-mowner--sid-owneriptablesAOUTPUTmownersid-owner參數(shù)-mstate--stateiptablesAINPUTmstatestateINVALID表示該封包的聯(lián)機編號(SessionID)無法辨識或編號不正確。ESTABLISHED表示該封包屬于某個已經(jīng)建立的聯(lián)機。RELATED表示該封包是屬于某個已經(jīng)建立的聯(lián)機,所建立的新聯(lián)機。例如:FTP-DATA聯(lián)機必定是源自某個FTP聯(lián)機。REJECT攔阻該封包,并傳送封包通知對方,可以傳送的封包有幾個選擇:ICMPport-unreachable、ICMPecho-reply或是接中斷過濾程序。范例如下:iptables-AFORWARD-pTCP--dport22-jREJECT--reject-withtcp-DROP丟棄封包不予處理,進行完此處理動作后,將不再比對其它規(guī)則,直接中斷過濾程序。REDIRECT將封包重新導(dǎo)向到另一個端口(PNAT)它規(guī)則。這個功能可以用來實作通透式-jREDIRECT--to-portsMASQUERADE改寫封包來源IP為NICIP,可以指定port對應(yīng)的范圍,進行完此進行IP時,不需指定要成哪個IP,IP會從網(wǎng)卡直接讀,當(dāng)使用撥接連線時,IP通ISPDHCPMASQUERADE特別有用。范例如下:iptables-tnat-APOSTROUTING-pTCP-jMASQUERADE--to-ports1024-31000LOG將封包相關(guān)訊息在/var/log中,詳細位置請查閱/etc/syslog.conf組態(tài)檔,進行iptables-AINPUT-ptcp-jLOG--log-prefix"INPUTSNATIPIPIPport對應(yīng)的范圍,進行完此處iptables-tnat-APOSTROUTING-ptcp-oeth0-jSNAT--to-sourceDNATIPIPIPport對應(yīng)的范圍,進行完此處理動作后,將會直接跳往下一個規(guī)煉(filter:input或filter:forward)。范例如下:iptables-tnat-APREROUTING-ptcp-d7--dport80-jDNATMIRRORIPIP對調(diào)后,將封包送回,進行完此處理動作 RETURN結(jié)束在目前規(guī)則煉中的過濾程序,返回主規(guī)則煉繼續(xù)過濾,如果把自訂規(guī)則煉看成是MARK將封包標上某個代號,以便提供作為后續(xù)過濾的條件判斷依據(jù),進行完此處理動作后,iptables-tmangle-APREROUTING-ptcp--dport22-jMARK--set-markLinuxiptables學(xué)習(xí)筆記(三)iptables命令詳解和舉iptables-Fiptables-F-tmangleiptables-tmangle-Xiptables-F-tnatiptables-tnat-Xiptables-PINPUTDROPiptables-POUTPUTDROPiptables-PFORWARDACCEPT設(shè)定INPUT、OUTPUT的默認策略為DROP,F(xiàn)ORWARD為ACCEPTiptables-AINPUT-ilo-jACCEPTiptablesAOUTPUTolojACCEPTiptables-AINPUT-ieth+-picmp--icmp-type8-jACCEPTiptablesAOUTPUToethpicmpicmp-type0jACCEPT在所有網(wǎng)卡上打開功能,便于和檢測。iptables-AINPUT-ieth0-s50-d-ptcp--dport22-j-j打開22端口,允許管理。(設(shè)定了很多的附加條件:管理機器IP必須是250,并且必須從eth0網(wǎng)卡進入)iptables-AINPUT-ieth0-s/24-ptcp--dport3128-mstate--stateNEW,ESTABLISHED-jACCEPTiptables-AOUTPUT-oeth0-d/24-ptcp--sport3128-m--stateESTABLISHED-jiptables-AINPUT-ieth1-s/24-ptcp--dport3128-mstate--stateNEW,ESTABLISHED-jACCEPTiptables-AOUTPUT-oeth1-d/24-ptcp--sport3128-m--stateESTABLISHED-jiptables-AINPUT-ieth2-ptcp--dport32768:61000-mstate--stateESTABLISHED-jACCEPTiptables-AOUTPUT-oeth2-ptcp--sport32768:61000-mstate--stateNEW,ESTABLISHED-jACCEPTiptablesAOUTPUToeth2pudpdport53jACCEPTiptables-AINPUT-ieth2-pudp--sport53-jACCEPTiptables-AINPUT-ieth0-s/24-ptcp--dport3128-mstate--stateNEW,ESTABLISHED-jACCEPT/24網(wǎng)段的機器發(fā)送數(shù)據(jù)包從eth0網(wǎng)卡進入。如果數(shù)據(jù)包是tcp協(xié)議,3128(因為REDIRECT803128了。nat表的PREROUTING的(NEW代表tcp三段式握手的“第一握”,換句話說就是,允許客戶端機器向服務(wù)器發(fā)出申請。ESTABLISHED表示通過握手已經(jīng)建立起),通過。iptables-AOUTPUT-oeth2-ptcp--sport32768:61000-mstate--stateNEW,ESTABLISHED-jACCEPT進行。(大家會奇怪應(yīng)該是1024到65535吧。其實CentOS版的linux所定義的私有端3276861000的,你可以通過catproc/sys/net/ipv4/ip_local_port_range,查看一下。)再次:這里是squid以客戶端的去其他的服務(wù)器,所以這里的源端口是32768:61000,而不是3128!iptables-AINPUT-ieth2-ptcp--dport32768:61000-mstate--stateESTABLISHED-jACCEPTiptables-AOUTPUT-oeth0-d/24-ptcp--sport3128-m--stateESTABLISHED-j數(shù)據(jù)包還得通過服務(wù)器,轉(zhuǎn)到內(nèi)網(wǎng)網(wǎng)卡上。請注意,這里,是squid幫你去了你想要的。所以在內(nèi)網(wǎng)中,你的機器是客戶端角色,而squid是服務(wù)器角色。這與剛才對外的過程是不同的。所以在這里,源端口是3128,而不是32768:61000。iptablesAOUTPUToeth2pudpdport53jACCEPTiptables-AINPUT-ieth2-pudp--sport53-jACCEPT當(dāng)然,DNS是不可缺少的。iptables-AINPUT-ieth+-ptcp--dport80-jLOG--log-prefix--log-leveliptables-AINPUT-ieth+-ptcp--dport21-jLOG--log-prefix--log-leveliptables-AINPUT-ieth+-ptcp--dport22-jLOG--log-prefix--log-leveliptables-AINPUT-ieth+-ptcp--dport25-jLOG--log-prefix--log-leveliptables-AINPUT-ieth+-picmp--icmp-type8-jLOG--log-iptables清除預(yù)設(shè)表filter#iptables-清除預(yù)設(shè)表filter#iptables-X#iptables-#iptables-PINPUTACCEPT#iptables-POUTPUTACCEPT#iptables-PFORWARDACCEPT#iptables-PINPUTDROP#iptables-POUTPUTDROP#iptables-PFORWARDDROP3、列出表/鏈中的所有規(guī)則。默認只列出filter#iptables-#iptables-AINPUT-ilo-jACCEPT#iptables-AOUTPUT-olo-jACCEPT#iptables-AINPUT-ieth0-jACEPT#iptables-AOUTPUT-oeth1-jACCEPT#iptables-AFORWARD-ieth1-jACCEPT#iptables-AFORWARD-0eth1-j注意:由于本地進程不會經(jīng)過FORWARD鏈,因此回環(huán)接口lo只在INPUTOUTPUT#iptablesNcustom#iptables-Acustom-s0/0-d0/0-picmp-jDROP#iptables-AINPUT-s0/0-d0/0-jDROP#iptables-AINPUT-p#iptablesAINPUTp!tcp#iptablesAINPUTs8#iptablesAINPUTs/24#iptables-AFORWARD-s#iptables-AFORWARD-s!#iptables-AINPUT-ieth0#iptables-AFORWARD-oeth0#iptablesAFORWARDoppp+#iptablesAINPUTptcpsportwww#iptables-AINPUT-pudp–dport53#iptables-AINPUT-ptcp–dport#iptables-AINPUT-ptcp–sport22:804)匹配ICMP端口和ICMP類型。#iptablesAINOUTpicmpicimp-type85)指定ip碎片。每(稱為ip碎片)來傳輸,而接受方則對這些ip碎片再進行重組以還原整個包。這樣會導(dǎo)致一個問題:當(dāng)系統(tǒng)將大數(shù)據(jù)包劃分成ip碎片傳輸時,第一個碎片含有完整的包頭信息(IP+TCP、UDP和ICMP),但是后續(xù)的碎片只有包頭的部分信息(如源地址、目的地址)。因此,檢查后面的ip碎片的頭部(象有TCP、UDP和ICMP一樣)是不可能的。假這樣的一條規(guī)則#iptables-AFORWARD-ptcp-s/24-d00–dport80-jACCEPT并且這時的FORWARD的policy為DROP時,系統(tǒng)只會讓第一個ip碎片通過,而余下的碎片因為包頭信息不完整而無法通過??梢酝ㄟ^—fragment/-f選項來指定第二個及以后的ip碎片解決上述問題。#iptables-AFORWARD-f-s/24-d00-jACCEPT注意現(xiàn)在有許多進行ip碎片的實例,如DoS,因此允許ip碎片通過是有安全隱患的,對于這一點可以采用iptables的匹配擴展來進行限制。#iptablesAINPUTptcpmmultiportsport22,53,80,110#iptables-AINPUT-ptcp-mmultiport–dpoort3)匹配多端口(無論是源端口還是目的端口#iptablesAINPUTptcpmmultiportport22,53,80,1102TCP匹配擴展使用–tcp-flags選項可以根據(jù)tcp包的標志位進行過濾。#iptablesAINPUTptcptcp-flagsSYN,FIN,ACKSYN#iptablesAFROWARDptcp–tcp-flagsALLFIN,RST,URG,PSH)的標志都檢查,但是只有設(shè)置了SYN和ACK的匹配。#iptables-AFORWARD-ptcp--#iptablesAINPUTmlimitlimit300/hour2)指定觸發(fā)事件的閥值。#iptables-AINPUT-mlimit–limit-burst#iptables-AINPUT-picmp-mlimit–-limit3/m–limit-burst表示每分鐘允許的最大包數(shù)量為限制速率(3)加上當(dāng)前的觸發(fā)閥值burst數(shù)。任何情況下,都可保證3個數(shù)據(jù)包通過,觸發(fā)閥值burst相當(dāng)于允許額外的包數(shù)量。協(xié)議類型、連接狀態(tài)(TCP協(xié)議)態(tài)的表,比簡單濾具有更大的安全性,命令格式如下:iptables-mstate–-state[!]state>NEW:該包想要開始一個新的連接(重新連接或連接重定向FTP的數(shù)據(jù)傳輸連接和控制連接之間就是RELATED關(guān)系。在INPUT鏈添加一條規(guī)則,匹配已經(jīng)建立的連接或由已經(jīng)建立的連接所建立的新連接。即匹配所有TCP回應(yīng)包。#iptables-AINPUT-mstate–state在INPUT鏈鏈添加一條規(guī)則,匹配所有從非eth0#iptables-AINPUT-mstate-–stateNEW-i又如,對于ftp連接可以使用下面的連接(1)(Passive)ftp連接模式#iptables-AINPUT-ptcp--sport1024:--dport1024:-mstate–-stateESTABLISHED-j#iptables-AOUTPUT-ptcp--sport1024:--dport1024:-state-–stateESTABLISHED,RELATED-j#iptables-AINNPUT-ptcp--sport20-mstate–-stateESTABLISHED,RELATED-jACCEPT#iptables-AOUTPUT-ptcp–OUTPUT-ptcp–dport20-mstate--stateESTABLISHED-jLinuxiptables學(xué)習(xí)筆記(四)iptables實現(xiàn)什么是TCP/IP通信過程中,所有的路由器僅僅是充當(dāng)一個中間人的角色,也就是通常所說的存儲轉(zhuǎn)發(fā),路由器并不會對轉(zhuǎn)發(fā)的數(shù)據(jù)包進行修改,更為確切的說,除了將源MAC地址換成自己的MAC地址以外,路由器不會對轉(zhuǎn)發(fā)的數(shù)據(jù)包做任何修改。NAT(NetworkAddressTranslation網(wǎng)絡(luò)地址翻譯)恰恰是出于某種特殊需要而對數(shù)據(jù)包的源ip地址、目的ip地址、源端口、目的端口進行改寫的操作。為什么要進行我們來看看再什么情況下我們需要做NAT假設(shè)有一家IP提供園區(qū)Intrnet接入服務(wù),為了方便管理,該ISP分配給園區(qū)用戶的IP地址都是偽,但是部分用戶要求建立自己的WNAT來提供這種服務(wù)了。我們可以再的外部網(wǎng)卡上綁定多個合法P地址,然后通過NAT技術(shù)使發(fā)給其中某一個地址的包轉(zhuǎn)發(fā)至內(nèi)部某一用戶的W服務(wù)器上,然后再將該內(nèi)部W服務(wù)器響應(yīng)包成該合法常是采用服務(wù)器的方式,但是服務(wù)器,尤其是應(yīng)用層服務(wù)器,只能支持有限的協(xié)議,如果過以提供對Internet的無縫。linux2.4NAT-HOWTO中,作者從原理的角度將NAT分成了兩種類型,即源NAT(SNAT)和目的NAT(DNAT),顧名思義,所謂SNAT就是改變轉(zhuǎn)發(fā)數(shù)據(jù)包的源地址,所謂DNAT就是改變轉(zhuǎn)發(fā)數(shù)據(jù)包的成。并且系統(tǒng)缺省的表是"filter"。但是在使用NAT的時候,我們所使用的表不再是"filter",而是"nat"功能時,我們沒有必要顯式的指明"-tfilter"。同filter表一樣,nat表也有三條缺省的"鏈"(chains)PREROUTING:可以在這里定義進行目的NAT的規(guī)則,因為路由器進行路由時只檢查數(shù)據(jù)包的目的ip地址,所以為了使數(shù)據(jù)包得以正確路由,須在路由之前就進行目的NAT;OUTPUT:定義對本地產(chǎn)生的數(shù)據(jù)包的目的NAT如前所述,在使用iptables的NAT功能時,須在每一條規(guī)則中使用"-tnat"顯示的指明使用加入(append)一個則到一個鏈(-A)的最后在鏈內(nèi)某個位置插入(insert)一個則(-I),通常是插在最前面。在鏈內(nèi)某個位置替換(replace)一條規(guī)則(-R)。在鏈內(nèi)某個位置刪除(delete)(-D)。刪除(delete)鏈內(nèi)第一條規(guī)則(-D)。指定目的地址。可以使用以下四中方法來指定ip地址: 使用ip地址,如用x.x.x.x/x.x.x.x指定一個網(wǎng)絡(luò)地址,如環(huán)境中通常使用的表示方法。缺省的子網(wǎng)掩碼數(shù)是32,也就是說指定等效于可以使用--in-interface/-i或--out-interface/-o來指定網(wǎng)絡(luò)接口。從NAT可以通過--protocol/-p選項來指定協(xié)議,如果是udp和tcp協(xié)議,還可--source-port/--sport編譯內(nèi)核,編譯時選中以下選項,具體可參看“用iptales實現(xiàn)慮型”一文<M>Full<M>MASQUERADEtarget<M>REDIRECTtarget要使用NATmodprobeip_tablesiptable_nat源/24的數(shù)據(jù)包的源ipiptables-tnat-APOSTROUTING-s/24-oeth0-jSNAT--to這里需要注意的是,系統(tǒng)在路由及過慮等處理直到數(shù)據(jù)包要被送出時才進行SNAT有一種SNAT的特殊情況是ip,也就是所謂的Masquerading,通常建議在使用撥號上網(wǎng)的時候使用,或者說在合法ip地址不固定的情況下使用。比如#iptables-tnat-APOSTROUTING-oppp0-j可以看出,這時候我們沒有必要顯式的指定源ip目的/24的數(shù)據(jù)包的目的ipiptables-tnat-APREROUTING-s/24-ieth1-jDNAT--to這里需要注意的是,系統(tǒng)是先進行DNAT有一種DNAT的特殊情況是重定向,也就是所謂的Redirection,這時候就相當(dāng)于將符合條件的數(shù)據(jù)包的目的ip地址改為數(shù)據(jù)包進入系統(tǒng)時的網(wǎng)絡(luò)接口的ip地址。通常是在與squid配置形成時使用,假設(shè)squid的端口是3128,我們可以通過以下語句來將來自/24,目的端口為80的數(shù)據(jù)包重定向到squid端口:iptables-tnat-APREROUTING-ieth1-ptcp-s/24--dport80-j--to-port小型企業(yè)、網(wǎng)吧等多使用撥號網(wǎng)絡(luò)上網(wǎng),通??赡苁褂?,但是考慮到成本、對協(xié)議的支持等因素,建議使用ip方式帶動區(qū)域網(wǎng)上網(wǎng)。成功升級內(nèi)核后安裝iptables,然后執(zhí)行以下modprobeip_tables#進行ipiptables-tnat-APOSTROUTING-oppp0-j假設(shè)有一家ISP提供園區(qū)Internet接入服務(wù),為了方便管理,該ISP分配給園區(qū)用戶的IP地址都是偽IP,但是部分用戶要求建立自己的WWW服務(wù)器對外發(fā)布信息。我們可以再的外部網(wǎng)卡上綁定多然后再將該內(nèi)部WWW服務(wù)器響應(yīng)包成該合法IP發(fā)出的包。該ISP分配給A單位www服務(wù)器的ip為:偽ip:00真實該ISP分配給B單位www服務(wù)器的ip為:偽ip:00真實linux的ip地址分別為:內(nèi)網(wǎng)接口eth1:然后分配給A、B單位的真實ip綁定到的接口,以root權(quán)限執(zhí)行以下命令ifconfigeth0add00netmaskifconfigeth0add00netmask成功升級內(nèi)核后安裝iptables,然后執(zhí)行以下modprobeip_tables首先,對接收到的目的ip為00和00的所有數(shù)據(jù)包進行目iptables-APREROUTING-ieth0-d00-jDNAT--to00iptables-APREROUTING-ieth0-d00-jDNAT--toiptables-APOSTROUTING-oeth0-s00-jSNAT--to00iptables-APOSTROUTING-oeth0-s00-jSNAT--to這樣,所有目的ip0000別被成由00和00,從而也就實現(xiàn)了ip映射Linuxiptables學(xué)習(xí)筆記(五)linux+iptables構(gòu)筑防本文旨在用為公司做的實例,讓大家對Linux+iptables做的安裝和配置有先了解一下公司的環(huán)境,公司利用2MADSL專線上網(wǎng),電信分配公用IP為2/29,網(wǎng)關(guān)為3,公司有電腦五十多臺,使用DHCP,IP是192.168.2.XXX,DHCPServer建在iptablesServer上;另公司有一電腦培訓(xùn)中心,使用PI所有電腦通過SquidServer瀏覽網(wǎng)頁,公司還另有一臺WEBServer+MailServer+FtpServer。其IP為8。以上電腦和服務(wù)器要求全架在內(nèi)。我們規(guī)化如下:IptablesServer上有三塊網(wǎng)卡,eth0上加有二個IP,48其中4為共享上網(wǎng),8為WEBServer,Eth1的IP為192..168.2.9;為了使培訓(xùn)中心PC與公司PC之間互不,所以直接從IptablesServer接到Switch-B,eth2接至Switch-A,連接培訓(xùn)中心PC和SquidServer,WebServer。在裝服務(wù)器時要注意選上的安裝包。Iptables[-tTABLE]ACTION[PATTERN][-jTARGET]有filter,nat,mangle;若無指定,預(yù)設(shè)為filtertable.ACTION(Chains執(zhí)行的動作):ACTION-LChain顯示Chain-AChainChain-DChain刪除Chain-IChainChain-RChain替換Chain-PChainChain設(shè)定的預(yù)設(shè)的-FChain清除Chain-NChain自訂一個-X清除所有的自訂ChainIptables有五條默認的Chains(規(guī)則鏈)ChainsPREROUTING數(shù)據(jù)包進入本機后,進入RouteTable前INPUT數(shù)據(jù)包通過RouteTable后,目地為本機OUTPUT由本機發(fā)出,進入RouteTable前FORWARD通過RouteTable后,目地不是本機時POSTROUTING通過RouteTable后,送到網(wǎng)卡前-pProtocol通訊協(xié)議,如tcp,udp,icmp,all-sAddress指定的SourceAddress為-dAddress指定的DestinationAddress為-IInterface-oInterface-mMatch指定高級選項,如mac,state,multiportTARGET說明ACCEPT讓這個數(shù)據(jù)包通過DROP丟棄數(shù)據(jù)包RETURN不作對比直接返回QUEUE傳給User-SpaceSNATnat:轉(zhuǎn)譯來源地MASQUERADEnat:轉(zhuǎn)譯來源地址成為NIC的MACREDIRECTnat:轉(zhuǎn)送到本機的某個PORTtable的結(jié)束??蓪⒁ǖ囊?guī)則加入到對應(yīng)的table中,如下:[root@jiaoyuanginit.d]#./iptablessaveSavingcurrentrules/etc/sysconfig/iptables:[OK][root@jiaoyuanginit.d]#cat/etc/sysconfig/iptables#Generatedbyiptables-savev1.2.4onSatSep2816:51:222002 #CompletedonSatSep2816:51:22#Generatedbyiptables-savev1.2.4onSatSep2816:51:22 #CompletedonSatSep2816:51:22#Generatedbyiptables-savev1.2.4onSatSep2816:51:22:INPUTACCEPT :FORWARDACCEPT安裝并啟動在安裝RedHatLinuxV7.3后,iptables就已經(jīng)被安裝了,但默認啟動的是ipchains。你在安裝時所定義的一些規(guī)則也在/etc/sysconfig/ipchains中被定義。我們需要將其停止,真正的起作用。Ipchains和iptables是兩個,你只能選擇一個)。serviceipchainsstop停止chkconfiglevel2345ipchainsoff使ipchains系統(tǒng)啟動時不自動啟動)chkconfig--level2345iptableson(使iptables在系統(tǒng)啟動時自動啟動)vi/etc/rc.d/rc.local(編輯rc.local,將下面四行加到最后)ifconfigeth0add8netmask48modprobeip_conntrack_ftpmodprobeecho“1”>(第一行是在eth0上再加一個IP:8,因在安裝時只能設(shè)一個IP:4。Ip_conntrack_ftp和ip_nat_ftp為iptables運得必須的兩個模塊;最后一行為使開啟服務(wù)器IP轉(zhuǎn)發(fā)功能。)配置DHCPServer,以便讓公司PC自動獲得IP。具體的重新啟動服務(wù)器后,Iptabl

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論