Firewalld 1.0 发布

发布了动态控制防火墙firewalld 1.0,以nftables 和iptables 数据包过滤器包装器的形式实现。 Firewalld 作为后台进程运行,允许您通过 D-Bus 动态更改数据包过滤规则,而无需重新加载数据包过滤规则或中断已建立的连接。 该项目已在许多 Linux 发行版中使用,包括 RHEL 7+、Fedora 18+ 和 SUSE/openSUSE 15+。 Firewalld 代码是用 Python 编写的,并根据 GPLv2 许可证获得许可。

要管理防火墙,请使用firewall-cmd实用程序,该实用程序在创建规则时不是基于IP地址、网络接口和端口号,而是基于服务名称(例如,要开放对SSH的访问,您需要运行“firewall-cmd —add —service=ssh”,关闭SSH –“firewall-cmd –remove –service=ssh”)。 要更改防火墙配置,还可以使用firewall-config (GTK) 图形界面和firewall-applet (Qt) applet。 NetworkManager、libvirt、podman、docker 和fail2ban 等项目支持通过 D-BUS APIfirewalld 进行防火墙管理。

版本号的重大更改与破坏向后兼容性并更改区域使用行为的更改相关。 区域中定义的所有过滤参数现在仅应用于发往运行firewalld 的主机的流量,并且过滤中转流量需要设置策略。 最明显的变化:

  • 允许它在 iptables 之上工作的后端已被宣布过时。 在可预见的将来,将维持对 iptables 的支持,但不会开发此后端。
  • 默认情况下,所有新区域都会启用并激活区域内转发模式,允许数据包在一个区域内的网络接口或流量源(公共、阻止、受信任、内部等)之间自由移动。 要返回旧行为并阻止数据包在一个区域内转发,您可以使用命令“firewall-cmd –permanent –zone public –remove-forward”。
  • 与地址转换 (NAT) 相关的规则已移至“inet”协议族(之前已添加至“ip”和“ip6”族,这导致需要重复 IPv4 和 IPv6 的规则)。 这一更改使我们能够在使用 ipset 时消除重复项 - 现在使用一个 ipset 条目,而不是三份 ipset 条目。
  • “--set-target”参数中指定的“默认”操作现在相当于“拒绝”,即默认情况下,所有不属于区域中定义的规则的数据包都将被阻止。 仅 ICMP 数据包例外,仍然允许通过。 要返回可公开访问的“受信任”区域的旧行为,您可以使用以下规则:firewall-cmd —permanent —new-policyallowForwardfirewall-cmd —permanent —policyallowForward —set-target ACCEPTfirewall-cmd —permanent —策略allowForward —add-ingress-zone 公共防火墙-cmd —permanent —策略allowForward —add-egress-zone 受信任的防火墙-cmd —reload
  • 现在,在执行“--set-target catch-all”规则之前立即执行正优先级策略,即在添加最终丢弃、拒绝或接受规则之前的那一刻,包括使用“--set-target drop|reject|accept”的区域。
  • ICMP 阻止现在仅适用于寻址到当前主机(输入)的传入数据包,并且不会影响在区域之间重定向的数据包(转发)。
  • tftp-client 服务旨在跟踪 TFTP 协议的连接,但处于不可用的形式,已被删除。
  • “直接”接口已被弃用,允许直接插入现成的数据包过滤规则。 添加过滤重定向和传出数据包的功能后,对该接口的需求就消失了。
  • 添加 CleanupModulesOnExit 参数,默认更改为“no”。 使用此参数,您可以控制firewalld关闭后内核模块的卸载。
  • 确定目标系统(destination)时允许使用ipset。
  • 添加了 WireGuard、Kubernetes 和 netbios-ns 服务的定义。
  • 为 zsh 实现了自动完成规则。
  • Python 2 支持已停止。
  • 依赖项列表已被缩短。 要使firewalld正常工作,除了Linux内核之外,现在只需要python库dbus、gobject和nftables,并且ebtables、ipset和iptables包被归类为可选包。 python 库装饰器和 slip 已从依赖项中删除。

来源: opennet.ru

添加评论