como você cria um perfil de aplicativo para o ufw?

31

O Ufw possui um comando que lista os perfis nos quais você pode explorar melhor suas definições de perfil

$ ufw app list

E

$ ufw app PROFILE {app profile title}

Eu queria saber como você pode criar um perfil para um programa indefinido, como o Virtual Box e fazer com que o perfil execute as mesmas definições que eu dei para o iptables da minha distribuição do Ubuntu.


Não estou apenas tentando usar o firewall da Ubuntus para atender minha máquina virtual. Também estou sinceramente curioso sobre como criar um perfil para um aplicativo que não vem com um.

Miphix
fonte

Respostas:

36

Para responder à pergunta real, sobre como criar seu próprio arquivo de aplicativo, você só precisa saber que ele está usando o formato de arquivo INI do Windows (eca).

[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

A linha de portas pode especificar várias portas, com / udp ou / tcp, para limitar o protocolo, caso contrário, o padrão é ambos. Você precisa dividir as seções do protocolo com |.

Então, para um conjunto de exemplos da vida real que eu fiz:

[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

Você pode listar várias versões do aplicativo em um único arquivo, como este no 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===

Depois de definir o arquivo do aplicativo, insira-o /etc/ufw/applications.de diga ao ufw para recarregar as definições do aplicativo com

ufw app update appname
ufw app info appname

Use-o com algo como:

ufw allow from 192.168.1.10 to any app amanda
ufw allow amanda

assumindo que 192.168.1.10 é o IP do seu servidor amanda.

user207998
fonte
sua sintaxe para combinar udp e tcp está errada. Deveria ser xx/tcp|yy/udp. Em outras palavras, a separação entre os protocolos devem ser um tubo, não uma vírgula como no seu exemplo
hilikus
Meu exemplo não estava tentando combiná-los, é uma lista simples de this-port-on-udp, alguma outra porta-on-tcp.
user207998
Eu apenas tentei usar netstatpara encontrar o nome do aplicativo ... está certo? Funcionou para mim pelo menos. É sensível a maiúsculas? Eu não tenho certeza qual é a relação entre o "appname" no arquivo do aplicativo versus o título contra o nome do processo, etc.
intcreator
O Netstat apenas lista o nome do processo conectado a uma porta específica. Isso não corresponde necessariamente ao nome do aplicativo. Por exemplo, o aplicativo postfix inicia uma variedade de processos, incluindo o processo 'master' que abre a porta 25. Nomeio o arquivo de configuração do aplicativo ufw com base, por exemplo, no nome do pacote, ou seja, 'Postfix' ou 'AMANDA'. Dentro do arquivo de configuração, há uma ou mais definições de aplicativo que representam portas abertas por esse pacote. Pode haver múltiplos, veja o pacote 'postfix' como exemplo. Lá, os nomes dos aplicativos variam de acordo com a configuração do postfix.
user207998
para várias portas TCP, é como o primeiro ou o último? xx/tcp,xy/tcp,xz/tcpouxx/tcp|xy/tcp|xz/tcp
errolflynn
10

Na verdade, está tudo lá na página de manual na seção "Integração de aplicativos".

A sintaxe básica é:

ufw allow <app_name>

Ou você pode usar a sintaxe estendida para ser mais específico:

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

A página de manual diz especificamente para não especificar um número de porta:

Você não deve especificar o protocolo com nenhuma sintaxe e, com a sintaxe estendida, use app no ​​lugar da cláusula port.

Isso provavelmente significa que ele permitirá <app_name>usar qualquer porta que desejar.

Outros comandos úteis:

ufw app info <app_name>

Que lista as informações no <app_name>perfil de.

ufw app update <app_name>  

Quais atualizações <app_name>do perfil. Você pode usar allpara atualizar todos os perfis de aplicativos.

Você pode usar o:

ufw app update --add-new <app_name>  

para adicionar <app_name>e atualizar um novo perfil , seguindo as regras definidas ufw app default <policy>.

Os perfis de aplicativos são armazenados /etc/ufw/applications.de algumas vezes /etc/services.

Para mais informações, consulte man ufw.

Seth
fonte
Sim, você não especifica uma porta na sintaxe 'ufw allow' porque o protocolo é supostamente especificado, se necessário, no próprio arquivo de definição de aplicativo.
User207998 17/07