偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

iptables的基礎知識-iptables包的轉發(fā)過程

運維 系統(tǒng)運維
iptables包的轉發(fā)過程:iptabels被認為是Linux中實現(xiàn)包過濾功能的第四代應用程序。iptables包含在Linux2.4以后的內核中,詳細地來講iptables包在轉發(fā)時是怎樣被送出呢?本文介紹的是iptables的基礎知識-iptables包的轉發(fā)過程。

iptables包的轉發(fā)過程:包在IPTABLES中如何走?

  當一個包進入或者送出或者被轉發(fā)的時候,是依據什么呢?都會經過哪些表和哪些鏈呢?

  iptabeles中內建有三個表,分別為MANGLE,NAT,FILTER,當為未指定規(guī)則表時,則默認為filter表,若要將rule加到其他表中,則要用-t來指明。

  其中有個表叫mangle,這個詞難以表達,我只能把我理解的寫出來。意思就是,會對數(shù)據包的一些傳輸特性進行修改,在mangle表中允許的操作是TOS、TTL、MARK。也就是說,今后只要我們見到這個詞能理解它的作用就行了。

  強烈建議你不要在這個表里做任何過濾,不管是DANT,SNAT或者Masquerade。

  Nat表就是地址轉換了,可以做DNAT,SNAT,可做一對一,一對多,多對對轉換,該表有Prerouting 和 postrouting兩條規(guī)則鏈。DNAT操作主要用在這樣一種情況,你有一個合法的IP地址,要把對防火墻的訪問重定向到其他的機子上(比如DMZ)。也就是說,我們改變的是目的地址,以使包能重路由到某臺主機。SNAT改變包的源地址,這在極大程度上可以隱藏你的本地網絡或者DMZ等。一個很好的例子是我們知道防火墻的外部地址,但必須用這個地址替換本地網絡地址。有了這個操作,防火墻就能自動地對包做SNAT和De-SNAT(就是反向的SNAT),以使LAN能連接到Internet。如果使用類似192.168.0.0/24這樣的地址,是不會從Internet得到任何回應的。因為IANA定義這些網絡(還有其他的)為私有的,只能用于LAN內部。MASQUERADE的作用和SNAT完全一樣,只是計算機的負荷稍微多一點。因為對每個匹配的包,MASQUERADE都要查找可用的IP地址,而不象SNAT用的IP地址是配置好的。當然,這也有好處,就是我們可以使用通過PPP、PPPOE、SLIP等撥號得到的地址,這些地址可是由ISP的DHCP隨機分配的

  Filter表就是我們最常用的了,iptables包過濾就靠這個了,系統(tǒng)默認建有三個鏈,INPUT,OUTPUT還有FORWARD,這個表用來進行封包過濾的處理(如:DROP,ACCEPT,LOG,REJECT,ULOG等),基本規(guī)則都建在這個表中。

  注:所謂的鏈就是規(guī)則的集合,也可以自定義鏈

  當數(shù)據包到達防火墻時,如果MAC地址符合,就會由內核里相應的驅動程序接收,然后會經過一系列操作,從而決定是發(fā)送給本地的程序,還是轉發(fā)給其他機子,還是其他的什么。

  以本地為目標的iptables包(就是我們自己的機子了)

  Step(步驟) Table(表) Chain(鏈) Comment(注釋)

  1 在線路上傳輸(比如,Internet)

  2 進入接口 (比如,eth0)

  3 Mangle PREROUTING 這個鏈用來mangle數(shù)據包,比如改變TOS等

  4 Nat PREROUTING 這個鏈主要用來做DNAT。不要在這個鏈做過慮操作,因為某些情況下包會溜過去。

  5 路由判斷,比如,iptables包是發(fā)往本地的,還是要轉發(fā)的。

  6 Mangle INPUT 在路由之后,被送往本地程序之前,mangle數(shù)據包。

  7 Filter INPUT 所有以本地為目的的iptables包都要經過這個鏈,不管它們從哪兒來,對這些iptables包的過濾條件就設在這里。

  8 到達本地程序了(比如,服務程序或客戶程序)

  現(xiàn)在我們來看看源地址是本地器的包要經過哪些步驟:

  以本地為源的iptables包

  Step Table Chain Comment

  1 本地程序(比如,服務程序或客戶程序)

  2 路由判斷,要使用源地址,外出接口,還有其他一些信息。

  3 mangle OUTPUT 在這兒可以mangle包。建議不要在這兒做過濾,可能有副作用哦。

  4 nat OUTPUT 這個鏈對從防火墻本身發(fā)出的包進行DNAT操作。

  5 filter OUTPUT 對本地發(fā)出的iptables包過濾。

  6 mangle POSTROUTING 這條鏈主要在包DNAT之后(譯者注:作者把這一次DNAT稱作實際的路由,雖然在前面有一次路由。對于本地的包,一旦它被生成,就必須經過路由代碼的處理,但這個包具體到哪兒去,要由NAT代碼處理之后才能確定。所以把這稱作實際的路由。),離開本地之前,對iptables包 mangle。有兩種包會經過這里,防火墻所在機子本身產生的包,還有被轉發(fā)的包。

  7 nat POSTROUTING 在這里做SNAT。但不要在這里做過濾,因為有副作用,而且有些iptables包是會溜過去的,即使你用了DROP策略。

  8 離開接口(比如: eth0)

  9 在線路上傳輸(比如,Internet)

  在這個表中有個要注意的地方,從本機發(fā)出的包,要經過NAT 中的OUTPUT。

  在這個例子中,我們假設一個iptables包的目的是另一個網絡中的一臺機子。讓我們來看看這個iptables包的旅程:

  轉發(fā)iptables包

  Step Table Chain Comment

  1 在線路上傳輸(比如,Internet)

  2 進入接口(比如, eth0)

  3 mangle PREROUTING mangle數(shù)據包,,比如改變TOS等。

  4 nat PREROUTING 這個鏈主要用來做DNAT。不要在這個鏈做過慮操作,因為某些情況下包會溜過去。稍后會做SNAT。

  5 路由判斷,比如,包是發(fā)往本地的,還是要轉發(fā)的。

  6 mangle FORWARD 包繼續(xù)被發(fā)送至mangle表的FORWARD鏈,這是非常特殊的情況才會用到的。在這里,包被mangle(還記得mangle的意思嗎)。這次mangle發(fā)生在最初的路由判斷之后,在***一次更改包的目的之前(譯者注:就是下面的FORWARD鏈所做的,因其過濾功能,可能會改變一些包的目的地,如丟棄包)。

  7 filter FORWARD 包繼續(xù)被發(fā)送至這條FORWARD鏈。只有需要轉發(fā)的包才會走到這里,并且針對這些包的所有過濾也在這里進行。注意,所有要轉發(fā)的包都要經過這里,不管是外網到內網的還是內網到外網的。在你自己書寫規(guī)則時,要考慮到這一點。

  8 mangle POSTROUTING 這個鏈也是針對一些特殊類型的包(譯者注:參考第6步,我們可以發(fā)現(xiàn),在轉發(fā)包時,mangle表的兩個鏈都用在特殊的應用上)。這一步mangle是在所有更改包的目的地址的操作完成之后做的,但這時包還在本地上。

  9 nat POSTROUTING 這個鏈就是用來做SNAT的,當然也包括Masquerade(偽裝)。但不要在這兒做過濾,因為某些包即使不滿足條件也會通過。

  10 離開接口(比如: eth0)

  11 又在線路上傳輸了(比如,LAN)

  就如你所見的,包要經歷很多步驟,而且它們可以被阻攔在任何一條鏈上,或者是任何有問題的地方。所有要經防火墻轉發(fā)的包都要經過FORWARD鏈。

  由上邊的表格和圖可以看出,iptables 處理包的流動,分述如下:

  INPUT:只有要到本機的封包才會由 INPUT 處理,所以會讓來自內部網絡的封包無條件放行,而來自外部的封包則過濾,是否為回應包,若是則放行。

  PREROUTING:需要轉送處理的封包由此處理,用來做目的地 IP 的翻譯(DNAT)。

  FORWARD:源IP和目的IP都不是本機的,就要被轉發(fā),所有要轉發(fā)的封包都在這里處理,這部分的過濾規(guī)則最為復雜。

  POSTROUTING:轉發(fā)封包送出之前,先同過這個來進行源IP的翻譯(SNAT)。

  OUTPUT:從本機發(fā)送出去的包都有此處理,通常放行所有封包。

  從上邊看得出,對于iptables來說,是依據IP地址進行決策,也就是說包中的IP地址決定一個包的流向。

  進入FORWRAD的一定不會進入到INPUT和OUTPUT。

  在處理過程中如果符合某條規(guī)則將會進行處理,處理動作除有ACCEPT、REJECT、DROP、REDIRECT 和 MASQUERADE 外還有LOG、ULOG、DNAT、SNAT、MIRROR、QUEUE、RETURN、TOS、TTL、MARK 等。

  我們可以使用< iptables save file > 將結果保存到指定文件中,然后用< iptables restore file > 將指定文件的內容加載,或者寫成腳本,然后執(zhí)行腳本就可以了。我推薦使用腳本,因為可以使用shell編程,從而寫出強大,靈活的腳本來。iptables包的轉發(fā)過程就講到這里啦。

