iT邦幫忙

2024 iThome 鐵人賽

DAY 19
0

iptables 是 Linux 平台下的封包過濾防火牆,主要用於控制進出 Linux 系統的網路數據包。主要功能包括:

  1. 封包過濾:根據定義好的規則來决定是否允許封包通過,能夠設定為以下值允許(ACCEPT)、拒絕(REJECT)和丟棄(DROP)等。

  2. 網路位址轉換(NAT):修改封包的 IP 位址、連接埠號碼等訊息,如來源位址網路位址轉換(SNAT)、目標位址網路位址轉換(DNAT)等。

  3. 封包狀態檢測:例如,確定資料包是否被狀態追蹤機制處理。

iptables 的結構由上而下,由表(Tables)、鏈(Chains)、規則(Rules)組成。它有 Filter, NAT, Mangle, Raw 四種內建表,每個表有特定的功能和內建鏈。例如,Filter 表主要用於過濾資料包,包含 INPUT、FORWARD、OUTPUT 三種內建鏈。 NAT 表主要用於網路位址轉換,包含 PREROUTING、POSTROUTING、OUTPUT 三種內建鏈。

在 iptables 中,鏈(Chains)是指數據包傳播的路徑,每一條鏈其實就是眾多規則中的一個檢查清單,並且在每一條鏈中可以有一條或數條規則(Rules)。當一個數據包到達一個鏈時,iptables 就會從鏈中第一條規則開始檢查,看該數據包是否滿足規則所定義的條件。如果滿足,系統就會根據該條規則所定義的方法處理該數據包;否則 iptables 將繼續檢查下一條規則。如果該數據包不符合鏈中任一條規則,iptables 就會根據該鏈預先定義的默認策略來處理數據包。

以下是一些具體的內建鏈的功能:

  • INPUT 鏈:當接收到防火牆本機地址的數據包(入站)時,應用此鏈中的規則。
  • OUTPUT 鏈:當防火牆本機向外發送數據包(出站)時,應用此鏈中的規則。
  • FORWARD 鏈:當接收到需要通過防火牆發送給其他地址的數據包(轉發)時,應用此鏈中的規則。
  • PREROUTING 鏈:在對數據包作路由選擇之前,應用此鏈中的規則,如 DNAT。
  • POSTROUTING 鏈:在對數據包作路由選擇之後,應用此鏈中的規則,如 SNAT。

上一篇
Day18 - 虛擬機啟動IP轉發
下一篇
Day20 - 虛擬機iptable防火牆設定
系列文
Packet流量密碼:透析虛擬化網路的封包世界30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言