在谷歌搜索了几个站点并浏览了 [手册页][1] 之后,我仍然想出了 ufw 规则的应用程序配置文件语法的准确定义。
您在 Web 上找到的所有示例都非常简单,并没有反映出比简单地打开一个端口更复杂。
具体来说,我需要允许我的 ufw 接受各种端口上的传入和传出连接,tcp 和 udp 混合,在特定接口上进出指定的 IP 地址。
假设以下示例:
允许来自 1.1.1.1:12345 tcp 和 2.2.2.2:54321 udp 的 eth0 传入连接 允许通过 eth1 到 3.3.3.3:11111 tcp 和 udp 的出站连接
虽然在控制台上定义此类规则的语法非常简单,但我没有找到有关如何在应用配置文件中定义此类规则的示例或说明。
显然,没有办法在应用程序配置文件中指定 IP 地址和接口。
应用配置文件的字段解析函数和测试套件不包括除以下字段之外的任何其他字段:
title
description
ports
一个很可能的原因是应用程序配置文件应该从应用程序供应商的角度指定应用程序需要什么才能工作。这可以用端口和协议来表示。但是,IP 地址和接口取决于客户端,并且会因安装了相应应用程序的每个系统而异。因此,将其烘焙到配置文件中没有意义。
作为对公认答案的补充:虽然应用程序配置文件仅限于端口(及其协议),但您可以在将应用程序配置文件应用于 ufw 时添加更多过滤器。
在您的示例中,假设您已经在以下位置创建了 2 个应用配置文件
/etc/ufw/applications.d
:现在不只是应用这样的“应用程序”:
您将它们应用为: