iptables 概念

Category: By 人生有夢,築夢踏實
在Linux系統,防火牆軟體演化如下
Linux v2.0 ::: ipfwadm
Linux v2.2 ::: ipchains
Linux v2.4-v2.6 ::: iptables (Linux v2.4早期使用的防火牆軟體也是ipchains,所以使用v2.4時,需確認一下)
在本文接下來部份,只討論iptabls.

在iptables對於封包的處理是針對管理者所定下的規則(Rule),而規則有其先後順序,規則順序的不同,決定了封包的運命也不同。已安排好順序的規則,被稱為規則鍊(chain);iptables內定著不同的規則鍊,有PREROUTING,POSTROUTING,INPUT,OUTPUT,和FORWARD。管理者也可以自定規則鍊。
為因應不同的需求和目的,iptables內共包含四個主要的table,分為filter,mangle,nat,和raw。在iptables 指令在未指定下,預設的table是filter。

而各table預設的規則鍊列表如下:
nat table <= PREROUTING, POSTROUTING, OUTPUT
mangle table <= PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING
filter table <= INPUT, FORWARD, OUTPUT
raw table <- PREROUTING, OUTPUT

常用指令整理
1)清除table內的規則
iptables [-t table] {-L | -F | -X | -Z}
table : 指定table,例: nat , mangle, 或forward. 未指定預設為filter。
-L : 查看table的內容。
-F : 清除所有已定的所有規則
-X : 清除所有使用者自訂的規則鍊(chains)
-Z : 歸零
2) 設定預設策略(Policy)
iptables [-t table] -P chain {ACCEPT, DROP, QUEUE, RETURN }
table : 未指定,預設為filter。
chain : 指定規則鍊
ACCEPT/... : 指定處理動作
3) 新增/插入規則
iptables -{A | I } -{i | o} ethx [-p tcp|udp|icmp] [-s source IP/24] [-d target IP/24] [-sport num] [-dport num] -j{ACCEPT | DROP | REJECT...}
4) 刪除規則
iptables -D chain rulenum
5)
iptables -{A | I} chain -m state --state {INVALID | ESTABLISHED | NEW | RELATED...}
6)NAT設定範例
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -t nat POSTROUTING -s 192.168.1.0/24 -o eth1 -j MASQUERADE



Reference :
1) 鳥哥的Linux私房菜--Linux防火牆與NAT主機
2) iptables tutorial by Oskar Andreasson
3)iptables專案的主頁
 

0 comments so far.

Something to say?

ARCHIVES