本章將和大家分享Linux系統中firewalld防火牆常用的操作命令。廢話不多說,下麵我們直接進入主題。 一、安裝Firewall命令 yum install firewalld firewalld-config 二、防火牆的基本操作 1、查看防火牆狀態 使用systemctl status fi ...
本章將和大家分享Linux系統中firewalld防火牆常用的操作命令。廢話不多說,下麵我們直接進入主題。
一、安裝Firewall命令
yum install firewalld firewalld-config
二、防火牆的基本操作
1、查看防火牆狀態
- 使用systemctl status firewalld命令可以查看firewalld服務的狀態。
- 也可以使用firewall-cmd --state命令直接查看防火牆的狀態。
2、開啟防火牆
- 臨時性開啟(重啟後失效):systemctl start firewalld
- 永久性開啟(即開機啟動):systemctl enable firewalld
3、關閉防火牆
- 臨時性關閉(重啟後恢復):systemctl stop firewalld
- 永久性關閉(即禁止開機啟動):systemctl disable firewalld
4、重啟防火牆
重新載入防火牆的所有配置並應用新的規則:systemctl restart firewalld
5、重新載入防火牆配置
- 不中斷現有連接:firewall-cmd --reload
- 中斷所有連接(類似重啟服務):firewall-cmd --complete-reload
三、區域(Zone)管理
- 查看所有可用的區域:firewall-cmd --get-zones
- 查看當前激活的區域:firewall-cmd --get-active-zones
- 查看指定區域的詳細信息:firewall-cmd --zone=public --list-all(public是示例區功能變數名稱,需替換為實際區功能變數名稱)
- 設置預設區域:firewall-cmd --set-default-zone=public(public是示例區功能變數名稱)
- 添加區域:firewall-cmd --permanent --new-zone=myzone(myzone是自定義區功能變數名稱)
- 刪除區域:firewall-cmd --permanent --delete-zone=myzone(myzone是自定義區功能變數名稱)
四、埠(Port)管理
1、查看已開放的埠
firewall-cmd --list-ports(顯示當前防火牆會話中開放的埠,包含永久或臨時開放的埠,未指定區域則預設為public區域)
firewall-cmd --permanent --list-ports (列出在 firewalld 防火牆配置中永久設置的埠)
2、添加指定開放埠
- 永久開放:firewall-cmd --permanent --zone=public --add-port=80/tcp(80是埠號,tcp是協議類型)
- 開放埠範圍:firewall-cmd --permanent --zone=public --add-port=9000-9008/tcp
3、移除指定開放埠
- 永久移除:firewall-cmd --permanent --zone=public --remove-port=80/tcp
- 移除埠範圍:firewall-cmd --permanent --zone=public --remove-port=9000-9008/tcp
4、查詢指定開放埠狀態
firewall-cmd --zone=public --query-port=80/tcp
五、服務(Service)管理
- 查看已啟用的服務:firewall-cmd --list-services(未指定區域則預設為public區域)
- 查看所有可用的服務:firewall-cmd --get-services
- 添加指定服務(永久添加):firewall-cmd --permanent --zone=public --add-service=http(http是服務名)
- 移除指定服務(永久移除):firewall-cmd --permanent --zone=public --remove-service=http
六、富規則(Rich Rules)
查看已設置的富規則:firewall-cmd --list-rich-rules(未指定區域則預設為public區域)。
添加富規則:例如,只允許特定IP訪問特定埠,可以使用如下命令:
firewall-cmd --permanent --zone=public --add-rich-rule="rule family='ipv4' source address='192.168.1.1/24' port protocol='tcp' port='3306' accept"
移除富規則:需要指定與添加時相同的規則字元串來移除。
七、查看當前防火牆配置
1、查看所有預設的區域設置
sudo firewall-cmd --get-default-zone
2、列出所有可用的區域
sudo firewall-cmd --get-zones
3、列出當前激活的區域
sudo firewall-cmd --get-active-zones
4、查看某個區域的所有規則
sudo firewall-cmd --zone=<zone> --list-all
八、修改防火牆配置
1、永久改變預設區域
sudo firewall-cmd --set-default-zone=<new-zone>
2、臨時改變預設區域 (重啟後會恢復)
sudo firewall-cmd --set-default-zone-to=<new-zone>
3、將介面移動到特定區域
sudo firewall-cmd --permanent --change-zone=<interface> <new-zone>
4、添加埠到指定區域
sudo firewall-cmd --zone=<zone> --add-port=<port>/<protocol> --permanent
5、刪除埠
sudo firewall-cmd --zone=<zone> --remove-port=<port>/<protocol> --permanent
6、允許或禁止服務
sudo firewall-cmd --zone=<zone> --add-service=<service> --permanent
sudo firewall-cmd --zone=<zone> --remove-service=<service> --permanent
7、允許或禁止單個 IP 地址
sudo firewall-cmd --zone=<zone> --add-rich-rule='rule family="ipv4" source address="<ip-address>" accept' sudo firewall-cmd --zone=<zone> --remove-rich-rule='rule family="ipv4" source address="<ip-address>" accept'
8、重新載入配置文件(不會中斷現有連接)
sudo firewall-cmd --reload
九、註意事項
- 使用 --permanent 參數會將更改寫入配置文件,這樣更改在系統重啟後仍然有效。
- 不帶 --permanent 參數的更改僅在當前會話中生效,重啟 firewalld 或系統後會丟失。
- <zone> 是你想要應用規則的區功能變數名稱稱,例如 public, internal, trusted 等。
- <service> 是預定義的服務名稱,如 ssh, http, https 等。
- <port> 指定要開放的埠號,而 <protocol> 通常是 tcp 或 udp。