问题标签 [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.
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 文件都没有提供该名称......除非它由于某种原因没有使用这个文件?
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?
iptables - IPtables 如何通过 MASQUERADE 更改为 firewalld?
如何使用 firewalld-cmd 使用 iptables 规则?
iptables:
xml - 使用 augeas 修改 centos firewalld 区域文件丢失缩进
我正在尝试使用 augeas 和 xml 镜头修改 centos firewalld 区域文件。
默认公共区域文件如下所示:
如果我将其加载到 augtool 中,我会得到以下信息:
然后我尝试
如果我现在查看 public.xml 文件,它看起来像:
谁能建议我如何在<service name="http">
我添加的条目之前保留缩进?
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
那么,可以做些什么呢?如何通过状态文件指示服务重新加载?
networking - 将来自 docker 容器的流量重定向到 localhost
我有一个带有隧道监听的 Docker 主机127.0.0.1
。有一个发送流量的容器。我需要让这些流量进入隧道。
Docker 主机运行的是 CentOS 7.2,我已经让 Docker 容器内的服务将所有内容发送到172.17.42.1
,这是docker0
接口的 IP。
在 firewalld 中,我创建了一个docker
如下所示的区域:
使用 tcpdump 检查,端口上有流量,docker0
但端口上514
没有流量。lo
514
我究竟做错了什么?
linux - linux fail2ban如何删除所有被禁止的ip
我正在使用 fail2ban v0.9.3 运行 CentOS 7(防火墙而不是 iptables)。
我如何清除所有禁令而不一一进行?
mongodb - Centos 7.2 上的防火墙配置
我已经在我的CentOS 7.2 VPS 上安装了MongoDB ,并尝试从我的客户端通过 Robomongo 访问数据库。但是,当我尝试从27017端口连接服务器时,出现“网络无法访问”错误。
我已经在服务器上启用了firewalld并为27017端口添加了一个例外。
结果:
在我永久添加异常并通过 --reload 重新加载防火墙后,我得到了这个结果。
当我使用以下方式查询端口时:
我从系统中得到“是”。但是,当我尝试通过 Robomongo 连接或通过端口检查器服务(如http://ping.eu/port-chk/ )查询端口时,我得到了否定的结果。
你对我的案子有什么建议吗?
谢谢你。
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
我的任务
我得到的错误
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),但不会像防火墙关闭时那样将流量路由到其他子网上的目的地。