问题标签 [firewalld]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
174 浏览

ansible - 字典中的 Ansible 循环列表并保留键

我正在尝试使用从 yaml 文件导入的变量创建一系列防火墙规则。yaml 文件创建一个服务名称字典,并且关联的端口是每个项目中的一个列表。yaml 的一部分如下所示:

到目前为止,我担任的 Ansible 角色是:

创建firewalld服务的第一部分工作正常,但我对第二部分感到困惑,如何在保留字典键的同时遍历端口列表。我已经尝试使用子元素来提取端口列表并且可以工作,但我无法弄清楚如何从密钥中保留服务名称。

0 投票
0 回答
47 浏览

centos8 - 在 CentOS 8 中使用 firewalld 动态自动填充黑名单并阻止它

来自 FreeBSD 和 PF 背景,我知道 PF 中有一个简单的规则,如果 IP 地址超过某个阈值,它将动态地将 IP 地址添加到黑名单中,然后阻止它们。

使用 CentOS 8.2 和 firewalld,我可以找到有关创建“ipset”并阻止它的文档,还可以找到限制连接速率的规则。但我似乎找不到一个文件来讨论动态地把它们放在一起。

我想要实现的是,如果我的机器被 IP 地址击中超过 3 次/分钟,我想将这些 IP 推送到 ipset 并动态阻止整个集合。提供的一些解决方案很长,一些使用 Fail2ban 等,但有没有像 PF 那样更简单、更直接和更有效的方法。

谢谢,

0 投票
0 回答
20 浏览

firewalld - 如何检查哪些设置或规则阻止了防火墙的访问

我正在尝试在 Fedora 32 上安装一个带有桥接网络设置的来宾 vm,但是当主机上的 firewalld 打开时,来宾只能访问主机。

我已经设置LogDenied=all,但没有记录。

如何检查或监控 firewalld 中的哪些设置或规则阻止来宾 vm 访问网络。

0 投票
2 回答
1682 浏览

centos - 在 CentOS7 上启用 Firewalld 后我无法连接

我正在尝试使用指南将 LAMP 设置为 CentOS7 。我尝试运行这些命令以允许 HTTP 和 HTTPS 流量:

但是系统给出了这个错误:

所以我搜索了它然后应用这些命令:

然后它打印“已完成”输出,但我的连接被中止,我无法再使用 IP:Port 和PuTTy连接到服务器。

我应该怎么办?对我来说,唯一可以访问服务器的方式就是这种方式。我没有对服务器的物理访问权限。

0 投票
0 回答
94 浏览

firewalld - 使用防火墙丰富的规则丢弃具有特定源和目标端口的环回数据包

我正在运行多个软件组件,它们通过一台机器上的不同端口相互通信。其中之一是内核模块。我想模拟它们之间的网络断开连接。我可以使用具有丰富规则的防火墙来丢弃来自一个端口并指定到另一个端口的数据包吗?

我努力了

这有效,但阻止了一个组件与所有其他组件,我只想模拟一对一的断开连接。如果我在这一行中添加任何其他端口字段,我会收到错误消息。

我可以使用firewalld做到这一点吗?或者我应该使用 iptables 还是其他?

0 投票
1 回答
115 浏览

centos - oVirt Cockpit 安装 Enforce firewalld status ERROR

我正在尝试按照https://www.ovirt.org/documentation/installing_ovirt_as_a_self-hosted_engine_using_the_cockpit_web_interface/在 Centos Stream 上部署一个自托管的 o​​Virt

但是,我在 VM 部署期间遇到以下错误

Firewalld 在主机 Centos 上启动并运行:

请帮助我找到解决此问题的方向

0 投票
1 回答
127 浏览

docker - 防火墙和容器发布的端口

在我的 RHEL8 主机的 KVM 来宾上,其 KVM 来宾正在运行 CentOS7,我希望 firewalld 默认阻止外部访问由运行 nginx 的 Docker 容器发布的临时端口。令我惊讶的是,访问没有被阻止。

同样,主机 (myhost) 正在运行 RHEL8,并且它有一个运行 CentOS7 的 KVM 来宾 (myguest)。

myguest 上的 firewalld 配置是标准的,没什么花哨的:

以下是防火墙公共区域下的 eth0 和 eth1 接口:

在 myguest 我正在运行 Docker,并且 nginx 容器将其端口 80 发布到临时端口:

请注意,在之前的 firewall-cmd 输出中,我不允许通过此临时 TCP 端口 49154(或任何其他临时端口)进行访问。所以,我期待除非我这样做,否则对 nginx 的外部访问将被阻止。但令我惊讶的是,在家庭网络中运行 Windows 的另一台主机上,我能够访问它:

