firewalld 介绍

Linux 用户对 firewalld 应该不会陌生,firewalld 是一款动态防火墙管理器,用于实现持久网络流量规则的 iptables 和 nftables 的前端控制器。它提供命令行和图形界面 (firewall-config),firewalld 名称遵循 Unix 命名系统守护程序的约定,即在最后附加字母“d”。

firewalld 服务使用 zone (区域) 来控制防火墙访问。zone 是针对各种信任级别的预先构建的规则集。您可能有一个用于给定位置或场景的区域,例如家庭、公共或受信任的区域。不同的区域启用不同的网络服务和传入流量类型,同时拒绝其他一切。

firewalld 比 iptables 更容易管理和配置。与 iptables 相比,不需要编写一连串的连锁、跳转、接受和拒绝。它提供了一种非常灵活的方式来配置防火墙,即动态管理规则集,允许用户在不中断现有会话和连接的情况下进行更新,更改可以在运行时环境中立即完成,不需要重新启动服务或守护程序。

firewalld 在以下 Linux 发行版中被作为默认的防火墙管理工具:

  • Red Hat Enterprise Linux 7 及更新版本
  • CentOS 7 及更新版本
  • Fedora 18 及更新版本
  • SUSE Linux Enterprise 15 及更新版本
  • OpenSUSE Leap 15 及更新版本

上述的发行版会默认启动 firewalld。而其他的一些发行版中(如:Debian、 Ubuntu)也可以在软件库中找到 firewalld,作为选择之一。

firewalld 作为防火墙管理工具需要以下软件和库的支持:

  • NetworkManager
  • libvirt
  • podman
  • docker (仅在后端使用 iptables 时需要)
  • fail2ban

firewalld 1.0.0

而在距离首次发布十年后,Firewalld 终于来到了 1.0 版。firewalld 1.0.0 是一个主要版本,它优化和修改了很多地方,最显着的变化是默认放弃了对 Python 2 的支持和对区域内转发的支持。同时也修复了 0.9.0 版本中存在的而一些错误。

亮点包括:

  • 减少依赖性
  • 默认域内转发
  • NAT 规则移至 inet 系列 (减少规则集)
  • 默认目标现在类似于拒绝
  • ICMP 禁用和禁用反转仅适用于输入,不适用于转发
  • tftp-client 服务已被移除
  • 不推荐使用 iptables 后端
  • 直接接口已弃用
  • CleanupModulesOnExit 默认为 no

关于 firewalld 1.0 所有变化的信息,可以参考官方公告