Depois de pesquisar vários sites no Google e navegar pela [página de manual] [1], ainda não consegui uma definição exata da sintaxe dos perfis de aplicativo para as regras do ufw.
Todos os exemplos que você encontra na web são realmente simples e não refletem um pouco mais de complexidade do que simplesmente abrir uma porta.
Especificamente, preciso permitir que meu ufw aceite conexões de entrada e saída em várias portas, tcp e udp mistas, em interfaces específicas de e para endereços IP especificados.
Suponha o seguinte exemplo:
Permitir conexões de entrada em eth0 de 1.1.1.1:12345 tcp e 2.2.2.2:54321 udp permitir conexões de saída via eth1 para 3.3.3.3:11111 tcp e udp
Embora a sintaxe para definir essas regras no console seja realmente simples, não encontrei nenhum exemplo ou especificação de como definir essas regras em um perfil de aplicativo.
Aparentemente, não há como especificar endereços IP e interfaces em perfis de aplicativos.
A função de análise de campo e o conjunto de testes para perfis de aplicativos não incluem nenhum outro campo além de:
title
description
ports
Um motivo muito provável é que os perfis de aplicativo devem especificar — da perspectiva de um fornecedor de aplicativo — o que o aplicativo requer para funcionar. Isso pode ser expresso em portas e protocolos. Os endereços IP e as interfaces, no entanto, dependem do cliente e variam em cada sistema no qual o respectivo aplicativo está instalado. Portanto, não faz sentido colocar isso em perfis.
Como complemento à grande resposta aceita: embora os perfis de aplicativo sejam limitados a portas (e seus protocolos), você pode adicionar mais filtros ao aplicar um perfil de aplicativo ao ufw.
No seu exemplo, digamos que você criou 2 perfis de aplicativo em
/etc/ufw/applications.d
:Agora, em vez de aplicar esses "aplicativos" com apenas:
Você os aplica como: