iptables -p 與 tcp/udp 以外的協議

iptables -p 與 tcp/udp 以外的協議

根據我的理解,iptables 在傳輸層(第 4 層)上工作,發生的任何資料包過濾都是基於第 4 層的 ip 協議,如 tcp 和 udp。因此,如果我們輸入像 esp、gre 和 l2tp 這樣的協議iptables-p選項,有意義嗎?我們可以使用 iptables 基於第 2/3 層協定過濾資料包嗎?如果不是,那麼iptables是如何根據icmp協定過濾資料包的呢?

iptables 新手,我仍在學習中。謝謝!

答案1

iptables支援資料鏈路、網路和傳輸層的過濾。

(協定-p)選項並不具體限於第4層協定。這手冊頁特別提到了 icmp 和 esp。我知道 gre 也受支援(“gre”或協議“47”)。指定的協定可以按名稱或其在 中指定的整數傳遞給此選項/etc/protocols。我不確定 iptables 是否支援此列表中的所有協定。

如果指定了 -p 或 --protocol 並且當且僅當遇到未知選項時,iptables 將嘗試載入與協定同名的匹配模組,以嘗試使該選項可用。

這個「匹配模組」語法是擴充的資料包匹配模組,將透過使用選項來指定-m --match

您可以在此處找到支援的擴充功能列表:iptables 擴充。可用的 netfilter 核心模組的清單位於/lib/modules/$(uname -r)/kernel/net/netfilter

相關內容