Intro Linux firewalld

Intro Linux firewalld

在舊版的 CentOS Linux 中,防火牆都是以傳統的iptables來設定,而從 CentOS 7 開始,則改用 firewalld 來管理防火牆。

傳統的 iptables 在每次修改防火牆時都要清除舊規則,重新套用一次新規則,使用上不是很方便,而新的 firewalld 以區域(zone)的方式管理規則,
並使用動態的方式執行,修改規則後可立即生效,也不需要重新啟動系統的服務(service 或 daemon),
所以後來的 RHEL、CentOS 與 Fedora 都改用 firewalld 了。

iptables 與 firewalld 兩個防火牆管理系統只能選用其中一種,不可以同時開啟,否則會有問題。

安裝 firewalld

1
2
3
4
5
6
7
8
9
10
11
12
13
14
安裝 firewalld 之前,請先確認 iptables 是否有被啟用,若系統上原本就有運行 iptables 的防火牆,
一定要先將其關閉後,才能啟用 firewalld,否則會有問題:

# 檢查 iptables 服務是否正在運行
systemctl status iptables

# 停止正在執行的 iptables 服務
systemctl stop iptables

# 將 iptables 服務永久關閉
systemctl mask iptables

# Running to dead
systemctl stop iptables

firewalld 在 RHEL/CentOS 7 與 Fedora 21 之中應該是預設就會安裝好的,若您的系統上沒有安裝,可用 yum 安裝:

1
sudo yum install firewalld

當 firewalld 安裝好之後,檢查 firewalld 服務是否有啟動:

1
2
# 檢查 firewalld 服務狀態
systemctl status firewalld

若 firewalld 沒有啟動,則手動啟動它:

1
2
3
4
5
6
7
8
# 啟動 firewalld 服務
systemctl start firewalld

# 停止 firewalld 服務
systemctl stop firewalld

# 重新啟動 firewalld 服務
service firewalld restart

若要設定讓 firewalld 在開機時自動啟動,可執行:

1
2
# 設定開機自動啟動 firewalld 服務
systemctl enable firewalld