我知道启动ufw的两种方法:通过系统two和通过ufw本身。例如,当我使用systemctl enable ufw时,我得到了以下状态:
systemctl status ufw
● ufw.service - CLI Netfilter Manager
Loaded: loaded (/usr/lib/systemd/system/ufw.service; enabled; vendor preset:>
Active: active (exited) since Sun 2019-12-01 12:34:29 +05; 6min ago但ufw本身说:
ufw status verbose
Status: inactive我看不出它的规则和GUFW实用程序说UFW不活跃。但如果我这么做了
systemctl disable ufw
systemctl stop ufw
ufw enable
ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip然后我可以使用GUFW,查看UFW实用程序中的详细状态和规则。
那么,从systemctl和ufw本身开始有什么区别,正确的方法是什么呢?
发布于 2019-12-01 09:39:06
如果您执行ufw enable,systemctl disable ufw,然后重新启动系统,那么重启后的ufw status verbose输出是什么?
我猜那将是inactive。
如果这是真的,那么解释如下:
ufw enable =立即启用防火墙规则,并记录希望的状态从现在起启用防火墙。(如果需要防火墙管理守护进程,这也会自动启动它。)ufw disable =立即禁用防火墙规则,并记录所需的状态是禁用防火墙,直到另有命令为止。systemctl start ufw =恢复以前记录的防火墙的所需状态(如果所需的状态要禁用防火墙,就没有什么可做的了)。此外,如果需要的话,启动任何防火墙管理守护进程,这样管理过程将被systemd识别为不属于任何用户会话的后台进程。如果希望永久启用防火墙,则希望在启动时自动启用防火墙,并设置ufw enable。systemctl stop ufw =停止防火墙管理守护进程;可能也可能不会禁用任何现有的防火墙规则(使用iptables -vnL或nft list tables检查内核内的实际规则,独立于ufw)。systemctl enable ufw =在以后的任何重新启动时,作为引导过程的一部分自动运行systemctl start ufw。systemctl disable ufw =在以后的任何重新启动时,不要做任何事情来恢复防火墙状态,也不要自动启动防火墙管理守护进程:使用内核默认的任何防火墙规则。例如,如果您需要远程设置新的防火墙规则,并且必须确保不会将自己锁在门外,您可以设置systemctl disable ufw,在大约15分钟内设置一个自动重新启动,然后添加规则并使用ufw enable。如果仍然可以连接到系统,则就远程访问而言,规则是正确的;您可以设置systemctl enable ufw (因此规则在重新启动后也将生效)并删除定时的重新启动作业。
但是,如果您犯了禁用访问的错误,只需等待重新启动作业触发,系统将没有防火墙规则(因为systemctl disable ufw),您将能够重新登录来修复规则配置。
https://unix.stackexchange.com/questions/555020
复制相似问题