firewalld 提供动态管理的防火墙,支持网络或防火墙区域来定义网络连接或接口的信任级别。它支持 IPv4、IPv6 防火墙设置和以太网桥,以及运行时和永久配置选项的分离。它还为服务或应用程序提供直接添加 ip*tables 和 ebtables 规则的接口。
要查看源存储库,您可以使用:
git 克隆 https://github.com/firewalld/firewalld.git
这将创建存储库的本地副本。
贡献者行为准则可以在 CODE_OF_CONDUCT.md 中找到
Firewalld 使用 GNU gettext 来提供本地化支持。可以使用 Fedora 的 Weblate 实例来完成翻译。翻译会定期合并到主firewalld存储库中。
这些是运行时依赖项:
linux >= 5.3 python >= 3.8 python3-dbus python3-gobject python3-nftables >= 0.9.4
注意:不支持 python2。
这些依赖项可能会增强firewalld 的功能,但它们不是必需的。
ebtables ipset iptables polkit python3-capng (libcap-ng-python3)
除了运行时依赖项之外,还需要从源代码构建其他一些依赖项:
desktop-file-utils: /usr/bin/desktop-file-install gettext intltool glib2: /usr/bin/glib-compile-schemas glib2-devel: /usr/share/aclocal/gsettings.m4 systemd-units pytest
为了能够从 docbook 文件创建手册页和文档:
docbook-style-xsl libxslt
使用通常的 autoconf/automake 咒语来生成 makefile
./autogen.sh ./配置
您可以通过传递 PYTHON 变量来使用特定的 python 解释器。测试套件也使用它。
./configure PYTHON=/path/to/python3
使用
制作
创建文档并更新 po 文件。
使用
进行检查
运行测试套件。测试在网络命名空间内运行,不会干扰主机运行的firewalld。它们还可以通过将标志传递给自动测试来并行运行。
检查 TESTSUITEFLAGS="-j4"
测试套件还使用关键字来允许运行测试特定区域的子集。例如:
进行检查 TESTSUITEFLAGS="-k rich -j4"
输出:
24:丰富的规则审核ok 25:丰富的规则优先确定 26:富有的规则不好也没关系 53:丰富的规则审核ok 23:丰富的规则 好的 好的 55:富有的规则不好也没关系 74:重新加载后删除转发端口即可
您可以获得测试和关键字列表
make -C src/tests 检查 TESTSUITEFLAGS="-l"
或者只是关键词
make -C src/tests 检查 TESTSUITEFLAGS="-l" |awk '/^[[:space:]]*[[:digit:]]+/{getline; print $0}' |tr ' ' 'n' |sort |uniq
有集成测试。目前这包括 NetworkManager。这些可能对宿主具有破坏性。在一次性虚拟机或容器中运行它们。
进行检查集成
还有一个检查容器目标,它将在各种 podman/docker 容器内运行测试套件。这对于覆盖多个发行版非常有用。它还运行可能对主机造成破坏的测试,例如集成测试。
使检查容器TESTSUITEFLAGS =“-j4”
作为dist
构建目标的一部分,生成 OCI 容器映像。它与正常版本 tarball 一起分发。它可用于从容器运行firewalld。容器化的firewalld不会与主机集成(例如podman、libvirt、NetworkManager)。
手动将容器映像加载到您的环境中:
podman load -i .../path/to/firewalld-oci-<ver>.tar
从 quay.io 获取图像:
podman pull quay.io/firewalld/firewalld:<ver>
其中<ver>
是可选的,如果省略,将使用最新版本。
启动守护进程/容器:
podman run -d --网络主机 --privileged --name my-firewalld 防火墙
Firewalld 的配置将驻留在容器内。因此,用户可能偶尔希望podman commit
映像。
使用firewalld的CLI应该在守护进程/容器启动后通过podman exec来完成:
podman 执行 my-firewalld 防火墙-cmd ...
相同的容器镜像可用于与主机运行的NetworkManager、podman、libvirt等集成。这需要主机具有firewalld的dbus策略。
dbus 策略可以从位于config/FirewallD.conf
firewalld 源代码树中获取。
cp config/FirewallD.conf /usr/share/dbus-1/system.d/FirewallD.conf
一旦 dbus 策略就位,容器就可以这样启动:
podman运行-d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket --网络主机--特权 --name my-firewalld 防火墙 防火墙--nofork--nopid
唯一的补充是:卷安装、显式 CMD。
可以使用某些方法将firewalld的配置文件存储在主机上。
podman运行-d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket -v /etc/firewalld:/etc/firewalld --网络主机--特权 --name my-firewalld 防火墙 防火墙--nofork--nopid
对于基于 Fedora 和 RHEL 的发行版,源存储库中有一个名为firewalld.spec 的规范文件。这应该适用于 Fedora 版本 >= 16 和 RHEL >= 7。
主页:http://firewalld.org
报告错误:https://github.com/firewalld/firewalld/issues
Git 存储库浏览器:https://github.com/firewalld/firewalld
Git 仓库:https://github.com/firewalld/firewalld.git
文档:http://firewalld.org/documentation/
使用方法:https://lists.fedorahosted.org/archives/list/[email protected]/
用于开发:https://lists.fedorahosted.org/archives/list/[email protected]/
目录 | 内容 |
---|---|
配置/ | 配置文件 |
配置/icmp类型/ | 预定义的 ICMP 类型 |
配置/服务/ | 预定义服务 |
配置/xmlschema/ | XML 模式检查配置文件 |
配置/区域/ | 预定义区域 |
配置/ipsets/ | 预定义的 IP 集 |
文档/ | 文档 |
文档/人/ | 手册页的基目录 |
文档/人/人1/ | 手册(1) 页 |
文档/人/man5/ | 手册(5) 页 |
宝/ | 翻译 |
shell 完成/ | 自动完成脚本的基目录 |
源代码/ | 源码树 |
src/防火墙/ | 服务和所有应用程序的导入树 |
src/图标/ | 图标尺寸:16、22、24、32、48 和可缩放 |
src/测试/ | 测试套件 |