Introduzione
Ufw (Uncomplicated firewall) è l’applicazione predefinita per la configurazione del firewall.
Sviluppato per semplificare la configurazione di iptables, Ufw offre un modo semplice per creare un firewall basato su protocolli IPv4 e IPv6.
———–
L’interfaccia grafica per gnome si avvia così:
# ufw-gtk
———–
Modalità da riga di comando.
E’ consigliato impostare la modalità predefinita di Ufw prima di abilitarlo.

Per bloccare tutto il traffico in entrata:
# ufw default deny
Per consentire tutto il traffico in entrata:
# ufw default allow
Per abilitare Ufw:
# ufw enable
Per disabilitare Ufw:
# ufw disable

Consentire e bloccare il traffico
In generale, la sintassi è la seguente:
# ufw allow/deny porta/protocollo (facoltativo)

Esempi:

Per consentire i pacchetti tcp e udp in ingresso sulla porta 53:
# ufw allow 53
Per consentire i pacchetti tcp in ingresso sulla porta 53:
# ufw allow 53/tcp
Per consentire i pacchetti udp in ingresso sulla porta 53:
# ufw allow 53/udp
Per bloccare i pacchetti tcp e udp sulla porta 53:
# ufw deny 53
Per bloccare i pacchetti tcp sulla porta 53:
# ufw deny 53/tcp
Per bloccare i pacchetti udp sulla porta 53:
# ufw deny 53/udp

Sintassi avanzata

E’ anche possibile utilizzare una sintassi più completa specificando l’origine e la destinazione degli indirizzi e delle porte.
In generale, la sintassi è la seguente:
# ufw allow/deny from indirizzo_ip to protocollo port numero_porta (protocollo e numero_porta facoltativi)
Esempi:

per consentire il traffico proveniente dall’indirizzo IP 207.46.232.182:
# ufw allow from 207.46.232.182
per bloccare il traffico proveniente dall’indirizzo IP 207.46.232.182:
# ufw deny from 207.46.232.182
per consentire il traffico proveniente dall’indirizzo IP 192.168.0.4 alla porta 22 per tutti i protocolli:
# ufw allow from 192.168.0.4 to any port 22
per bloccare il traffico proveniente dall’indirizzo IP 192.168.0.4 alla porta 22 per tutti i protocolli:
# ufw deny from 192.168.0.4 to any port 22
per consentire il traffico proveniente dalla sottorete 192.168.1.0/24:
# ufw allow from 192.168.1.0/24
per bloccare il traffico proveniente dalla sottorete 192.168.1.0/24:
# ufw deny from 192.168.1.0/24

Eliminare una regola esistente
Per eliminare una regola, usare delete seguito dalla regola.
Per esempio, se la regola originale era:
ufw deny 80/tcp
Usare questo comando per cancellarla:
# ufw delete deny 80/tcp

Servizi
Se la porta che si vuole aprire o chiudere è definita in /etc/services, è possibile usare il nome al posto del numero della porta.
Negli esempi seguenti, si sostituirà 22 con ssh.

Per vedere la lista dei servizi, digitare in una finestra ii terminale il seguente comando:
less /etc/services
La sintassi sarà la seguente:
# ufw allow/deny nome_servizio
Per consentire il servizio ssh:
# ufw allow ssh
Per bloccare il servizio ssh:
# ufw deny ssh

Stato
Verificare lo stato di Ufw permetterà di sapere se il firewall è attivato o disattivato e verrà mostrato l’elenco delle regole attualmente applicate da Ufw a iptables.
Per visualizzare lo stato del firewall:
# ufw status
Se abilitato, un possibile output sarà il seguente:

Firewall attivato

To                         Action  From
–                         ——  —-
22:tcp                     DENY    192.168.0.1
22:udp                     DENY    192.168.0.1
22:tcp                     DENY    192.168.0.7
22:udp                     DENY    192.168.0.7
22:tcp                     ALLOW   192.168.0.0/24
22:udp                     ALLOW   192.168.0.0/24

Viceversa, il risultato sarà il seguente:
Stato: inattivo

Registri
I registri del firewall sono molto utili per riconoscere gli attacchi, migliorare le regole del firewall e per verificare attività inusuali nella propria rete.
Per attivare la registrazione:
# ufw logging on
Per disabilitare la registrazione:
# ufw logging off

Ping
Con i moderni cracker script, disabilitare il ping può non portare vantaggi.

Per impostazione predefinita, Ufw consente le richieste di ping.
Potrebbe darsi, che si voglia mantenere questa funzionalità per diagnosticare eventuali problemi di rete.

