为了尝试获得对远程设备的 VNC 访问权限,我通过 ssh 向其防火墙发出了这个愚蠢的命令,即
$ firewall-cmd --enable 5903:tcp
现在我无法 ssh、ping 或 curl 服务器。哎呀。
有人能解释一下是什么原因导致这种情况发生吗?我的意思是 --enable 本身肯定会启用防火墙及其默认规则(即 ssh 访问是其中之一),对吧?您可能已经看出我没有阅读手册 - 这是根本性的人为错误。另请注意,我以普通用户身份运行该命令,而不是以 root 身份或通过 sudo 运行。谢谢大家 :(
答案1
FirewallD 非常新,因此需要一些时间来适应。
你可以先阅读Fedora wiki 上有关 FirewallD 的页面,其中有其命令行选项/用法的完整列表。
我对所发生情况的最佳猜测是,您不小心将防火墙置于恐慌模式,它会阻止所有网络连接。这是基于以下事实:以firewall-cmd
开头的唯一选项--enable
是--enable-panic
。您必须转到服务器控制台或远程进入服务器的 OOB 管理界面(iLO、DRAC、IPMI)才能从中恢复。
添加服务的正确方法是使用--add-service
或--add-port
。
@mattdm 在下面的评论中指出已提交针对 FirewallD 的漏洞正是针对这种行为。该错误似乎已得到修复,方法是删除选项--enable-panic
和--disable-panic
并将其替换为--panic-on
和--panic-off
。这已承诺并将出现在未来的版本中。