UFW:到底是什么?


13

什么是UFW?您可能会认为这是一个简单的问题,但是我阅读的资料越多,它所获得的清晰度就越低。

该首字母缩写词拼写为“ Uncomplicated FireWall”,就像ufw实际上是在实现防火墙本身一样。实际上,在很多地方,如本文中所述,它本身也被称为防火墙。

UFW上的Ubuntu帮助Wiki页面说UFW是iptables的配置工具。(反过来,有关防火墙的帮助Wiki页面说iptables是防火墙规则的数据库,并且它也是实际的防火墙,就好像数据库是防火墙一样,这显然是错误的。当然,“ iptables”也是程序的名称。)

如果ufw是配置工具,则我们可能希望它是一个运行该程序以配置某些内容的程序,完成后,您将在已建立的配置下退出。这就是该问题的可接受答案的位置:简单的FireWall(ufw)是否是一项服务?

但是关于该问题的其他答案不同意-不,这是一项服务。确实在我的18.04机器上,我看到ufw正在作为服务运行!为什么配置工具可以作为服务运行?!

此外,systemctl list-units --all --type=service节目ufw.serviceloaded and active(以及exited?!)ufw status节目inactive

那么ufw status = inactive是什么意思?

  1. 那“防火墙”(无论是什么)是不活动的?这就是ufw手册 “状态”文档的建议。

  2. 还是这意味着ufw中配置的规则是无效的(而iptables中配置的其他规则却是活动的)?

  3. 还是这意味着ufw在启动时启动,将其规则恢复为ipconfig(或它们在何处),以便它们现在生效,而ufw却无所事事,因此它处于非活动状态?

特别感兴趣:我想遵循一些要求发出一些iptables命令的指令,但是担心它们会与ufw设备冲突或被ufw设备覆盖。


2
iptables是防火墙。它也保留规则,因为它显然需要这样做,但是将其称为“数据库”会使它有所扩展,因为内核无法提供持久性。在启动时加载它们必须由ufw之类的工具来处理。
Jan Hudec

@JanHudec我看到有人谈论iptables就像是防火墙一样,但是据我所知,netfilter提供了防火墙功能,而iptables提供了netfilter的日期。我喜欢您的观点,即iptables仅将数据保存在内存中,因此“数据库”也具有误导性。
gwideman

我个人认为netfilter是iptables的一部分,但在这个方面我可能是错的。
Jan Hudec

Zanna编辑了我的问题,以整理URL之类的东西(谢谢!),但已将“ UFW”替换为“ ufw”的所有实例。我现在认为小写是正确的情况(如manpages.ubuntu.com/manpages/xenial/en/man8/ufw.8.htmlwiki.ubuntu.com/UncomplicatedFirewall中所示,但我对编辑不感兴趣。在此赞纳大战,请回复到小写如果你买我的证据。
gwideman

Answers:


21

ufw是netfilter / iptables的前端,netfilter / iptables是用于路由和过滤Internet流量的Linux机制。

ufw是完全可选的,并且可以使用iptables命令直接创建防火墙和路由表。有些人喜欢ufw的语法,这应该会使它更容易一些。

ufw本身不是防火墙,它是用于设置netfilter / iptables配置的工具。它已注册为服务,因为每次计算机启动时都需要运行该服务。完成配置后,我不认为它会驻留在内存中。“重新启动”服务只是重新运行其脚本。将Linux发行版中的内容注册为服务并不罕见,即使它们只是在启动或关闭时运行而不会驻留在它们之间的脚本。

如果使用ufw,则无法使用自己的脚本来设置自己的iptables规则,因为当ufw设置自己的iptables规则时,它们会被覆盖。这也意味着ufw可能与其他设置防火墙规则的工具发生冲突。

如果sudo ufw status返回“ inactive”,则表示ufw已被禁用(例如,不会在启动时重新应用任何规则)。您需要确保已启用ufw sudo ufw enable,尽管您还需要配置规则以使其具有意义。如果确定已启用ufw,但它返回“ inactive”,则可能存在其他问题。

请注意,“启动”服务不会启用ufw,它只会激活启动脚本。如果在启动脚本运行时禁用了ufw,它将不会执行任何操作。

您可以直接使用iptables判断是否在任何给定时间应用了防火墙规则:

sudo iptables -L
sudo ip6tables -L

1
注意:我个人不使用ufw,而是使用一个名为netfilter-persistent的程序包,该程序包允许您将本机iptables规则写入文件中,并在启动时重新应用它们。在启动时,它实际上执行ufw的操作:运行一个应用配置的启动脚本。区别在于它不是从其自己的简化语法进行翻译,而只是将iptables命令直接发送到iptables。
thomasrutter

那里有很多好东西。谢谢。关于此内容:“如果使用ufw,则无法使用自己的脚本来设置自己的iptables规则,因为当ufw设置自己的iptables规则时,它们会被覆盖。” ufw是否会主动删除所有现有的iptables规则?还是只是在图中用ufw表示,您不能依靠iptables命令/规则生效,因为它们可能会被ufw覆盖吗?
gwideman

另外对于托马斯:“ netfilter-persistent”>是否与iptables-persistent有关?
gwideman

是的,它曾经被称为。如果您的Ubuntu版本同时具有这两个版本,则iptables-persistent软件包可能只是一个过渡软件包,可为旧版本的人们提供升级途径。
thomasrutter

1
抱歉,如果我混淆了您提到resolv.conf,我只是作为Ubuntu中另一个配置的示例,该配置可能由其他服务控制,而这些服务将覆盖您直接进行的任何更改。未连接。
thomasrutter
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.