Contents

Linux - Firewalld 動態防火牆管理器

從 RHEL 8 開始 firewalld 動態防火牆管理器就為主要預設的操作工具,是 Linux 核心 netfilter 封裝過的高階程式,透過簡易的操作就能有效的使用底層 netfilter 功能。

1. Firewalld 簡介

Firewalld 與 iptables 工具同一個時間只能存在一個,如果要使用 Firewadll 可以透過 systemctl 開啟 ( RHEL 系列預設就是啟動 ) 。

https://i.imgur.com/K7M9DNL.png
From access.redhat.com

2. 管理 Firewalld 程序

2.1. 啟動 Firewalld

1
[root@servera ~]# systemctl start firewalld.service

2.2. 停止 Firewalld

1
[root@servera ~]# systemctl stop firewalld.service
停用防火牆
如果要永久停用防火牆,可以執行 systemctl disable firewalld.service --now將會永久停用防火牆。

2.3. 附錄 - 改用 iptables

不少習慣使用 iptables 工具的管理者,如果要繼續使用可以停用及 mask firewalld,及安裝iptables-services 服務 (yum install iptables-services -y) 。

3. 檢查防火牆清單

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
[root@servera ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp1s0
  sources: 
  services: cockpit dhcpv6-client ssh
  ports: 
  protocols: 
  forward: no
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules:

預設 TCP cockpit dhcpv6-client ssh 及 ICMP 協定都會開放存取。

4. 開放及停用阜號 (服務)

4.1.1 開放阜號或服務

  1. 以 協議 + 阜號方式開放
1
2
[root@servera ~]# firewall-cmd --add-port=80/tcp
success
  1. 以規定成俗的服務名稱開放
1
2
[root@servera ~]# firewall-cmd --add-service=http
success

4.1.2 停用阜號或服務

  1. 以 協議 + 阜號方式停用
1
2
[root@servera ~]# firewall-cmd --remove-port=80/tcp
success
  1. 以規定成俗的服務名稱開放
1
2
[root@servera ~]# firewall-cmd --remove-service=http
success

4.1.3 將防火牆規則寫入硬碟內

上述所有的規則設定都僅為修改記憶體內的防火牆規則,一旦機器重新開機後就會失效,可以透過寫入硬碟方式,讓每次重新開機都能載入正確的防火牆規則。

開放 http 服務存取,並且永久生效

1
2
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
Reload
如果加上 permanent 參數,會將規則寫入硬碟,重新開機後才會生效 ( 未修改記憶體 ),不過可以透過 reload 方式將存放在硬碟的規則載入記憶體就不需重新開機。

5. GUI 方式管理

在桌面版可以透過 GUI 介面操作

  1. 安裝圖形化介面
1
yum install firewall-config -y
  1. 圖形化介面範例

https://i.imgur.com/lkP5GVv.png

6. 小結

Firewalld 這工具單純用來管理開放或停用阜號是非常的容易且快速,不過要做出較為進階操作還是必須熟悉 iptable 工具會更佳合適。



如果你還沒有註冊 Like Coin,你可以在文章最下方看到 Like 的按鈕,點下去後即可申請帳號,透過申請帳號後可以幫我的文章按下 Like,而 Like 最多可以點五次,而你不用付出任何一塊錢,就能給我寫這篇文章的最大的回饋!