上一節(jié):iptables中的ICMP   下一節(jié):iptables規(guī)則

【編輯推薦】

IPtables防火墻使用技巧(超實用)

Linux下Iptables端口轉發(fā)功能的解決

四種NAT的iptables實現(xiàn)

責任編輯:zhaolei 來源: netren
相關推薦

2011-03-18 09:26:13

Iptables規(guī)則

2011-03-16 11:17:56

IptablesICMP

2011-03-16 11:12:06

Iptables

2011-03-18 09:26:14

iptableslimit

2011-03-16 11:15:12

2011-03-16 11:06:55

Iptables防火墻

2011-03-18 09:26:13

IptablesTOS

2011-03-17 14:26:45

iptables 端口

2021-11-05 15:31:01

UbuntuLinux

2011-03-16 10:12:27

LinuxIptables端口轉發(fā)

2023-07-04 07:31:06

MapReduce數(shù)據處理編程模型

2011-03-14 14:40:11

iptables編譯

2011-11-04 17:26:12

2013-03-27 15:56:05

Android開發(fā)Andriod繪圖

2011-03-16 09:30:47

iptables過濾

2011-03-15 09:59:54

2011-03-15 09:59:54

2011-03-14 15:17:40

iptables設定

2011-03-16 14:38:55

iptables命令

2011-03-16 14:55:36

關閉iptables
點贊
收藏

51CTO技術棧公眾號