IPTables

IPTables

實現包過濾,

firewall防火牆:是一個套件,極可能是軟件,也可能是硬件,也可能是兩者的結合。位於網絡邊界,根據規則進行數據包的處理。工作在內核

 

基於硬件實現的防火牆

   主機防火牆:工作在主機邊沿,網卡上

netfilter,就是一內核空間的framework即框架
iptables,用戶空間的管理規則的工具

防火牆根據工作的層不同分爲:

⑴包過濾型:根據OSI模型中234層首部信息特徵進行處理的。封閉端口,提取地址

簡單包過濾  靜態

 帶狀態檢測的包過濾  動態 (狀態有NEWESTABLISHEDRELATED,INVALID),比簡單包過濾功能強大,且安全性高。可以實現在不打開不安全端口也可以進TCP
 ⑵應用層網關防火牆

 

netfilter在內核上打開了5道門(INPUTFORWARD OUTPUTPREROUTINGPOSTROUTING),只有iptables能進入修改規則,要在對應的門上寫對應的規則。

默認的5種規則鏈

INPUT:處理入站數據包

FORWARD:處理轉發數據包

OUTPUT:處理出站數據包

PREROUTING鏈:在進行路由選擇前處理數據包

POSTROUTING鏈:在進行路由選擇後處理數據包

 

 

爲了代理內網用戶上網:源地址轉換,在路由決策後,要離開網卡之前做。而目標地址轉換,在路由決策前做。

四種功能:每種功能代表對數據包的處理機制不同。有四個表:

filter過濾   內含的鏈:INPUTFORWARDOUTPUT

nat地址轉換    OUTPUTPREROUTINGPOSTROUTING

mangle對數據包的首部特徵做更改,添加標記等。 含有5條鏈。

raw

自上而下做檢查,若被第一條鏈匹配到,則直接處理;沒被匹配到,就向下繼續匹配……直到第五條鏈,如果都沒被匹配到,就由默認規則鏈處理。(定義規則鏈時要注意,要把限制範圍小的鏈放上面)

 

iptables語法結構:

iptables  [–t  table]  command  CHAIN [num]  criteria  -j  target

 

-t  table指定修改的表,

對鏈做什麼管理,有以下子命令:

  rules(管理規則的命令)

-A追加規則,在鏈的尾部加入規則

-I [num]插入規則

-D [num]刪除規則

-R [num]替換規則

 chains(管理鏈的命令)

  -N  chain_name 新建一條鏈

  -X  chain_name 用來刪除用戶自定義的空鏈

  -F  [chain_name] 用來清空所有的規則鏈

  -P  chain_name {DROP|ACCEPT} 對某條鏈設置默認策略

  -Z  chain_name 清零計數器

  -E  oldchain_name  newchain_name重命名用戶自定義的規則鏈

 view(顯示規則的命令)

  -L  (list)

-v,-vv,-vvv     v越多顯示的越詳細
-n    以數字形式而不是主機名顯示信息

--line-numbers 給每條規則編號後顯示

 

 

criteria(匹配條件)

l       通用匹配

n       -s--src--source用來匹配源地址

n       -d--dst 用來匹配目標地址

n       -i  [interface]用來匹配數據包的流入接口

n       -o  [interface]用來匹配數據包的流出接口

n       -p  {tcp|udp|icmp}用來匹配協議

l       擴展匹配

n       -p  tcp

u     --sport

u     --dport

u     --tcp-flags  syn,ack,rst  syn    檢查表中每位必須爲0,檢查syn必須爲1。--syn就可實現此目的

(SYN,ACK,FIN,RST,URG,PSH)

n       -p  udp

u     --sport

u     --dport

n       -p icmp

u     -icmp-type 進來是8,出去是0

-m {state|multiport|limit|string|…}

  --state

  --ports

tcp 21命令連接端口,

tcp 20數據連接

控制連接沒打開時就不會打開數據連接

NEW:新建立的連接

ESTABLISHED:響應之前連接的

RELATED:一個協議的兩個連接之間

INVALID:無法識別的

 

若主機中有兩塊網卡,實現轉發功能的話要先打開主機的路由轉發功能。

 

firewall上做日誌,在做規則之前做日誌,只記錄請求的不記錄相應的。

       eg.    iptables -I FORWARD 1  -s  192.168.0.0/24 -d 192.168.10.2 -p tcp --dport  80  -j  LOG  –log-prefix “Web Server:”

在做firwall的源地址轉換時,既要在nat表中的POSTROUTING鏈上定義,還要在filter表中的FORWARD鏈上定義。

-j 處理辦法

 

-s-d不指定時就是所有地址

 
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章