2008/12/11

[Linux] iptables CHAIN 說明

Linux 底下有一個功能很強大的工具叫做「iptables」,這個工具結合了 Linux Kernel 的設計,在 user mode 底下操作,達成 netfilter 的功能。
(這句話說的有點複雜,簡單的說,就是你在 Linux 上面要擋什麼網路封包,搞什麼封包轉發的,通通都是靠這味啦~)

我寫這篇,就想把 iptables 的功能先介紹到,晚點再來解釋它跟 netfilter 的關係,以及它的親戚 ebtables 的功能。

首先是在指令操作上的幾個名詞:
TABLE﹑ CHAINS﹑ JUMP
以這個指令來說:
iptables -t nat -A POSTROUTING -j DROP

nat 就是 TABLE 名, CHAINS 就是 POSTROUTING , JUMP 就是 DROP 。

來看圖好了:


一個封包由左側進來,先判斷要不要 FORWARD 轉發,要轉發就直接出去了,不轉發就走上面的路線,由本地端來判斷要不要做路由 ROUTING 的動作,要的話就還會轉出去,不要的話當然就本地收下來了。

在 TABLE 上面負責的工作,就是 NAT 負責進出、FILTER 負責本地端的進出,跟轉發的 FORWARD ,還有就是 MANGLE 負責本地端進出的修改, NAT 進出前的修改,判定轉發後的修改。

LOCAL 所有的 CHAINS 就是 INPUT 跟 OUTPUT
FORWARD 的 CHAINS 才有 PREROUTING 跟 POSTROUTING。

JUMP 的部份,就要看各個 JUMP 支援的動作了。

--
參考連結:
iptables 入門導引
張貼留言

[Windows] 好用的小工具: AutoHotKey

做為一個 Linux 的愛好者,轉移到 Windows 上面的時候,往往難以適應 Windows 調整快捷鍵的方式,所以 google 了一下,結果發現很多人愛用的 "Auto Hot key"。不多說,就來給一個範例說明如何使用 Auto Hot key 來...