FirewallD由RedHat发起,提供动态防火墙管理工具,支持网络/防火墙区域(zones)来定义网络链接和接口安全等级。它支持IPv4、IPv6防火墙设置和以太网桥接,并具有运行时配置和永久配置选项。它还支持允许服务或应用程序直接添加防火墙规则的接口。由于FirewallD项目本身的自由软件性质,DebianLinux等社区发行版在软件仓库中默认包含了防火墙组件软件包。随着每个新的GNU/Linux发行版中防火墙引擎从iptables逐渐迁移到nftables,FirewallD是目前唯一可以支持两种防火墙后端引擎的前端服务组件。避免从iptables迁移到nftables的学习恐慌。笔者参考RedHat8发行版的网络配置手册,结合FirewallD防火墙在DebianLinux10社区版上的实际配置和使用,整理了服务组件的功能和日常使用。希望本文能帮助其他Linux用户掌握防火墙,提高主机通过防火墙的网络安全防御能力,营造可信的网络安全环境。1、在DebianLinux10社区版安装如下命令:apt-getinstallfirewall-appletfirewall-configfirewalld可以直接安装FirewallD防火墙软件组件包,其中:firewall-applet为FirewallD托盘小程序,firewall-config为FirewallD图形化系统配置管理工具firewalld是FirewallD防火墙软件组件的主要组件包,包括firewall-cmd、firewall-offline-cmd等命令行系统配置管理工具。在RedHat8下,防火墙组件已经默认安装。如果用户需要在特殊定制安装后单独安装软件组件,可以使用命令yuminstallfirewall-config直接安装。笔者对比了两个系统的安装,发现两个系统上的软件组件包除了安装命令略有不同外,从配置文件到systemd服务配置没有区别。下面将不再强调操作系统。2.防火墙默认区域Block(阻塞)任何对该区域的连接请求都会被拒绝,并带有IPv4icmp-host-prohibited信息或IPv6icmp6-adm-prohibited信息。网络连接只能从系统内部启动。Dmz(隔离区)适用于非军事区中的计算机,该区域可公开访问并且对内部网络的访问受限,仅接受选定的连接。Drop(丢弃)所有进入该区域的数据包都被丢弃,不发送返回包。允许区域内主动发起连接的传入返回数据包通过,允许出方向的网络连接。External(外部)用于启用伪装的外部网络,特别是路由器和防火墙认为这个网络上的其他主机是不可信任的。仅接受选定的连接。家(home)默认情况下,同一区域的其他主机是可信的,只接受选定的连接。同时默认允许ssh、mdns、ipp-client、amba-client和dhcpv6-client服务产生的连接。Internal(内部)从描述上可以等同于home区域。公共(public)公共区域也是防火墙默认配置的区域,防火墙认为该区域的主机是不可信的。仅接受选定的连接。同时默认允许ssh和dhcpv6-client服务的连接。Trusted(受信任)Trustedzone,防火墙允许所有流量。相当于关闭了防火墙功能。Work(工作)工作区,防火墙认为这个网络上的其他主机是不可信任的。仅接受选定的连接。同时默认允许ssh、ipp-client和dhcpv6-client服务产生的连接。这些区域的名称是不言自明的,用户可以快速选择合适的安全区域,从而简化和避免许多安全问题。当然,用户也可以根据自己的需要或根据自己的实际需要进行安全评估,更加个性化地配置相应的安全域,以适应自己的安全管理规范。虽然有些安全域的安全规则是一样的,但之所以有名称上的差异,主要是为了让用户从习惯上更好的区分不同域的独特使用场景,更好的理解和方便用户。区分。三、防火墙日常管理3.1.查看防火墙当前状态查询状态:firewall-cmd–state更多防火墙系统服务状态信息可以使用systemctlstatusfirewalld在配置新的防火墙规则之前,需要了解如何通过命令配置查看当前防火墙。您可以通过图形界面或在终端模式下使用命令查看防火墙的当前配置。在图形界面下,可以直接点击应用程序的“firewall-config”图标或者在终端窗口输入firewall-config命令来配置防火墙。如果当前用户为非root用户,系统会弹出管理员认证窗口。用户输入正确的管理员密码后,会打开防火墙配置窗口,用户可以根据窗口界面提供的功能进行操作。用户也可以使用firewall-cmd工具在命令行配置防火墙。虽然学习命令行工具需要一定的时间,但该工具可以在系统处于终端模式下进行各种复杂的防火墙全功能配置,用户必须认真学习掌握。3.2.防火墙基本命令FirewallD使用区域进行数据流管理。用户在使用firewall-cmd-list-all命令时,如果没有用--zone指定区域,系统将返回默认区域的当前配置状态。默认区域由配置文件/etc/firewalld/firewalld.conf中的字段DefaultZone定义。在初始状态下,默认区域被定义为公共(publiczone)。用户可以使用命令:firewall-cmd–get-zones查看当前系统防火墙设置的区域名称列表,或者使用命令:firewall-cmd-get-default-zone查看当前防火墙的默认区域;同时可以使用命令:firewall-cmd–set-default-zone=[zonename]或者直接编辑配置文件中DefaultZone字段的值来修改默认区域。启动防火墙:systemctlunmaskfirewalldsystemctlstartfirewalld让防火墙随系统启动一起启动:systemctlenablefirewalld停止防火墙:systemctlstopfirewalld停止随系统启动:systemctldisablefirewalld停止访问firewalldD-Bus接口和其他服务requirefirewallddependencies更干净地自动启动和关闭firewalld服务:systemctlmaskfirewalld是根据RedHat官方文档定义的。防火墙运行后称为运行状态,保存默认启动参数后的配置称为永久状态。在当前运行状态下对防火墙所做的所有配置修改将立即生效,但重启后防火墙将恢复到之前的永久状态。这个过程其实就是从保存的配置文件中加载相应的配置参数的过程。用户可以使用命令:fiewall-cmd--runtime-to-permanent将当前修改的规则立即保存为永久配置,或者使用命令firewall-cmd–permanent并在之后添加其他参数进行永久更改。重启firewalld会关闭所有打开的端口并停止网络通信,需要使用命令:firewall-cmd–reload重新加载永久配置才能生效。FirewallD提供了在系统受到攻击时的紧急行动功能。假设攻击者攻击系统,用户可以直接使用命令:firewall-cmd–panic-on关闭网络通信,切断攻击者,而不是像以前那样通过物理拔网线来断开网络,这样防止系统在多个网络上运行。端口环境下一次插拔所有网线可能造成的混乱以及由此导致的系统恢复后的继续运行。当需要恢复网络通信时,用户只需要使用命令:firewall-cmd--panic-off关闭panic模式,用户也可以使用命令:firewall-cmd–query-panic进行查询防火墙紧急模式的当前状态。3.2.防火墙服务管理命令用户可以通过命令行工具添加预定义的服务类型,防火墙会根据需要的端口等设置自动修改服务定义文件。使用命令:firewall-cmd--list-services查看当前区域允许的服务。使用命令:firewall-cmd--get-services列出防火墙已经给出的所有预定义服务名称。使用命令:firewall-cmd--add-service=
