如何为ufw创建应用配置文件?


31

Ufw有一个列出配置文件的命令,您可以进一步浏览它们的配置文件定义

$ ufw app list

$ ufw app PROFILE {app profile title}

我想知道如何为未定义的程序(例如virtual box)创建配置文件,并使该配置文件运行与我为Ubuntu发行版提供的iptables相同的定义。


我不仅在尝试使用Ubuntus防火墙为我的虚拟机提供服务。我也非常好奇如何为不附带的应用程序创建配置文件。

Answers:


36

要回答有关如何创建自己的应用程序文件的真实问题,您只需要知道它使用的是Windows INI文件格式(yuck)。

[appname]
title=1-liner here
description=a longer line here
ports=1,2,3,4,5,6,7,8,9,10,30/tcp|50/udp|53

ports行可以使用/ udp或/ tcp指定多个端口以限制协议,否则默认为两个。您必须使用|拆分协议部分。

因此,对于现实生活中的一些示例,我做了以下工作:

[puppet]
title=puppet configuration manager
description=Puppet Open Source from http://www.puppetlabs.com/
ports=80,443,8140/tcp

[AMANDA]
title=AMANDA Backup
description=AMANDA the Advanced Maryland Automatic Network Disk Archiver
ports=10080

您可以在一个文件中列出该应用的多个版本,例如apache中的一个:

===start of apache2.2-common file===
[Apache]
title=Web Server
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=80/tcp

[Apache Secure]
title=Web Server (HTTPS)
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=443/tcp

[Apache Full]
title=Web Server (HTTP,HTTPS)
description=Apache v2 is the next generation of the omnipresent Apache web server.
ports=80,443/tcp

===end of file===

定义应用程序文件后,将其放入中/etc/ufw/applications.d,然后告诉ufw使用以下命令重新加载应用程序定义:

ufw app update appname
ufw app info appname

将其与以下内容一起使用:

ufw allow from 192.168.1.10 to any app amanda
ufw allow amanda

假设192.168.1.10是您的amanda服务器的IP。


您将udp和tcp结合使用的语法是错误的。应该是xx/tcp|yy/udp。换句话说,协议之间的分隔应该是管道,而不是像您的示例中那样的逗号
Hilikus

我的示例并未尝试将它们组合在一起,它只是此UDP端口,其他TCP端口的简单列表。
user207998 2015年

我只是尝试使用netstat查找应用程序名称...对吗?至少对我有用。是否区分大小写?我真的不知道的关系是什么“APPNAME”之间的应用程序文件与标题与进程名,等等
intcreator

Netstat仅列出连接到特定端口的进程名称。这不一定与应用程序的名称匹配。例如,后缀应用程序启动各种进程,包括打开端口25的“主”进程。我根据软件包名称(即“后缀”或“ AMANDA”)命名ufw应用程序配置文件。在配置文件中,有一个或多个应用程序定义,它们表示该程序包打开的端口。可以有多个,请参阅“ postfix”包作为示例。那里的应用程序名称因后缀的配置方式而异。
user207998 '18

对于多个tcp端口,是前者还是后者?xx/tcp,xy/tcp,xz/tcpxx/tcp|xy/tcp|xz/tcp
errolflynn

10

实际上,手册页中的“应用程序集成”部分中都包含了所有内容。

基本语法为:

ufw allow <app_name>

或者,您可以使用扩展语法来更具体:

ufw allow from <some_address> to any app <app_name>

联机帮助页特别指出指定端口号:

您不应该使用这两种语法来指定协议,而应该使用扩展语法来使用协议代替port子句。

这可能意味着它将允许<app_name>使用其想要的任何端口。

其他有用的命令:

ufw app info <app_name>

其中列出了有关<app_name>的个人资料的信息。

ufw app update <app_name>  

哪个更新<app_name>的个人资料。您可以all用来更新所有应用程序配置文件。

您可以使用:

ufw app update --add-new <app_name>  

命令<app_name>,按照您为设置的规则添加新的配置文件并对其进行更新ufw app default <policy>

应用程序配置文件存储在中/etc/ufw/applications.d,有时存储在中/etc/services

有关更多信息,请参见man ufw


是的,您无需使用“ ufw allow”语法指定端口,因为如果需要,可以在应用程序定义文件本身中指定协议。
user207998
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.