如果容器将其容器端口发布到主机上的临时端口(在本例中为 myguest),主机防火墙实用程序不应该以与标准端口相同的方式保护对该端口的访问吗?我错过了什么吗?

但我也注意到实际上 nginx 容器正在侦听 TCP6 套接字:

那么,firewalld 似乎没有阻止 tcp6 套接字?我很困惑。

这显然不是生产问题,也不是什么可以失眠的问题。我只是想弄明白它。谢谢。

0 投票
1 回答
556 浏览

http - 服务器总是返回“404 page not found”和“Client sent an HTTP request to an HTTPS server”。错误

我最近使用标准安装选项将我的服务器操作系统从 CentOS 7 迁移到 CentOS 8 流。现在我在访问 HTTP/S 服务器时遇到错误。

假设您在端口 80 或 443 上运行 http 服务器。例如使用 python 模块http.server

这里,xxx.xxx.xxx.xxx 代表公网 IP,http.server可以替换为任何 Web 服务器,如 Apache、Nginx 或 Podman 容器。

为了避免防火墙的影响,我禁用了firewalld.service

此外,在运行 http 服务器之前,我已经通过以下方式确认没有其他进程在侦听端口 80 或 443:

因此,通常当有人访问此服务器时,例如使用:

它应该以来自正在运行的服务器的一些内容来响应,例如当前目录下的文件夹和文件。

但就我而言,此命令在端口 80 上返回“404 页面未找到”和“客户端向 HTTPS 服务器发送了 HTTP 请求”。分别在纯文本的端口 443 上。此错误仅发生在具有公共 IP 访问权限的端口 80 和 443 上,这意味着以下操作有效。

其实,有没有运行的http服务器并不重要。似乎有一个不可见的 HTTP 服务器并以更高的优先级运行。

我尝试了很多来处理这个错误,发现当状态firewalld.service改变时,例如停止/启动/重新启动firewalld.service,改变后会有很短的时间(大约10秒)可以正常访问正在运行的服务器。

所有正在运行的服务都列出如下:

我对此一无所知,希望有人可以帮助我。提前致谢!

0 投票
1 回答
52 浏览

centos - Firewalld - 我做错了什么(允许来自单一来源的端口,阻止其他人使用相同的端口)

我需要为 SCOM 监控打开端口 1270/tcp。所以,我创建了一个新区域 020_scom (因为我知道字母顺序会导致偏好问题......我用数字开头的名字制作我的)

然后将端口 1270/tcp 和我的单源 ip xyza/32(和另一个测试主机)添加到同一个区域(所有内容都带有 --permanent),然后在完成后执行 --reload。

我得到:

然后将相同的端口添加到块区域:

但是,我从我的 SCOM 主机(或那里的第二个 2.3.1.2 - 我的另一个测试主机)收到“FINAL_REJECT:”

我尝试从阻止区域中删除端口,但仍然没有交易......被拒绝。

有什么简单的我做错了吗?

0 投票
1 回答
784 浏览

security - Firewalld:将源添加到多个区域,给出错误:ZONE_CONFLICT .. 还有其他方法吗?

我提出了一种基于角色的设计,用于使用 Saltstack 配置我的防火墙区域。

实际上,我更多地将区域用作逻辑组。例如,某个组中的所有服务器都被允许访问Grafana/Influx服务器(用于将其数据流式传输到该服务器)。

所以我有一个名为 firewalld 的区域influx_group,所有源都会根据它们的角色自动添加到该区域。

其中一个服务器是 openvpn 服务器,它也应该添加到组internal中以进行 SSH 访问。然后是 firewall-cmd 命令给我一个错误。

这可以通过丰富的规则来解决吗?

更新 1

可以通过向默认区域添加丰富的规则来解决最简单形式的问题:

但是,这并不能解决客户端/服务器与服务器/客户端关系和/或组的设计概念。因为没有通用的方法来决定定义组中的某些来源何时会发生冲突。并且简单地基于冲突有条件地在默认区域中删除规则,完全扼杀了基于服务关系的分组的细粒度控制。


TL;博士

我选择这个基于组的设置能够进行完整的动态配置。它基于整个基础架构中的客户端/服务器或服务器/客户端关系。因此,许多其他服务组合也存在冲突。

将源组合/分组到更高级别的区域会破坏我对这种粒度级别的目标。因此将更多端口组合到相同的区域中,冒着访问不应该访问的端口的风险。

有人对此有任何见解吗?

谢谢!