1. 程式人生 > 其它 >iptables學習[02]:iptables的組成

iptables學習[02]:iptables的組成

簡介

  • 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鏈輸出。