天天看點

防火牆之iptables基本概念

1.iptables的概念了解

iptables全稱的寫法是Netfilter/iptables ,他們是資訊包過濾系統的兩個元件

Netfilter:是核心子產品的實作,是linux核心中一個架構,運作在linux核心空間,作用是定義儲存響應的規則。

iptables:是上層的一種操作工具,用來修改資訊的過濾規則和其他配置,運作在使用者空間

總結:若netfilter/iptables是一輛功能完整的汽車,netfilter就是汽車發動機以及車輪等部件,他可以讓車發動行駛;iptables則是方向盤,刹車,油門,等控制汽車的行駛方向,速度。

表-鍊-規則

netfilter提供了一系列的表,每個表有若幹個鍊組成,每條鍊有一條或多條規則組成。

三表五鍊四狀态八動作

三表:

1.filter :這是netfilter預設的表,包含真正的防火牆過濾規則,内建了三條規則鍊:

INPUT:當一個資料包有核心中的路由計算确認為進入本機的包後,會通過INPUT鍊的檢查

OUTPUT:應用于系統自身生成的資料包

FORWARD:應用與路由經過本地的資料包

2.nat :表包含源位址,目标位址,以及端口轉換使用的規則。

内建的鍊有:

PREROUTING:用于修改目标位址(DNAT)

OUTPUT:路由之前修改本地産生的資料包

POSTROUTING:用于修改源位址(SNAT)

3.mangle:該表用在資料包的特殊變更操作,内建的鍊有:

PREROUTING ,INPUT,PORWARD,POSTROUTING,OUTPUT

五鍊

PREROUTING:資料包進入本機,進入路由表之前

INPUT:通過路由表,目的為本機

OUTPUT:由本機産生向外轉發

FORWARD:通過路由表後目的不是本機

POSTROUTING:通過路由表發送到網卡接口前

四狀态:

NEW:第一次發送連結請求的資料包的狀态就是NEW

ESTABLISHED:建立連接配接後,繼續通信的資料包

RELATED:和現有聯機相關的新連接配接的資料包,如ftp用21端口傳遞指令,其它端口傳遞資料

INVALID:無效的資料包,或不能被識别屬于哪個連接配接或沒任何狀态,這種狀态的資料包一般會被丢棄

八動作:

ACCEPT:接受資料包

DROP:丢棄資料包

REDIRECT:将資料包重新轉向到本機或另一台主機的某一端口

REJECT:攔截該資料包,并發回封包通知對方

SNAT:源位址轉換,改變資料包的源位址在nat表的POSTROUTING鍊進行該動作

DNAT:目标位址轉換,在nat表的PREROUTING鍊進行該動作

MASQUERADE:ip僞裝

LOG:日志功能

iptables的工作流程:(隻對nat表和filter表)

1.資料包進入防火牆後,先進入nat表的PREROUTING鍊;如有規則就進行目标位址的轉換

2.資料包經過路由判斷包是發送給本機還是向其它網絡轉發

3.如果是轉發就發送給filter表的FORWARD鍊進行過濾,然後發給nat表的POSTROUTING鍊根據需要可能會進行網絡位址轉換,修改資料包的源位址,最後資料包發送給網卡,轉發給外部網絡

4.如果目的為本機,資料包進入filter表的INPUT鍊進行相應的操作;再進入nat的POSTROUTING鍊向外發送

詳細文法

iptables [-t 表名] <-A|I|D|R>鍊名[規則号] [-i|o 網卡名稱] [-p 協定類型] [-s  源ip位址|源子網] [--sport 源端口号] [-d 目标ip位址|目标子網] [--dport 目标端口号]  <-j 動作>

繼續閱讀