我在虚拟机中安装了 Fedora Server 25,并且使用 SaltStack 通过此指南安装 NextCloud。我遇到的问题是防火墙限制太严格,阻止了端口 22、80 和 443。根据演练创建者的建议,我编辑了 SaltStack“nextcloud.sls”文件,如下所示,但这没有帮助:
#line108 FedoraServer: firewalld.present: - name: FedoraServer - block_icmp: - echo-reply - echo-request - default: False - masquerade: True - ports: - 22/tcp - 80/tcp - 443/tcp - 9090/tcp
我该怎么做才能打开这些端口,这样我就不必在每次启动时都停止防火墙服务了?谢谢。
编辑:所以,即使- firewalld
从 nextcloud.sls 脚本中删除(install_network_packages: pk.installed:
防火墙下仍然启动并阻止我需要的所有端口。Fedora Server 中一定有其他东西覆盖了 SaltStack 脚本并启用了防火墙……??
答案1
我不知道 SaltStack,但你应该能够通过 永久打开所需的端口firewall-cmd
。例如,要永久打开ssh
,请尝试以下操作:
firewall-cmd --add-service=ssh; firewall-cmd --add-service=ssh --permanent
要启用 ICMP 和其他服务:
防火墙命令——remove-icmp-block=echo-request 防火墙cmd --remove-icmp-block=echo-request --permanent 防火墙命令——remove-icmp-block=echo-reply 防火墙cmd --remove-icmp-block=echo-reply --permanent 防火墙-cmd --add-service=http 防火墙cmd --add-service=http --permanent 防火墙-cmd --add-service=https 防火墙cmd --add-service=https --permanent 防火墙cmd --add-port=9090/tcp 防火墙cmd --add-port=9090/tcp --permanent
我建议你先尝试一下没有永久规则。如果一切正常,您可以发布永久规则并重新启动机器。
答案2
为什么要将防火墙与 NextCloud 实例放在同一台服务器上?为什么不直接通过网络防火墙控制端口流量?您可以为该服务器创建一个区域,并从网络级别控制进出该服务器的内容。