Viceversa, per disabilitare questa funzionalità:
Con un editor di testo e i privilegi di amministrazione aprire il file /etc/ufw/before.rules e sostituire:

# ok icmp codes
-A ufw-before-input -p icmp –icmp-type destination-unreachable -j ACCEPT
-A ufw-before-input -p icmp –icmp-type source-quench -j ACCEPT
-A ufw-before-input -p icmp –icmp-type time-exceeded -j ACCEPT
-A ufw-before-input -p icmp –icmp-type parameter-problem -j ACCEPT
-A ufw-before-input -p icmp –icmp-type echo-request -j ACCEPT

con:

# ok icmp codes
-A ufw-before-input -p icmp –icmp-type destination-unreachable -j DROP
-A ufw-before-input -p icmp –icmp-type source-quench -j DROP
-A ufw-before-input -p icmp –icmp-type time-exceeded -j DROP
-A ufw-before-input -p icmp –icmp-type parameter-problem -j DROP
-A ufw-before-input -p icmp –icmp-type echo-request -j DROP

Regole di blocco avanzate
Se si dispone già di un set di regole iptables, bloccare gli indirizzi IP potrebbe non essere molto semplice.
Nel caso si abbiamo già delle regole predefinite impostate su deny e successivamente si è provveduto ad autorizzare il traffico in entrata sulla porta 80:
# ufw allow 80
tentare di bloccare l’indirizzo Ip 111.222.3.44 con il comando
# ufw deny 111.222.3.44
non porterà ad alcun risultato in quanto in precedenza l’accesso era stato abilitato.

Si avrà bisogno di modificare il file /etc/ufw/before.rules e aggiungere una sezione “Block IP” dopo la sezione “Drop INVALID packets”:
# drop INVALID packets (logs these in loglevel medium and higher)
-A ufw-before-input -m state –state INVALID -j ufw-logging-deny
-A ufw-before-input -m state –state INVALID -j DROP
# block IP
-A ufw-before-input -s 111.222.3.44 -j DROP

Esempio avanzato
Si supponga che si voglia bloccare l’accesso alla porta 22 agli indirizzi IP locali 192.168.0.1.e 192.168.0.7 ma allo stesso tempo si voglia permettere l’accesso a tutti gli altri indirizzi IP della sottorete 192.168.0.0/24.

Le regole da applicare saranno la seguenti:

# ufw deny from 192.168.0.1 to any port 22
# ufw deny from 192.168.0.7 to any port 22
# ufw allow from 192.168.0.0/24 to any port 22

Nell’esempio, le regole specifiche vengono poste prima della regola generica. Quando le regole cambiano può essere necessario cancellare le vecchie regole per garantire che le nuove regole vengano valutate nel giusto ordine.

Per verificare l’ordine delle regole si può utilizzare il comando
# ufw status

In questo caso le regole saranno le seguentei:

Firewall loaded

To                         Action  From
–                         ——  —-
22:tcp                     DENY    192.168.0.1
22:udp                     DENY    192.168.0.1
22:tcp                     DENY    192.168.0.7
22:udp                     DENY    192.168.0.7
22:tcp                     ALLOW   192.168.0.0/24
22:udp                     ALLOW   192.168.0.0/24

Qualora, successivamente, si voglia bloccare l’accesso alla porta 22 anche all’indirizzo IP 192.168.0.3:

Prima è necessario cancellare la regola generica:
# ufw delete allow from 192.168.0.0/24 to any port 22
Lo stato diventerà:

Firewall loaded

To                         Action  From
–                         ——  —-
22:tcp                     DENY    192.168.0.1
22:udp                     DENY    192.168.0.1
22:tcp                     DENY    192.168.0.7
22:udp                     DENY    192.168.0.7

Successivamente, è necessario applicare la regola all’indirizzo IP 192.168.0.3:
# ufw deny 192.168.0.3 to any port 22
Infine, bisogna rimettere la regola generica:
# ufw allow 192.168.0.0/24 to any port 22
Lo stato diventerà:

Firewall loaded

To                         Action  From
–                         ——  —-
22:tcp                     DENY    192.168.0.1
22:udp                     DENY    192.168.0.1
22:tcp                     DENY    192.168.0.7
22:udp                     DENY    192.168.0.7
22:tcp                     DENY    192.168.0.3
22:udp                     DENY    192.168.0.3
22:tcp                     ALLOW   192.168.0.0/24
22:udp                     ALLOW   192.168.0.0/24

Se si fosse semplicemente aggiunto la regola deny, la regola allow sarebbe stata prima della regola deny per l’indirizzo IP 192.168.0.3 e quindi applicata al suo posto.

Related posts:

  1. SABAYON – COMANDI della SHELL da ricordare