天天看點

Linux_IPtables防火牆詳解Iptables Iptables結構 iptables指令用法詳解

iptables(linux package filter firewall (network layer))是linux核心內建的ip資訊包過濾系統,該系統有利于在linux系統上更好地控制ip資訊包過濾和防火牆配置。防火牆在做資訊包過濾決定時,有一套規則,這些規則存儲在專用的資訊包過濾表中,而這些表內建在linux核心中。在資訊包過濾表中,規則被分組放在我們所謂的鍊(chain)中。而netfilter/iptables ip資訊包過濾系統是一款功能強大的工具,可用于添加、編輯和移除規則。雖然netfilter/iptables ip資訊包過濾系統被稱為單個實體,但它實際上由兩個元件netfilter和iptables組成。 

netfilter元件:也稱為核心空間(kernelspace),是核心的一部分,由一些資訊包過濾表組成,這些表包含核心用來控制資訊包過濾處理的規則集。 

iptables 元件:是一種工具,也稱為使用者空間(userspace),它使插入、修改和除去資訊包過濾表中的規則變得容易。除非您正在使用red hat linux 7.1或更高版本,否則需要下載下傳該工具并安裝使用它。

表内有若幹條鍊,鍊内有若幹條規則。

表的作用:容納各種規則鍊 

表的劃分依據:防火牆規則的作用 

4個規則表: 

nat表:修改資料包中的源、目标ip位址或端口(網絡位址轉換) 

filter表:确定是否修改資料包(過濾)解決放同行的資料包 

raw表:确定是否對該資料包進行狀态跟蹤 

mangle表:為資料包設定标記 

表内通路鍊的順序: 

nat表:prerouting->postrouting->output 

filter表:input->forward->output

規則的作用:對資料包進行處理和過濾 

鍊的作用:容納各種防火牆規則 

5種規則鍊: 

input:處理入站資料包 

output:處理出戰資料包 

forward(forward轉發):處理轉發資料包 

postrouting(post routing路由選擇後):在進行路由選擇後處理資料包 post 之後 

prerouting(pre routing路由選擇前):在進行路由選擇錢處理資料包 pre 之前 

attention:資料包處理流程 

資料包入站: 

nat:prerouting->路由選擇->filter:input->本地應用程式 

資料包轉發: 

nat: prerouting->路由選擇->filter:forward->nat:postrouting->轉發走 

資料包出站: 

nat: 本地應用程式->路由選擇->filter:output->nat:postrouting->出站 

iptables command use:

1

2

3

注意: 

a. 不指定表,預設是filter表 

b. 不指定鍊名,預設是指表的所有鍊 

c. 除非設定了鍊的預設政策,否則必須指定比對條件 

常見的控制類型: -j 

1. accept:允許通過 

2. drop:直接丢棄,不給予回應 

3. reject:拒絕通過,給予回應 

4. log:記錄日志的資訊 

選項:

4

5

檢視iptables規則一般使用:

條件比對:

6

7

8

9

10

11

12

13

14

15

16

17

18

load module:

source network transform:私網内主機ip都共享一個公網ip,實作私網内主機使用同一個公網ip上網。 

attention:一定是路由轉發後轉換ip,且隻有一個 -o(出站網卡) 

example:

外網位址非固定時的共享動态ip位址上網: 

masquerade –> 位址僞裝 –> 撥号

destination network transform:将使用私網ip的伺服器釋出到公網上,使得公網上的主機可以通路此伺服器 

原理:目标位址轉換

目标位址轉換

轉換目标端口

導出規則:

備份:

還原:

将filter table 中的input 鍊的預設規則設為drop

iptables server可以ping到任何人,任何人不可以ping到iptables server

host2可以通過防火牆通路host1的各種服務,host2的dns要指向host1 

snat 私網iphost可以通路公網iphost,轉換源ip位址

用iptables防火牆釋出于内網的host2上的各種服務,是host1可以通過域名通路host2上的各種服務 

dnat 将私網中的伺服器釋出出去,讓公網上的host可以通路,轉換公網ip 主機的目的位址。

host1通路遠端管防火牆

當host1通路iptables外網的2222端口時,會轉發到host2的主機中(dnat的端口轉發)

轉載:http://blog.csdn.net/jmilk/article/details/50376054

繼續閱讀