Firewalld

無法使用 –permanent 保存防火牆規則

  • January 18, 2016

我剛剛安裝了 Fedora 23 伺服器。我預設創建了一個區域:

# 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 模板的全新安裝。

如何解決此錯誤?

正如 Michael Hampton 在評論中所建議的,這似乎特定於 OVH Fedora 23 Server 模板。

cockpit我在 in 中搜尋/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添加了一個預設服務,該服務沒有安裝在他們的模板中。

引用自:https://serverfault.com/questions/750001