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 模組跟蹤連線,使用狀態模組維護有狀態連線,以及使用限制模組限制流量速率。這些高階功能有助於建立更強大和安全的防火牆配置。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP