以下对我有用:
>>> import dbus>>> bus = dbus.SystemBus()>>> config = bus.get_object('org.fedoraproject.FirewallD1',... '/org/fedoraproject/FirewallD1/config')>>> path = config.getZoneByName('trusted')>>> zone = bus.get_object('org.fedoraproject.FirewallD1', path)>>> zone.addSource('192.168.1.0/24')
此时,如果查看
/etc/firewalld/zones/trusted.xml,可以看到已按预期添加了源地址:
<?xml version="1.0" encoding="utf-8"?><zone target="ACCEPT"> <short>Trusted</short> <description>All network connections are accepted.</description> <interface name="docker0"/> <interface name="virbr0"/> <source address="192.168.1.0/24"/></zone>
…表明我已经成功更改了持久配置。
如果我在第二个
get_object调用中使用文字路径,而不是中的返回值,则以上内容也适用
config.getZoneByName。
为了它的价值,我正在跑步:
- 浅顶软呢帽23
- Firewalld-0.3.14.2-4.fc23.noarch
- dbus-1.10.6-1.fc23.x86_64
- dbus-python-1.2.0-12.fc23.x86_64
更新
您没有看到任何新内容,因为您使用的是CentOS,而不是Fedora。解决此特定任务的最简单方法似乎是使用
firewallFirewallD随附的python模块。以下内容适用于CentOS
7:
>>> from firewall.client import *>>> client = FirewallClient()>>> zone = client.config().getZoneByName('public')>>> settings = zone.getSettings()>>> settings.addSource('192.168.1.0/24')>>> zone.update(settings)
另一个更新
浏览源代码到
firewall.client模块,您可以通过如下所示的直接dbus进行此 *** 作:
>>> zone = bus.get_object('org.fedoraproject.FirewallD1', path)>>> settings = zone.getSettings()>>> settings[11].append('192.168.20.0/24')>>> zone.update(settings)
这 也 能正常工作下的CentOS ......但你的时候使用更好的
firewall模块。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)