天天看點

iptables

工作原理:

iptables

基礎:

規則(rules)其實就是網絡管理者預定義的條件,規則一般的定義為“如果資料標頭符合這樣的條件,就這樣處理這個資料包”。規則存儲在核心空間的資訊包過濾表中,這些規則分别指定了源位址、目的位址、傳輸協定(如TCP、UDP、ICMP)和服務類型(如HTTP、FTP和SMTP)等。當資料包與規則比對時,iptables就根據規則所定義的方法來處理這些資料包,如放行(accept)、拒絕(r

eject

)和丢棄(drop)等。配置防火牆的主要工作就是添加、修改和删除這些規則。

鍊(chains)是資料包傳播的路徑,每一條鍊其實就是衆多規則中的一個檢查清單,每一條鍊中可以有一條或數條規則。當一個資料包到達一個鍊時,iptables就會從鍊中第一條規則開始檢查,看該資料包是否滿足規則所定義的條件。如果滿足,系統就會根據該條規則所定義的方法處理該資料包;否則iptables将繼續檢查下一條規則,如果該資料包不符合鍊中任一條規則,iptables就會根據該鍊預先定義的預設政策來處理資料包。

表(tables)提供特定的功能,iptables内置了4個表,即filter表、nat表、mangle表和raw表,分别用于實作包過濾,網絡位址轉換、包重構(修改)和資料跟蹤處理。一般隻用到filter表

iptables

傳輸資料包的過程

iptables

指令格式:

iptables [-t table] 指令 [chain] [rules] [-j target]

table——指定表明

指令——對鍊的操作指令

chain——鍊名

rules——規則

target——動作如何進行

1.表選項

表選項用于指定指令應用于哪個iptables内置表,iptables内置包括filter表、nat表、mangle表和raw表。

2.指令選項iptables指令格式

指令 說明

-P或–policy <鍊名> 定義預設政策

-L或–list <鍊名> 檢視iptables規則清單

-A或—append <鍊名> 在規則清單的最後增加1條規則

-I或–insert <鍊名> 在指定的位置插入1條規則

-D或–delete <鍊名> 從規則清單中删除1條規則

-R或–replace <鍊名> 替換規則清單中的某條規則

-F或–flush <鍊名> 删除表中所有規則

-Z或–zero <鍊名> 将表中資料包計數器和流量計數器歸零

3.比對選項

比對 說明

-i或–in-interface <網絡接口名> 指定資料包從哪個網絡接口進入,如ppp0、eth0和eth1等

-o或–out-interface <網絡接口名> 指定資料包從哪塊網絡接口輸出,如ppp0、eth0和eth1等

-p或—proto協定類型 < 協定類型> 指定資料包比對的協定,如TCP、UDP和ICMP等

-s或–source <源位址或子網> 指定資料包比對的源位址

–sport <源端口号> 指定資料包比對的源端口号,可以使用“起始端口号:結束端口号”的格式指定一個範圍的端口

-d或–destination <目标位址或子網> 指定資料包比對的目标位址

–dport目标端口号 指定資料包比對的目标端口号,可以使用“起始端口号:結束端口号”的格式指定一個範圍的端口

4.動作選項

動作 說明

ACCEPT 接受資料包

DROP 丢棄資料包

REDIRECT 與DROP基本一樣,差別在于它除了阻塞包之外, 還向發送者傳回錯誤資訊。

SNAT 源位址轉換,即改變資料包的源位址

DNAT 目标位址轉換,即改變資料包的目的位址

MASQUERADE IP僞裝,即是常說的NAT技術,MASQUERADE隻能用于ADSL等撥号上網的IP僞裝,也就是主機的IP是由ISP配置設定動态的;如果主機的IP位址是靜态固定的,就要使用SNAT

LOG 日志功能,将符合規則的資料包的相關資訊記錄在日志中,以便管理者的分析和排錯

實際例子:

iptables

-A OUTPOUT  往OUTPUT鍊路中append一條規則

-d 10.199.160.231 目标位址為10.199.160.231

-p tcp --tcp--flags 指定為tcp協定

-j DROP 丢棄資料包

雖千萬人,吾往矣!

上一篇: find指令小結
下一篇: tar.gz 解壓

繼續閱讀