如何使用防火牆或Iptables在Linux中設置防火牆?
使用防火牆或Iptables在Linux中設置防火牆
使用firewalld
或iptables
在Linux中設置防火牆,由於其建築差異而涉及不同的方法。 firewalld
是一個動態的防火牆守護程序,提供了用於管理防火牆規則的用戶友好界面,而iptables
是一個命令行實用程序,可以直接操縱內核的NetFilter框架。
使用Firewalld:
-
安裝:確保安裝
firewalld
。在大多數發行版中,這是使用軟件包管理器完成的(例如,在fedora/centos/rhel上dnf install firewalld
apt install firewalld
install firewalld。 -
啟動並啟用FireWalld:使用
systemctl start firewalld
,並使其能夠使用systemctl enable firewalld
。 -
基本配置:
firewalld
使用“區域”來定義不同的網絡上下文(例如,“公共”,“內部”,“ DMZ”)。每個區域都有一組默認規則。您可以使用firewall-cmd --get-active-zones
。要將服務(例如SSH(端口22))添加到默認區域(通常是“公共”),請使用firewall-cmd --permanent --add-service=ssh
。要使更改永久,請使用--permanent
標誌。用firewall-cmd --reload
以應用更改。 -
高級配置:對於更詳細的控制,您可以使用
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:
-
安裝:
iptables
通常默認包含在大多數Linux發行版中。 -
基本配置:
iptables
使用鏈(例如,INPUT
,OUTPUT
,FORWARD
)來管理規則。每個規則指定源/目標IP地址,端口,協議和操作(接受,刪除,拒絕)。例如,為了允許SSH連接:iptables -A INPUT -p tcp --dport 22 -j ACCEPT
。 -
保存規則:
iptables
規則在重新啟動過程中並不持續。您需要使用腳本或諸如iptables-save
之類的實用程序來保存它們,並在啟動時使用啟動腳本加載它們。確切的方法取決於您的分佈。 -
高級配置:
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防火牆:利用狀態檢查(
firewalld
和iptables
支持此)來跟踪連接並允許返回流量。 - 除非必要,否則請避免開放端口:最大程度地減少暴露於Internet的開放端口的數量。
- 使用強密碼策略:通過使用強密碼並定期更新系統來保護系統。
- 定期審查規則:定期審查您的防火牆規則,以確保它們仍然適當有效。
- 使用單獨的DMZ:如果您需要向Internet展示服務,請考慮使用單獨的DMZ(非軍事區)將這些服務與內部網絡隔離。
- 考慮入侵檢測/預防系統(IDS/IP):將防火牆與IDS/IP相結合,以增加安全性。
請記住,將防火牆規則始終在受控環境中進行測試,然後再將其部署到生產系統中。未正確配置的防火牆規則可能使您的系統無法訪問。
以上是如何使用防火牆或Iptables在Linux中設置防火牆?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

在Debian系統中,Tigervnc服務器的日誌文件通常存儲在用戶的home目錄下的.vnc文件夾內。如果您以特定用戶身份運行Tigervnc,那麼日誌文件名通常類似於xf:1.log,其中xf:1代表用戶名。要查看這些日誌,您可以使用以下命令:cat~/.vnc/xf:1.log或者,您可以使用文本編輯器打開日誌文件:nano~/.vnc/xf:1.log請注意,訪問和查看日誌文件可能需要root權限,這取決於系統的安全設置。

Linux系統的五個基本組件是:1.內核,2.系統庫,3.系統實用程序,4.圖形用戶界面,5.應用程序。內核管理硬件資源,系統庫提供預編譯函數,系統實用程序用於系統管理,GUI提供可視化交互,應用程序利用這些組件實現功能。

Debian系統中的readdir函數是用於讀取目錄內容的系統調用,常用於C語言編程。本文將介紹如何將readdir與其他工具集成,以增強其功能。方法一:C語言程序與管道結合首先,編寫一個C程序調用readdir函數並輸出結果:#include#include#includeintmain(intargc,char*argv[]){DIR*dir;structdirent*entry;if(argc!=2){

DebianSniffer是一個網絡嗅探工具,用於捕獲和分析網絡數據包時間戳(Timestamp):顯示數據包捕獲的時間,通常以秒為單位。源IP地址(SourceIP):發送數據包的設備的網絡地址。目標IP地址(DestinationIP):接收數據包的設備的網絡地址。源端口(SourcePort):發送數據包的設備使用的端口號。目標端口(Destinatio

本文介紹如何在Debian系統上有效監控Nginx服務器的SSL性能。我們將使用NginxExporter將Nginx狀態數據導出到Prometheus,再通過Grafana進行可視化展示。第一步:配置Nginx首先,我們需要在Nginx配置文件中啟用stub_status模塊來獲取Nginx的狀態信息。在你的Nginx配置文件(通常位於/etc/nginx/nginx.conf或其包含文件中)中添加以下代碼段:location/nginx_status{stub_status

在Debian系統上安裝PHPStorm,輕鬆搞定你的PHP開發環境!以下步驟將引導您完成整個安裝過程。安裝步驟:下載PHPStorm:訪問JetBrains官網,下載PHPStorm最新版本。解壓安裝包:使用wget或curl下載後,解壓到指定目錄(例如/opt)。命令示例:wgethttps://download.jetbrains.com/phpstorm/phpstorm-2024.3.5.tar.gztar-xzfphpstorm-2024.3.5.tar.gz

本文介紹如何在Debian系統中清理無用軟件包,釋放磁盤空間。第一步:更新軟件包列表確保你的軟件包列表是最新的:sudoaptupdate第二步:查看已安裝的軟件包使用以下命令查看所有已安裝的軟件包:dpkg--get-selections|grep-vdeinstall第三步:識別冗餘軟件包利用aptitude工具查找不再需要的軟件包。 aptitude會提供建議,幫助你安全地刪除軟件包:sudoaptitudesearch'~pimportant'此命令列出標記

Linux初學者應掌握文件管理、用戶管理和網絡配置等基本操作。 1)文件管理:使用mkdir、touch、ls、rm、mv、cp命令。 2)用戶管理:使用useradd、passwd、userdel、usermod命令。 3)網絡配置:使用ifconfig、echo、ufw命令。這些操作是Linux系統管理的基礎,熟練掌握它們可以有效管理系統。
