问题标签 [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 回答
1183 浏览

python - 通过 Python 的 dbus 模块控制 CentOS 中的 firewalld?

我的目标是使用 Python 在 CentOS 7 机器上自动配置防火墙。

该操作系统带有firewalld,所以这就是我正在使用的。我调查了一下,发现它使用了 dbus(我从来没有听说过或处理过这些 - 如果我说的任何内容不正确,请纠正我。)

我找到了有关如何使用 Python 控制 dbus 进程的文档:http: //dbus.freedesktop.org/doc/dbus-python/doc/tutorial.txt

我查了一下,操作系统附带的 Python 版本包括该dbus模块,所以这似乎是一个有希望的开始。

该文档表明我需要了解更多关于 firewalld 通过 dbus 接口公开的内容。所以我做了更多的研究,发现了这个: https ://www.mankier.com/5/firewalld.dbus

第一份文件说我需要从一个“众所周知的名字”开始。他们的例子是org.freedesktop.NetworkManager。第二个文档的标题是firewalld.dbus,所以我认为这是一个可以尝试的名称,因为该文档没有在其他任何地方明确给出名称。

第一个文档还说我需要一个对象路径的名称。他们的例子是/org/freedesktop/NetworkManager。第二个文档的对象路径为/org/fedoraproject/FirewallD1

我将它们放在一起并尝试使用第一个文件建议的第一种SystemBus方法get_object()

我也org.fedoraproject.FirewallD1尝试了第一个参数,但最终得到了类似的错误消息。

为什么这些不起作用?有什么方法可以让我发现正确的名称是什么?它在错误消息的末尾提到了“.service files”......这样的文件应该放在哪里?


编辑:通过使用找到几个“.service 文件” find / -name *.service。其中一个是/usr/lib/systemd/system/firewalld.service... 看起来很有希望,所以我会检查一下。

编辑 2:这是一个相当短的文件......只有大约 10 行。其中一个说BusName=org.fedoraproject.FirewallD1。所以我不确定为什么它说任何 .service 文件都没有提供该名称......除非它由于某种原因没有使用这个文件?

0 投票
1 回答
1246 浏览

python - dbus_to_python() takes exactly 1 argument?

I'm attempting to control firewalld via the Python dbus module.

I'd like to add an ip address to the trusted zone for both my current runtime as well as my permanent configuration.

Here's the documentation for firewalld's dbus interface: http://manpages.ubuntu.com/manpages/wily/man5/firewalld.dbus.5.html

What works: The runtime configuration

I'm able to add it to the runtime configuration just fine with this:

Pretty simple.

What doesn't work: The permanent configuration

Adding it to the permanent configuration has proved to be more difficult. Here's what I've tried so far interactively:

I also tried checking permanentProxy.getDescription(), which returned the description as it should have, and I tried permanentProxy.setDescription('test') which failed with the exact same stack trace as permanentProxy.addSource('aaa.xxx.yyy.zzz').

I would jump to the conclusion that the bug lies in the python dbus module and assume it somehow doesn't handle arguments properly, except for the fact that runtimeProxy.addSource('trusted', ip) involved two arguments and works perfectly. config.getZoneByName('trusted') even has the same signature as permanentProxy.addSource('aaa.xxx.yyy.zzz')`, exactly one string, and works perfectly.

So maybe there's something weird I'm missing? But I don't know what that would be...

More stuff I tried without success

I considered the possibility that maybe addSource is supposed to be called without the string argument at all and maybe curries somehow or something, so I tried this:

This is just even weirder now... I have one Traceback within another traceback insisting that I need to pass in at least 2 arguments, but also saying I gave it two arguments (and I actually only gave it one, so how'd it come up with two anyways?)

A few more things I tried without success:

Gah!

This really seems like a bug in dbus... somehow it's initially resolving addSource incorrectly and thinking that it needs fewer arguments, but if you give it fewer arguments like it wants, it'll pass that erroneous check, and then it'll properly resolve and fail because your arguments don't match it.

That's my theory anyways. Is someone seeing something I'm not? Is there some way I can work around this bug, if there really is one? IE... is there some kind of internal method I can use on dbus that will force it to call the proper method?

0 投票
2 回答
909 浏览

iptables - IPtables 如何通过 MASQUERADE 更改为 firewalld?

如何使用 firewalld-cmd 使用 iptables 规则?

iptables:

0 投票
1 回答
305 浏览

xml - 使用 augeas 修改 centos firewalld 区域文件丢失缩进

我正在尝试使用 augeas 和 xml 镜头修改 centos firewalld 区域文件。

默认公共区域文件如下所示:

如果我将其加载到 augtool 中,我会得到以下信息:

然后我尝试

如果我现在查看 public.xml 文件,它看起来像:

谁能建议我如何在<service name="http">我添加的条目之前保留缩进?

0 投票
1 回答
1961 浏览

salt-stack - 如何指示 saltstack 重新加载 firewalld?

我正在尝试通过 saltstack 状态文件(在 Centos7 上)配置 firewalld。我可以将服务添加到永久配置中,但这确实会进入“永久”配置,而不是运行中的配置。因此,要么需要重新加载,要么(较少可选)将相同的服务添加到运行配置中。

我用来添加服务的内容:

public: firewalld.present: - name: public - services: - http 这有效,但只是永久性的。

我试图添加一个“手表”,但这根本不起作用:

firewalld: service.running: - watch: - file: /etc/firewalld/zones/public.xml 错误是:

Comment: The following requisites were not found: watch: file: /etc/firewalld/zones/public.xml

那么,可以做些什么呢?如何通过状态文件指示服务重新加载?

0 投票
1 回答
1135 浏览

networking - 将来自 docker 容器的流量重定向到 localhost

我有一个带有隧道监听的 Docker 主机127.0.0.1。有一个发送流量的容器。我需要让这些流量进入​​隧道。

Docker 主机运行的是 CentOS 7.2,我已经让 Docker 容器内的服务将所有内容发送到172.17.42.1,这是docker0接口的 IP。

在 firewalld 中,我创建了一个docker如下所示的区域:

使用 tcpdump 检查,端口上有流量,docker0但端口上514没有流量。lo514

我究竟做错了什么?

0 投票
1 回答
2247 浏览

linux - linux fail2ban如何删除所有被禁止的ip

我正在使用 fail2ban v0.9.3 运行 CentOS 7(防火墙而不是 iptables)。

我如何清除所有禁令而不一一进行?

0 投票
2 回答
9161 浏览

mongodb - Centos 7.2 上的防火墙配置

我已经在我的CentOS 7.2 VPS 上安装了MongoDB ,并尝试从我的客户端通过 Robomongo 访问数据库。但是,当我尝试从27017端口连接服务器时,出现“网络无法访问”错误。

我已经在服务器上启用了firewalld并为27017端口添加了一个例外。

结果:

结果:

在我永久添加异常并通过 --reload 重新加载防火墙后,我得到了这个结果。

当我使用以下方式查询端口时:

我从系统中得到“”。但是,当我尝试通过 Robomongo 连接或通过端口检查器服务(如http://ping.eu/port-chk/ )查询端口时,我得到了否定的结果。

你对我的案子有什么建议吗?

谢谢你。

0 投票
2 回答
14700 浏览

centos - 如何在 Centos 7 上使用 ansible firewalld 任务打开防火墙端口

我的 ansible-playbook 脚本中有一个任务是在远程机器上打开 TCP 端口。但是当我运行我的 ansible playbook 时,它会引发错误。但是当我运行时"firewall-cmd --permanent --zone=public --add-port=1234/tcp""firewalld-cmd --reload"我可以看到公共区域中添加了端口。

环境 Ansible 本地:OS x El Capitan Ansible 远程:AWS Centos 7 最低版本 Ansible 版本:2.1.1.0 远程 python 版本:2.7.5

我的任务

我得到的错误

0 投票
1 回答
1405 浏览

routing - 防火墙配置

我有一台 CentOS 7 机器,我正在尝试启用 FirewallD 以使其比现在更安全。它目前用作配置在单个接口上的 11 个不同子网之间的路由器,以及允许外部流量进入 VPN 的第二个接口。我遵循了几个指南在 Internet 上设置 FirewallD,除了坪。以下是我当前的配置。

防火墙-cmd --zone=internal --list-all

防火墙-cmd --zone=public --list-all

防火墙-cmd --direct --get-all-rules

ip地址显示

VPN 规则工作正常,我可以在 172.16.0.10:81 上访问管理页面,但 eth0 上的所有内容都不会通过 icmp 获得任何数据包。如果您想了解更多详情,请告诉我。

编辑:我也尝试将 eth0 移动到受信任区域,然后允许流量,所以我知道这不是接口配置错误。

编辑 2:通过进一步的测试,我发现 CentOS 机器接受允许服务的直接连接(例如 ssh、dns),但不会像防火墙关闭时那样将流量路由到其他子网上的目的地。