Iptables 簡介


Iptables 簡介

Iptables 是一個基於 Linux 的防火牆應用程式,用於控制進出流量。它是一個強大的工具,可以用來保護伺服器安全,限制對特定應用程式或服務的訪問,並減輕惡意攻擊的風險。本文將介紹 Iptables,其用途及其基本用法。

什麼是 Iptables?

Iptables 是一個與 Linux 核心一起工作的防火牆應用程式。它控制進出流量,並提供根據各種標準(例如埠號、IP 地址、協議等)過濾、阻止或允許流量的機制。Iptables 旨在保護系統免受未授權訪問,併為應用程式和服務提供安全的環境。

Iptables 如何工作?

Iptables 透過定義一組規則來確定如何處理流量。這些規則儲存在核心中,並對每個進出資料包進行評估。如果資料包與規則匹配,則根據規則中指定的動作允許或阻止它。

Iptables 分為三個主要元件:鏈、規則和目標。鏈是一系列規則,適用於特定型別的流量,例如進出流量。規則定義匹配資料包的標準以及如果資料包匹配則採取的操作。目標是 Iptables 採取的操作,例如接受或丟棄資料包。

Iptables 還支援各種模組,可用於增強其功能。這些模組可用於新增匹配資料包的新標準,例如一天中的時間或啟動連線的使用者。

Iptables 的基本用法

Iptables 是一個命令列工具,大多數 Linux 發行版預設安裝。要使用 Iptables,您必須具有 root 或超級使用者許可權。

要檢視當前的 Iptables 規則,請使用以下命令:

$ sudo iptables -L

此命令將列出當前在 Iptables 配置中定義的所有鏈、規則和目標。

要新增新規則,請使用以下命令:

$ sudo iptables -A chain-name -m match-criteria -j target-action

此命令將新規則新增到指定的鏈中。匹配標準指定匹配資料包的標準,目標動作指定如果資料包匹配則採取的操作。

例如,以下命令阻止對埠 22(用於 SSH)的所有傳入流量:

$ sudo iptables -A INPUT -p tcp --dport 22 -j DROP

此命令向 INPUT 鏈新增一條新規則,該規則丟棄所有目標埠為 22 的資料包。

要刪除規則,請使用以下命令:

$ sudo iptables -D chain-name rule-number

此命令從指定的鏈中刪除指定的規則。

例如,以下命令刪除阻止埠 22 上傳入流量的規則:

$ sudo iptables -D INPUT 1

此命令刪除 INPUT 鏈中的第一條規則,即阻止埠 22 上傳入流量的規則。

Iptables 的高階用法

如前所述,Iptables 支援各種模組,可用於增強其功能。以下是一些使用 Iptables 高階功能的示例。

Conntrack 模組

Conntrack 模組用於跟蹤連線,對於在有狀態連線中允許返回流量很有用。例如,如果您有一個在埠 80 上接受傳入流量的 Web 伺服器,並且您想允許已建立連線的返回流量,則可以使用 conntrack 模組,如下所示:

$ sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

此規則允許作為已建立或相關連線一部分的傳入流量。

狀態模組

狀態模組用於維護有狀態連線,對於僅允許有效流量很有用。例如,如果您只想允許來自特定 IP 地址的傳入 SSH 流量,則可以使用狀態模組,如下所示:

$ sudo iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

此規則允許來自 IP 地址 192.168.1.100 的傳入 SSH 流量,並且僅允許新的或已建立的連線。

限制模組

限制模組用於限制流量速率,對於防止拒絕服務攻擊很有用。例如,如果您想將埠 80 的傳入流量限制為每分鐘 100 個連線,則可以使用限制模組,如下所示:

$ sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 100/minute -j ACCEPT

此規則允許傳入埠 80 的流量,但將流量速率限制為每分鐘 100 個連線。

結論

Iptables 是一個強大的工具,可以用來保護伺服器安全,限制對特定應用程式或服務的訪問,並減輕惡意攻擊的風險。它透過定義一組規則來確定如何處理流量。這些規則儲存在核心中,並對每個進出資料包進行評估。Iptables 分為三個主要元件:鏈、規則和目標。鏈是一系列規則,適用於特定型別的流量,例如進出流量。規則定義匹配資料包的標準以及如果資料包匹配則採取的操作。目標是 Iptables 採取的操作,例如接受或丟棄資料包。Iptables 是一個命令列工具,大多數 Linux 發行版預設安裝,可用於新增、刪除或修改規則以控制流量。

Iptables 還有許多更高階的功能,例如使用 conntrack 模組跟蹤連線,使用狀態模組維護有狀態連線,以及使用限制模組限制流量速率。這些高階功能有助於建立更強大和安全的防火牆配置。

更新於:2023年3月14日

5K+ 次瀏覽

啟動你的職業生涯

透過完成課程獲得認證

開始
廣告
© . All rights reserved.