无法删除先前创建的防火墙服务

无法删除先前创建的防火墙服务

我使用以下命令在 CentOS 服务器中添加了一项新服务:

firewall-cmd --permanent --add-service=wiremock
sudo firewall-cmd --reload

然后我通过删除它

firewall-cmd --permanent --remove-service=wiremock
sudo firewall-cmd --reload

当我这样做时firewall-cmd --get-services,我仍然可以返回列表中枚举的服务。任何想法?

答案1

手册页对这些选项有点模糊,但--add-service--remove-service选项实际上用于启用或禁用特定的firewalld服务。请参阅Fedora 维基页面以获得更清晰的示例。

另一方面,该--get-services选项返回在该特定系统上预定义的防火墙服务列表。启用/禁用服务对此列表没有影响,因为它基于定义这些服务的 XML 文件的发现。

在您的情况下,您应该wiremock.xml/usr/lib/firewalld目录或/etc/firewalld.删除此特定 XML 文件将取消列出该服务。如果您自己没有添加此服务定义,您应该首先检查它来自哪里。如果它作为软件包的一部分提供,则重新安装/更新该软件包将恢复该文件。

答案2

如果您使用 创建了新服务firewall-cmd --permanent --new-service=my-service,则服务定义 xml 文件将位于/etc/firewalld/services/.删除该文件会将其从 等中的列表中删除--get-services。 通常, 中的文件/usr/lib/firewalld/services/应该只是由firewalld 系统软件包安装的文件。

我还没有找到使用firewall-cmd删除此类创建的服务的方法。

相关内容