如何在 Firewalld 中為特定 IP 地址開啟埠?


在當今互聯互通的世界中,網路安全至關重要。保障網路安全的其中一個重要方面是管理系統上特定埠的訪問許可權。Firewalld 是一款動態防火牆管理工具,它為 CentOS 中的防火牆配置提供了一種靈活且使用者友好的方法。

本指南將重點關注一個常見場景:在 Firewalld 中為特定 IP 地址開啟埠。透過僅允許特定 IP 地址訪問,您可以增強系統安全性並限制未經授權的訪問。

在本文中,我們將探討在 Firewalld 中為特定 IP 地址開啟埠的分步過程。我們將介紹 Firewalld 區域和服務的 basics,確定特定 IP 地址,並提供有關如何開啟所需埠的詳細說明。

理解 Firewalld 區域和服務

在使用 Firewalld 管理網路安全時,掌握區域和服務的概念至關重要。這些元件在定義防火牆的行為和確保適當的保護級別方面發揮著至關重要的作用。

  • Firewalld 區域  Firewalld 將網路介面和連線分類到不同的區域,每個區域都有其特定的用途。這些預定義的區域(包括公共區域、內部區域和信任區域)決定了與特定網路段關聯的信任級別。透過將介面分配到相應的區域,您可以控制訪問許可權併為每個區域設定不同的規則。

  • Firewalld 服務  Firewalld 中的服務代表與埠或埠範圍關聯的特定應用程式或協議。它們定義允許的網路流量,並且可以分配給特定區域。透過使用服務,您可以輕鬆管理和應用防火牆配置中常用服務的統一規則。

理解區域和服務之間的相互作用使您可以使用 Firewalld 建立量身定製的網路安全策略。掌握了這些知識後,讓我們繼續下一步:確定用於開啟埠的特定 IP 地址。

確定特定 IP 地址

在 Firewalld 中為特定 IP 地址開啟埠之前,您需要確定要授予訪問許可權的 IP 地址。請按照以下步驟獲取 IP 地址 

  • 檢查網路配置

$ ip addr show

查詢與所需 IP 地址關聯的網路介面。記下 IP 地址和介面名稱。

  • 檢視網路流量 

$ sudo tcpdump -i <interface> host <desired_ip>

將 <interface> 替換為上一步中網路介面的名稱,並將 <desired_ip> 替換為所需的 IP 地址。分析捕獲的資料包以識別 IP 地址。

  • 檢查日誌或系統資訊 

$ cat /var/log/syslog | grep <desired_ip>

在系統日誌中搜索與所需 IP 地址相關的條目。或者,檢查可能包含有關訪問您系統的 IP 地址的資訊的相關配置檔案。

透過按照這些步驟,您將能夠確定要在 Firewalld 中為其開啟埠的特定 IP 地址。獲得 IP 地址後,您可以繼續下一部分,其中介紹了開啟埠的步驟。

在 Firewalld 中為特定 IP 地址開啟埠

現在您已經確定了要授予訪問許可權的特定 IP 地址,您可以繼續為 Firewalld 中該 IP 地址開啟埠。請按照以下步驟操作 

  • 驗證 Firewalld 狀態  透過執行以下命令檢查 Firewalld 是否在您的系統上執行 

$ sudo systemctl status firewalld

確保服務處於活動狀態並正在執行。

  • 查詢區域  確定與埠所屬網路介面關聯的 Firewalld 區域。執行以下命令以列出可用的區域 

$ sudo firewall-cmd --get-zones

為您的網路介面確定合適的區域。

  • 新增新規則  使用 --zone 選項以及區域名稱為特定 IP 地址和埠新增新規則。執行以下命令 

$ sudo firewall-cmd --zone=<zone_name> --add-source=<specific_ip>/32 --permanent

將 <zone_name> 替換為上一步中獲得的適當區域名稱,並將 <specific_ip> 替換為已識別的 IP 地址。

  • 指定埠  使用 --add-port 選項將埠號新增到規則中 

$ sudo firewall-cmd --zone=<zone_name> --add-port=<port_number>/tcp --permanent

將 <zone_name> 替換為區域名稱,並將 <port_number> 替換為所需的埠號。

  • 重新載入 Firewalld  透過重新載入 Firewalld 來應用更改 

$ sudo firewall-cmd --reload
  • 驗證規則  為了確保現在已為特定 IP 地址打開了埠,請執行以下命令 

$ sudo firewall-cmd --zone=<zone_name> --list-all

驗證 IP 地址和埠是否列在輸出中。

現在,我們已經為 Firewalld 中的特定 IP 地址打開了埠。這允許指定的 IP 地址訪問系統上指定的埠。

在下一節中,我們將探討如何在需要時刪除規則並關閉埠。

刪除規則並關閉埠

如果需要撤銷特定 IP 地址的訪問許可權或關閉 Firewalld 中的埠,您可以輕鬆刪除規則。請按照以下步驟操作 

  • 確定規則  在刪除規則之前,務必確定與特定 IP 地址和埠關聯的規則編號。執行以下命令以列出規則:

$ sudo firewall-cmd --zone=<zone_name> --list-all

找到包含要刪除的特定 IP 地址和埠的規則。記下規則編號。

  • 刪除規則  使用 --remove-rich-rule 選項以及規則編號刪除規則:

$ sudo firewall-cmd --zone=<zone_name> --remove-rich-rule='rule family="ipv4" source address="<specific_ip>/32" port port="<port_number>" protocol="tcp" accept' --permanent

將 <zone_name> 替換為相應的區域名稱,將 <specific_ip> 替換為 IP 地址,並將 <port_number> 替換為埠號。使用您在上一步中記下的規則編號。

  • 重新載入 Firewalld  透過重新載入 Firewalld 來應用更改:

$ sudo firewall-cmd --reload

完成這些步驟後,允許特定 IP 地址訪問指定埠的規則將被刪除,從而有效地關閉該埠。

結論

管理網路安全對於任何系統都至關重要,而 Firewalld 為控制傳入連線提供了強大的解決方案。在本博文中,我們討論瞭如何在 Firewalld 中為特定 IP 地址開啟特定埠。我們介紹了必要的步驟,包括確定區域、新增豐富規則和驗證配置。透過遵循這些指南,您可以確保只有授權的 IP 地址才能訪問特定埠,從而增強系統安全性。

更新於:2023年8月9日

3K+ 瀏覽量

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告