對于運行Linux系統的服務器或工作站而言,掌握如何查看和管理防火墻狀態是至關重要的技能
本文將詳細介紹如何使用Linux命令來查看防火墻的狀態和配置,幫助讀者更好地理解和運用這一關鍵的安全工具
一、Linux防火墻概述 Linux防火墻主要通過兩種機制實現:iptables和firewalld
iptables是基于內核的防火墻系統,提供強大的包過濾和NAT(網絡地址轉換)功能,而firewalld則是一個動態的防火墻管理工具,它提供了更友好的用戶界面和區域(zones)概念,簡化了配置和管理過程
二、使用iptables查看防火墻狀態 1. 檢查iptables是否安裝 首先,確保你的系統上安裝了iptables
在大多數Linux發行版中,iptables默認是安裝的
你可以通過以下命令檢查: iptables --version 如果系統返回iptables的版本信息,則表示已安裝
2. 查看iptables規則 要查看當前iptables的規則,可以使用以下命令: sudo iptables -L -v -n - `-L`:列出所有規則鏈(filter、nat等)
- `-v`:顯示詳細信息,包括包計數和字節計數
- `-n`:不進行DNS解析,直接顯示IP地址和端口號
3. 查看特定鏈的規則 如果你想查看特定鏈(如INPUT、FORWARD、OUTPUT)的規則,可以指定鏈名: sudo iptables -L INPUT -v -n 4. 保存和恢復iptables規則 由于iptables規則在系統重啟后會丟失,因此需要定期保存規則
可以使用以下命令將當前規則保存到文件: sudo iptables-save > /etc/iptables/rules.v4 在系統啟動時,可以通過iptables-restore命令恢復規則: sudo iptables-restore < /etc/iptables/rules.v4 三、使用firewalld查看防火墻狀態 1. 檢查firewalld是否安裝和運行 firewalld通常在新版的Linux發行版中作為默認防火墻管理工具
你可以通過以下命令檢查firewalld是否安裝并正在運行: sudo systemctl status firewalld 如果服務正在運行,你會看到“active (running)”字樣
2. 查看firewalld的區域和規則 firewalld使用區域(zones)來管理不同的網絡接口和源地址
要查看當前定義的區域及其規則,可以使用以下命令: sudo firewall-cmd --list-all-zones 這將列出所有區域及其對應的規則、服務、端口等信息
3. 查看當前活動區域的詳細規則 默認情況下,firewalld使用`public`區域
要查看該區域的詳細規則: sudo firewall-cmd --zone=public --list-all 這將顯示`public`區域的所有開放端口、服務、允許的ICMP類型等信息
4. 查看特定服務的狀態 firewalld允許你管理預定義的服務,如HTTP、SSH等
要檢查某個服務是否在某個區域中啟用,可以使用: sudo firewall-cmd --zone=public --query-service=ssh 如果服務已啟用,命令將返回`yes`
5. 動態添加或刪除規則 firewalld允許你動態地添加或刪除規則,而無需重啟