蚊章汇 - 王震华, 朱丽璇
type: channel
link: https://linuxcn.bwsl.wang/author/1403/
description: 王震华, 朱丽璇
items: FirewallD 防火墙使用概述

FirewallD 防火墙使用概述
type: item
date: 2020-05-14T23:27:00+08:00
description: FirewallD 是由红帽发起的提供了支持网络/防火墙 区域 （ zone ） 定义网络链接以及接口安全等级的动态防火墙管理工具。它支持 IPv4、IPv6 防火墙设置以及以太网桥接，并且拥有运行时配置和永久配置选项。它也支持允许服务或者应用程序直接添加防火墙规则的接口。由于 FirewallD 项目本身的自由软件特性，像 Debian Linux 社区发行版已经默认在软件仓库中收录了该防火墙组件软件包。随着各个新 GNU/Linux 发行版中防火墙引擎逐步从 iptables 向 nftables 迁移，FirewallD 是目前唯一能够支持该两种防火墙后端引擎的前端服务组件，用户掌握以后可以方便的进行防火墙配置并很好的规避了从 iptables 向 nftables 迁移带来的学习恐慌。笔者通过查阅 RedHat 8 发行版网络配置手册，并结合自己在 Debian Linux 10 社区版上进行 FirewallD 防火墙的实际配置使用，对该服务组件的功能和日常使用进行整理。希望通过该文能帮助其他 Linux 用户掌握该防火墙，并通过该防火墙提高主机测网络安全防御能力，打造可信的网络安全环境。一、安装在 Debian Linux 10 社区版中使用如下命令：apt-get install firewall-applet firewall-config firewalld就可以直接进行 FirewallD 防火墙软件组件包的安装，其中：firewall-applet 为 FirewallD 托盘小程序，firewall-config 为 FirewallD 图形化系统配置管理工具firewalld 为 FirewallD 防火墙软件组件的主组件包，其中包含 firewall-cmd、firewall-offline-cmd 等命令行系统配置管理工具。在 RedHat 8 下该防火墙组件默认已经进行了安装，如果用户进行特殊定制安装之后需要单独安装该软件组件可以使用命令yum install firewall-config直接进行安装即可。笔者在两个系统装进行过安装对比，发现该软件组件包在两个系统上除了安装命令稍有差异外，其它从配置文件到 systemd 服务配置并没有任何区别。随后的内容将不再强调操作系统。二、防火墙默认区域Block（阻塞） 任何对该区域的连接请求都会被以 IPv4 的 icmp-host-prohibited 信息或 IPv6 的 icmp6-adm-prohibited 信息所拒绝。只能从系统内部启动网络连接。Dmz（隔离） 用于你的隔离区内的电脑，此区域内可公开访问，可以有限地进入你的内部网络，仅仅接收经过选择的连接。Drop（丢弃） 对进入该区域的所有数据包丢弃，并且不进行任何回包，区域内主动发起连接的流入回程数据包允许通过，允许进行出方向的网络连接。External（外部） 用于在启用伪装的外部网络上使用，尤其路由器、防火墙认为在这个网络上的其它主机不可信。仅仅接收经过选择的连接。Home（家庭） 默认其他同区域内主机可信，仅仅接收经过选择的连接。同时默认放行 ssh、mdns、ipp-client、amba-client 与 dhcpv6-client 服务产生的连接。Internal（内部） 从描述中可以等同于家庭区域。Public（公开） 公共区域，也是防火墙配置的默认区域，防火墙认为该区域主机不可信。仅仅接收经过选择的连接。同时默认放行 ssh 与 dhcpv6-client 服务产生的连接。Trusted（可信） 可信区域，防火墙放行一切流量。等同于关闭防火墙功能。Work（工作） 工作区域，防火墙认为在这个网络上的其它主机不可信。仅仅接收经过选择的连接。同时默认放行 ssh、ipp-client 与 dhcpv6-client 服务产生的连接。这些区域的命名不言自明，用户可以很快选择一个合适的安全区域，从而简化和避开很多安全问题。当然用户也可以根据自己的需要或者安全评估来根据自己的实际需求对相应安全域进行更个性化的配置，以适应自己的安全管理规范。尽管有些安全域的安全规则是相同的，但之所以还要在名字上有所区别，主要是为了从习惯上让用户更好区分不同域的独特使用场景，对用户来说更好理解和便于区分。三、防火墙日常管理3.1、查看防火墙当前状态查询状态：firewall-cmd --state更多的防火墙系统服务状态信息可以使用systemctl status firewalld在你配置新的防火墙规则之前，你需要了解如何通过命令查看当前防火墙配置。查看防火墙当前配置可以通过图形界面或者在终端模式下使用命令进行。在图形界面下可以直接通过点击应用程序“firewall-config”图标或者在终端窗…