iptables學習[02]:iptables的組成
阿新 • • 發佈:2021-08-19
簡介
- iptables由5個表(table)和5個鏈(chain)以及一些規則組成。
五表和五鏈介紹
-
鏈chain
- 內建鏈:每個內建鏈對應一個勾子函式。
- 自定義鏈:對於內建鏈的擴充套件和補充,可以更靈活的規定組織管理機制;只有hook勾子呼叫自定義鏈時才生效。
-
五個內建鏈分別是:INPUT、OUTPUT、FORWARD、PREROUTING、POSTROUTING。
-
五個表table:filter、nat、mangle、raw、security。
- filter:過濾規則表,根據預定義的規則過濾符合條件的資料包,此為預設表。
- nat:network address translation,地址轉換規則表。
- mangie:修改資料標記位規則表。
- raw:關閉啟動連線跟蹤機制,加快封包穿越防火牆速度。
- security:用於強制訪問控制(MAC)網路規則,有Linux安全模組(如:SElinux)實現。
-
五個表的優先順序由高到低的順序
- security > raw > mangie > nat > filter
-
表和鏈的對應關係
-
查看錶中存在幾個鏈
iptables -t $TABLE -nvL
核心中資料包的傳輸過程
- 當一個數據包進入網絡卡,資料包首先進入盤PREROUTING鏈,核心根據資料包的IP判斷是否要轉送出去。
- 如果資料包是要進入本機的就會繼續向上移動,到達INPUT鏈。資料包進入INPUT鏈後,任何程式都會收到它。本機上執行的程式可以傳送資料包,這些資料包經過OUTPUT,然後到達POSTROUTING鏈輸出。
- 如果資料包要轉發出去,且核心允許轉發資料包會向右移動,經過FORWARD鏈,然後到達POSTROUTING鏈輸出。