Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

5.3. 查看 firewalld的当前状态和设置

5.3.1. 查看 firewalld的当前状态

默认情况下,防火墙服务 firewalld 会在系统上安装。使用 firewalld CLI 接口来检查该服务是否正在运行。
查看服务的状态:
~]# firewall-cmd --state
如需有关服务状态的更多信息,请使用 systemctl status 子命令:
~]# systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor pr
   Active: active (running) since Mon 2017-12-18 16:05:15 CET; 50min ago
     Docs: man:firewalld(1)
 Main PID: 705 (firewalld)
    Tasks: 2 (limit: 4915)
   CGroup: /system.slice/firewalld.service
           └─705 /usr/bin/python3 -Es /usr/sbin/firewalld --nofork --nopid
另外,在尝试编辑设置前,务必要知道如何设置 firewalld 以及哪些规则被强制使用。要显示防火墙设置,请查看 第 5.3.2 节 “查看当前的 firewalld 设置”

5.3.2. 查看当前的 firewalld 设置

5.3.2.1. 使用 GUI 查看允许的服务

要使用图形化的 firewall-config 工具来查看服务列表,请按 Super 键进入到活动概览,输入 firewall,然后按 Enterfirewall-config 工具会出现。现在,您可以在 Services 选项卡下查看服务列表。
另外,要用命令行启动图形防火墙配置工具,请输入以下命令:
~]$ firewall-config
此时会打开 Firewall Configuration 窗口。请注意,这个命令可以以普通用户身份运行,但偶尔会提示您输入管理员密码。

图 5.2. firewall-config 中的 Services 选项卡

firewall-config 中的 Services 选项卡

5.3.2.2. 使用 CLI 查看 firewalld 设置

使用 CLI 客户端可能会对当前防火墙设置有不同的视图。list-all 选项显示 firewalld 设置的完整概述。
Firewalld 使用区来管理流量。如果没有通过 --zone 选项指定区,则该命令在分配给活跃网络接口和连接的默认区中有效。
要列出默认区的所有相关信息:
~]# firewall-cmd --list-all
public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
注意
要指定显示其设置的区,请在 firewall-cmd --list-all 命令中添加 --zone=zone-name 参数,例如:
~]# firewall-cmd --list-all --zone=home
home
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh mdns samba-client dhcpv6-client
... [output truncated]
要查看特定信息(如服务或端口)的设置,请使用特定选项。使用命令帮助来查看 firewalld 手册页或获取选项列表:
~]# firewall-cmd --help

Usage: firewall-cmd [OPTIONS...]

General Options
  -h, --help           Prints a short help text and exists
  -V, --version        Print the version string of firewalld
  -q, --quiet          Do not print status messages

Status Options
  --state              Return and print firewalld state
  --reload             Reload firewall and keep state information
... [output truncated]
例如:查看当前区中允许哪些服务:
~]# firewall-cmd --list-services
ssh dhcpv6-client
使用 CLI 工具列出某个子部分的设置有时会比较困难。例如,允许 SSH 服务,firewalld 为该服务打开所需的端口(22)。之后,如果您列出允许的服务,列表会显示 SSH 服务,但如果列出开放的端口,则不会显示任何内容。因此,建议您使用 --list-all 选项来确保您收到完整的信息。