come si crea un profilo app per ufw?


31

Ufw ha un comando che elenca i profili ai quali è possibile esplorare ulteriormente le definizioni dei profili

$ ufw app list

E

$ ufw app PROFILE {app profile title}

Mi chiedevo come puoi creare un profilo per un programma indefinito, come una scatola virtuale e far sì che quel profilo esegua le stesse definizioni che ho dato a iptables per la mia distribuzione Ubuntu.


Non sto solo cercando di utilizzare il firewall Ubuntus per eseguire il servizio sulla mia macchina virtuale. Sono anche sinceramente curioso di sapere come creare un profilo per un'applicazione che non ne viene fornita.

Risposte:


36

Per rispondere alla vera domanda, su come creare il tuo file di applicazione, devi solo sapere che sta usando il formato di file INI di Windows (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

La linea delle porte può specificare più porte, con / udp o / tcp, per limitare il protocollo, altrimenti per impostazione predefinita è entrambe. Devi dividere le sezioni del protocollo con |.

Quindi, per una serie di esempi di vita reale che ho fatto:

[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

Puoi elencare più versioni dell'app in un singolo file, come questa da 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===

Dopo aver definito il file dell'applicazione, inserirlo /etc/ufw/applications.d, quindi dire a ufw di ricaricare le definizioni dell'applicazione

ufw app update appname
ufw app info appname

Usalo con qualcosa del tipo:

ufw allow from 192.168.1.10 to any app amanda
ufw allow amanda

supponendo che 192.168.1.10 sia l'IP del tuo server amanda.


la tua sintassi per combinare udp e tcp è sbagliata. Dovrebbe essere xx/tcp|yy/udp. In altre parole, la separazione tra i protocolli dovrebbe essere una pipe, non una virgola come nel tuo esempio
Hilikus

Il mio esempio non stava cercando di combinarli, è un semplice elenco di this-port-on-udp, some-other-port-on-tcp.
user207998

Ho appena provato a usare netstat per trovare il nome dell'applicazione ... giusto? Almeno ha funzionato per me. Fa distinzione tra maiuscole e minuscole? Non sono davvero sicuro di quale sia la relazione tra il "nome app" nel file dell'applicazione rispetto al titolo rispetto al nome del processo, ecc.
Intcreator

Netstat elenca solo il nome del processo collegato a una determinata porta. Questo non corrisponde necessariamente al nome dell'applicazione. Ad esempio, l'applicazione postfix avvia una varietà di processi, incluso il processo "master" che apre la porta 25. Noto il file di configurazione dell'app ufw in base, per esempio, al nome del pacchetto, ad esempio "Postfix" o "AMANDA". All'interno del file di configurazione sono presenti una o più definizioni di app che rappresentano le porte aperte da quel pacchetto. Possono esserci multipli, vedere il pacchetto 'postfix' come esempio. Lì i nomi delle app variano in base alla configurazione di postfix.
user207998

per più porte tcp, è come il primo o il secondo? xx/tcp,xy/tcp,xz/tcpoppurexx/tcp|xy/tcp|xz/tcp
errolflynn

10

In realtà è tutto lì nella manpage nella sezione "Integrazione delle applicazioni".

La sintassi di base è:

ufw allow <app_name>

Oppure puoi usare la sintassi estesa per essere più specifici:

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

La manpage dice specificamente di non specificare un numero di porta:

Non è necessario specificare il protocollo con nessuna sintassi e, con la sintassi estesa, utilizzare l'app al posto della clausola port.

Questo probabilmente significa che consentirà di <app_name>utilizzare qualunque porta desideri.

Altri comandi utili:

ufw app info <app_name>

Che elenca le informazioni sul <app_name>profilo di.

ufw app update <app_name>  

Quale <app_name>profilo di aggiornamenti . È possibile utilizzare allper aggiornare tutti i profili dell'applicazione.

Puoi usare:

ufw app update --add-new <app_name>  

comando per aggiungere un nuovo profilo <app_name>e aggiornarlo, seguendo le regole stabilite con ufw app default <policy>.

I profili delle app sono memorizzati a /etc/ufw/applications.dvolte /etc/services.

Per maggiori informazioni vedi man ufw.


Sì, non si specifica una porta nella sintassi 'ufw allow' perché il protocollo è presumibilmente specificato, se necessario, nel file di definizione dell'app stesso.
user207998
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.