我刚刚安装了 Fedora 23 Server。我默认创建了一个区域:
# firewall-cmd --get-active-zones
FedoraServer
interfaces: eth0
如果我向该区域添加服务,它可以正常工作:
# firewall-cmd --zone=FedoraServer --add-service=http
success
# firewall-cmd --zone=FedoraServer --list-all
FedoraServer (default, active)
interfaces: eth0
sources:
services: dhcpv6-client http ssh
ports:
masquerade: no
forward-ports:
icmp-blocks:
rich rules:
但跑步的时候就丢了firewall-cmd --reload
。
如果我尝试按照建议将其永久化这个答案,出现以下错误:
# firewall-cmd --zone=FedoraServer --add-service=http --permanent
Error: INVALID_SERVICE: 'cockpit' not among existing services
我很惊讶,因为这是基于 OVH 模板的全新安装。
如何解决此错误?
答案1
正如迈克尔·汉普顿 (Michael Hampton) 在评论中所建议的,这似乎特定于 OVH Fedora 23 服务器模板。
cockpit
我在 中搜索/etc
,并找到以下文件:
/etc/firewalld/zones/FedoraServer.xml
其中包含以下几行:
<?xml version="1.0" encoding="utf-8"?>
<zone>
<short>Public</short>
<description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
<service name="ssh"/>
<service name="dhcpv6-client"/>
<service name="cockpit"/>
</zone>
我删除了此行并保存了文件:
<service name="cockpit"/>
现在它起作用了!
他们基本上似乎已经向firewalld添加了一个默认服务,但该服务并未安装在他们的模板中。