[RHCE] Network Security
IPTABLES iptables是Linux系統中的防火牆,防火牆最主要的工作就是過濾與限制網路的存取,iptables的架構可分為table與chain兩部分,系統預設有四個table,每個table有各自負責的用途, 依照優先順序由高到低分別為raw, mangle, nat, filter。 raw: 與處理一些不用特別去追蹤的連線。 mangle: 與特殊封包的標記有關。 nat: 負責進行轉址。 filter: 負責過濾進出的封包。 每個table中都有自己的chain, 主要有五種chain,分別為INPUT, OUTPUT, PREROUTING, POSRROUTING, 與FORWADR; table之間可能會擁有相同的chain,例如每個table都有一個OUPUT chain,所以當處理到關於OUTPUT的封包時,就會參考table優先順序決定哪個table的chain有決定權。 INPUT: 負責進入防火牆封包的規則。 OUTPUT: 負責送出防火牆封包的規則。 FORWARD: 負責轉送封包到防火牆內終端位址的規則。 PREROUTING: 負責在進行路由前要進行的規則。 POSRROUTING: 負責在進行路由後要進行的規則。 每個chain中有自己的rule,一個chain可能有許多rule,如果一個封包進到chain中都不符合任何rule,這個封包最後就會交由policy處理,policy與rule有四種動作,ACCEPT, DROP, REJECT, LOG。所以整個iptables的層級結構大致如下: 而一個封包從進入防火牆開始,就會經過許多table的chain進行判斷處理,直到被送到目的地;如果將chain的處理順序,配合table的優先層級結合起來,就可以得到這張流程圖: VIEW IPTABLES 使用者可以使用 #iptables –t [table名稱] –L 來查詢目前該table裡面的chain,如果不指定table,則會顯示filter table的chain,另外還有兩個選項: -n: 不進行IP與hostname的反查。 -v: 顯示詳細資訊。 上圖是 #iptables –L –v 的結果,也就是查詢filter table的c...