首頁 > 運維 > linux運維 > 如何使用防火牆或Iptables在Linux中設置防火牆?

如何使用防火牆或Iptables在Linux中設置防火牆?

Emily Anne Brown
發布: 2025-03-12 18:58:51
原創
922 人瀏覽過

使用防火牆或Iptables在Linux中設置防火牆

使用firewalldiptables在Linux中設置防火牆,由於其建築差異而涉及不同的方法。 firewalld是一個動態的防火牆守護程序,提供了用於管理防火牆規則的用戶友好界面,而iptables是一個命令行實用程序,可以直接操縱內核的NetFilter框架。

使用Firewalld:

  1. 安裝:確保安裝firewalld 。在大多數發行版中,這是使用軟件包管理器完成的(例如,在fedora/centos/rhel上dnf install firewalld apt install firewalld install firewalld。
  2. 啟動並啟用FireWalld:使用systemctl start firewalld ,並使其能夠使用systemctl enable firewalld
  3. 基本配置: firewalld使用“區域”來定義不同的網絡上下文(例如,“公共”,“內部”,“ DMZ”)。每個區域都有一組默認規則。您可以使用firewall-cmd --get-active-zones 。要將服務(例如SSH(端口22))添加到默認區域(通常是“公共”),請使用firewall-cmd --permanent --add-service=ssh 。要使更改永久,請使用--permanent標誌。用firewall-cmd --reload以應用更改。
  4. 高級配置:對於更詳細的控制,您可以使用firewall-cmd --permanent --add-port=80/tcp添加特定端口(用於HTTP)或使用firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" accept'

使用iptables:

  1. 安裝: iptables通常默認包含在大多數Linux發行版中。
  2. 基本配置: iptables使用鏈(例如, INPUTOUTPUTFORWARD )來管理規則。每個規則指定源/目標IP地址,端口,協議和操作(接受,刪除,拒絕)。例如,為了允許SSH連接: iptables -A INPUT -p tcp --dport 22 -j ACCEPT
  3. 保存規則: iptables規則在重新啟動過程中並不持續。您需要使用腳本或諸如iptables-save之類的實用程序來保存它們,並在啟動時使用啟動腳本加載它們。確切的方法取決於您的分佈。
  4. 高級配置: iptables提供了極為細粒度的控件,允許具有各種匹配條件和自定義鏈的複雜規則集。但是,這需要對網絡和iptables語法有深入的了解。

防火牆和iptables之間的關鍵差異

主要區別在於他們的防火牆管理方法。 firewalld提供了在iptables頂部構建的更高級別,用戶友好的接口。它簡化了常見的防火牆任務,使管理區域,服務和端口更容易。另一方面, iptables對NetFilter框架提供了直接的低級控制,提供了更大的靈活性,但需要更多的技術專業知識。

這是一個總結關鍵差異的表:

特徵 Firewalld iptables
介面 具有用戶友好選項的命令行工具 僅命令行,複雜的語法
配置 區域,服務,港口,豐富的規則 鏈條,具有特定匹配標準的規則
持久性 內置的持久機制 需要在啟動時手動節省和加載
複雜 更容易學習和使用 陡峭的學習曲線,更複雜
靈活性 不如iptables靈活 高度靈活,允許複雜的規則
動態更新 支持動態更新 需要手動更新

配置特定的防火牆規則以允許/拒絕特定端口或服務

使用Firewalld:

要允許特定端口(例如,端口80上的http):

 <code class="bash">firewall-cmd --permanent --add-port=80/tcp firewall-cmd --reload</code>
登入後複製

拒絕特定端口(例如,端口21上的FTP):

對於firewalld而言,這並不那麼簡單。您可能需要創建一個自定義區域或使用富裕規則來精確實現這一目標。通常, firewalld旨在默認允許並明確拒絕。

允許特定服務(例如,SSH):

 <code class="bash">firewall-cmd --permanent --add-service=ssh firewall-cmd --reload</code>
登入後複製

使用iptables:

要允許特定端口(例如,端口80上的http):

 <code class="bash">iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT # If you want to allow outgoing traffic on port 80 as well. service iptables save # Save the rules (method varies by distribution)</code>
登入後複製

拒絕特定端口(例如,端口21上的FTP):

 <code class="bash">iptables -A INPUT -p tcp --dport 21 -j DROP service iptables save # Save the rules (method varies by distribution)</code>
登入後複製

使用防火牆保護Linux系統的最佳實踐

無論您是使用firewalld還是iptables ,都遵循以下最佳實踐:

  • 特權最少的原則:僅允許必要的流量。默認情況下拒絕所有內容,並明確允許特定的端口和服務。
  • 定期更新:通過最新的安全補丁保持防火牆和操作系統更新。
  • 日誌分析:定期查看防火牆日誌以識別可疑活動。
  • 輸入鏈焦點:密切注意INPUT鏈,因為這控制了傳入的連接。
  • StateFull防火牆:利用狀態檢查( firewalldiptables支持此)來跟踪連接並允許返回流量。
  • 除非必要,否則請避免開放端口:最大程度地減少暴露於Internet的開放端口的數量。
  • 使用強密碼策略:通過使用強密碼並定期更新系統來保護系統。
  • 定期審查規則:定期審查您的防火牆規則,以確保它們仍然適當有效。
  • 使用單獨的DMZ:如果您需要向Internet展示服務,請考慮使用單獨的DMZ(非軍事區)將這些服務與內部網絡隔離。
  • 考慮入侵檢測/預防系統(IDS/IP):將防火牆與IDS/IP相結合,以增加安全性。

請記住,將防火牆規則始終在受控環境中進行測試,然後再將其部署到生產系統中。未正確配置的防火牆規則可能使您的系統無法訪問。

以上是如何使用防火牆或Iptables在Linux中設置防火牆?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板