Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Sicurezza/Ufw"
Differenze tra le versioni 14 e 46 (in 32 versioni)
Versione 14 del 02/02/2011 17.44.35
Dimensione: 11583
Autore: MarcoBuono
Commento:
Versione 46 del 23/11/2023 05.52.04
Dimensione: 11001
Autore: jeremie2
Commento:
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
## page was renamed from GuidaWiki/DocumentazioneModello ## page was renamed from UFW
Linea 4: Linea 4:
[[BR]]
[[Indice()]]
<<BR>>
<<Indice(depth=1)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=440673"; rilasci="20.04 18.04")>>
Linea 8: Linea 9:
-----

Per una introduzione ai Firewall si prega di vedere questa pagina wiki: [http://wiki.ubuntu-it.org/Sicurezza/Firewall Firewall]


= UFW - Uncomplicated Firewall =
Lo strumento di configurazione di default dei firewall per Ubuntu è ufw. Sviluppato per semplificare la configurazione del firewall [http://wiki.ubuntu-it.org/Sicurezza/Iptables iptables], '''ufw''' fornisce un modo facile per creare un firewall host-based IPv4 o IPv6.
Per impostazione predefinita ufw è attivato ma tutte le porte vengono lasciate aperte (altrimenti non ci sarebbe accesso a Internet dopo l'installazione).
Gufw è una GUI che è disponibile come frontend.

= Sintassi di base ed esempi =
-----

== Fissare le regole di default ==
E' consigliato impostare la modalità predefinita di ufw prima di avviarlo. Con i comandi successivi si negheranno o consentiranno rispettivamente tutte le connessioni in entrata.

Fissare il diniego di default:
{{{

'''Ufw''' ('''U'''ncomplicated '''f'''ire'''w'''all) è l'applicazione predefinita in Ubuntu per la configurazione del firewall. Sviluppato per semplificare la configurazione di [[Sicurezza/Iptables|iptables]], '''Ufw''' offre un modo semplice per creare un firewall basato su protocolli IPv4 e IPv6. '''Ufw''' è inizialmente disabilitato.

{{{#!wiki tip
Questa guida richiede l'utilizzo del [[AmministrazioneSistema/Terminale|terminale]].
}}}

= Impostare le regole predefinite =

È consigliato impostare la modalità predefinita di '''Ufw''' prima di abilitarlo.

 * Per bloccare tutto il traffico in entrata, digitare nel [[AmministrazioneSistema/Terminale|terminale]] il seguente comando: {{{
Linea 28: Linea 23:

Fissare il consenso di default:
{{{
 * Per consentire tutto il traffico in entrata, digitare il comando: {{{
Linea 34: Linea 27:
== Abilitare e Disabilitare ==

=== Abilitare ufw ===

Per abilitare il firewall ufw:

{{{
 sudo ufw enable
}}}
Nota: A meno che non si è impostato il default su 'DENY' (rifiuto), inizialmente ufw è in modalità 'ALLOW' (permesso),e consentirà tutto il traffico in entrata e in uscita se prima non si è impostato il set di regole.

=== Disabilitare ufw ===

Per disabilitare il firewall ufw:

{{{
 * Per abilitare '''Ufw''' digitare il comando: {{{
sudo ufw enable
}}}

{{{#!wiki note
A meno che '''Ufw''' non si sia impostato inizialmente su `deny`, sarà in modalità `allow` e consentirà tutto il traffico in entrata e in uscita se prima non si è impostato il set di regole.
}}}

 * Per disabilitare '''Ufw''' digitare il comando: {{{
Linea 53: Linea 39:
== Permessi e Divieti ==

=== Permessi ===

{{{
 sudo ufw allow <port>/<optional: protocol>
}}}

''' Esempio''': per autorizzare pacchetti tcp e udp in ingresso sulla porta 53

{{{
 sudo ufw allow 53
}}}

'''Esempio''': per autorizzare pacchetti tcp in ingresso sulla porta 53

{{{
 sudo ufw allow 53/tcp
}}}

'''Esempio''': per autorizzare pacchetti udp in ingresso sulla porta 53

{{{
 sudo ufw allow 53/udp
}}}

'''Esempio''': per autorizzare pacchetti tcp in ingresso sulla porta 53

{{{
 sudo ufw allow 53/tcp
}}}


=== Divieti ===

{{{
 sudo ufw deny <port>/<optional: protocol>
}}}

'''Esempio''': per bloccare pacchetti tcp e udp sulla porta 53

{{{
 sudo ufw deny 53
}}}

'''Esempio''': per bloccare pacchetti tcp in ingresso sulla porta 53

{{{
 sudo ufw deny 53/tcp
}}}

'''Esempio''': per bloccare pacchetti udp sulla porta 53

{{{
= Consentire e bloccare il traffico =

 * In generale, la sintassi è la seguente: {{{
sudo ufw allow/deny porta/protocollo (facoltativo)
}}}

 * Per consentire i pacchetti tcp e udp in ingresso sulla porta 53, digitare il comando: {{{
sudo ufw allow 53
}}}
 * Per consentire i pacchetti tcp in ingresso sulla porta 53, digitare il comando: {{{
sudo ufw allow 53/tcp
}}}
 * Per consentire i pacchetti udp in ingresso sulla porta 53, digitare il comando: {{{
sudo ufw allow 53/udp
}}}
 * Per bloccare i pacchetti tcp e udp sulla porta 53, digitare il comando: {{{
sudo ufw deny 53
}}}
 * Per bloccare i pacchetti tcp sulla porta 53, digitare il comando: {{{
sudo ufw deny 53/tcp
}}}
 * Per bloccare i pacchetti udp sulla porta 53, digitare il comando: {{{
Linea 110: Linea 64:
== Cancellare una regola già esistente ==

Per cancellare una regola si deve semplicemente fissare la regola originale con 'delete'. Per esempio se la regola originale era:

{{{
 ufw deny 80/tcp
}}}

Usare questo comando per cancellarla:

{{{
== 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: {{{
sudo ufw allow/deny from indirizzo_ip to protocollo port numero_porta (protocollo e numero_porta facoltativi)
}}}
 * Per consentire il traffico proveniente dall'indirizzo IP 207.46.232.182, digitare il comando: {{{
 sudo ufw allow from 207.46.232.182
}}}
 * Per bloccare il traffico proveniente dall'indirizzo IP 207.46.232.182, digitare il comando: {{{
sudo 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, digitare il comando: {{{
sudo 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, digitare il comando: {{{
sudo ufw deny from 192.168.0.4 to any port 22
}}}
 * Per consentire il traffico proveniente dalla sottorete 192.168.1.0/24, digitare il comando: {{{
sudo ufw allow from 192.168.1.0/24
}}}
 * Per bloccare il traffico proveniente dalla sottorete 192.168.1.0/24, digitare il comando: {{{
sudo 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: {{{
Linea 124: Linea 100:

== Servizi ==

Si può inoltre autorizzare o bloccare attraverso il nome del servizio che ufw legge attraverso il file ,'/etc/services`. Per vedere, ottenere un elenco di servizi:

{{{
= 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 il comando: {{{
Linea 132: Linea 107:

=== Autorizzare tramite il nome di un servizio ===

{{{
sudo ufw allow <service name>
}}}

'''Esempio''': per autorizzare il servizio ssh con il nome:

{{{
 sudo ufw allow ssh
}}}

=== Bloccare tramite il nome di un servizio ===

{{{
sudo ufw deny <service name>
}}}

'''Esempio''': per bloccare il servizio ssh con il nome:

{{{
 * La sintassi sarà la seguente: {{{
sudo ufw allow/deny nome_servizio
}}}
 * Per consentire il servizio `ssh`, digitare il comando: {{{
sudo ufw allow ssh
}}}
 * Per bloccare il servizio ssh, digitare il comando: {{{
Linea 157: Linea 117:

== Status ==

Verificare lo stato di ufw permetterà di sapere se ufw è attivato o disattivato e produrrà una lista delle regole ufw attualmente applicate alla iptables.

Per controllare lo status di ufw:

{{{
 sudo ufw status

 Firewall loaded
= 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, digitare il seguente comando in una finestra di terminale: {{{
sudo ufw status
}}}
 * Se abilitato, un possibile output sarà il seguente: {{{
Firewall attivato
Linea 178: Linea 136:

Se invece ufw non è abilitato il risultato del comando sarà:

{{{
 sudo ufw status
 Status: inactive
}}}


== Registrazione ==

Per abilitare il modo 'Registrazione':

{{{
 sudo ufw logging on
}}}

Per disabilitare il modo ' Registrazione':

{{{
 sudo ufw logging off
}}}


= Sintassi avanzata =

Si può anche usare una sintassi più completa specificando gli indirizzi e le porte delle sorgenti e delle destinazioni:


== Permettere l'accesso ==

Questa sezione mostra come autorizzare un accesso specifico.

=== Autorizzazione tramite IP specifico ===

{{{
 sudo ufw allow <ip address>
}}}

'''Esempio''': per autorizzare pacchetti da 207.46.232.182:

{{{
 sudo ufw allow from 207.46.232.182
}}}

=== Autorizzazione tramite Subnet ===

Si può usare una 'net mask':

{{{
 sudo ufw allow from 192.168.1.0/24
}}}

=== Autorizzazione tramite un indirizzo ed una porta specifica ===

{{{
 sudo ufw allow from <ip address> to <protocol> port <port number>
}}}

'''esempio''': autorizzare l'accesso dell'indirizzo IP 192.168.0.4 alla porta 22 per tutti i protocolli

{{{
 sudo ufw allow from 192.168.0.4 to any port 22
}}}

== Autorizzare PING ==

Nota: La sicurezza tramite segretezza può essere di ben poco vantaggio effettivo con i moderni 'cracker script'.
'''Per impostazione predefinita, UFW consente richieste ping.'''
Si potrebbe desiderare di lasciare autorizzate le richieste (ICMP) ping al fine di diagnosticare eventuali problemi di rete.

Per fare ciò si ha bisogno di modificare il file `/etc/ufw/before.rules` e rimuovere modificare le seguenti righe:

{{{
 * 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, digitare il comando: {{{
sudo ufw logging on
}}}
 * Per disabilitare la registrazione, digitare il comando: {{{
sudo 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 [[Ufficio/EditorDiTesto|editor di testo]] e i [[AmministrazioneSistema/Sudo|privilegi di amministrazione]] aprire il file `/etc/ufw/before.rules` e sostituire: {{{
Linea 259: Linea 165:
cambiando la voce "ACCEPT" con "DROP":

{{{
 * con: {{{
Linea 270: Linea 174:
== Negare l'accesso ==

=== Negare tramite IP specifico ===

{{{
 sudo ufw deny from <ip address>
}}}

'''example''': Per bloccare i pacchetti da 207.46.232.182:

{{{
 sudo ufw deny from 207.46.232.182
}}}

=== Negare tramite porta e IP specifici ===

{{{
 sudo ufw deny from <ip address> to <protocol> port <port number>
}}}

'''esempio''': negare l'accesso all'indirizzo ip 192.168.0.1 sulla porta 22 per tutti i protocolli

{{{
 sudo ufw deny from 192.168.0.1 to any port 22
}}}

== Regole di blocco avanzate ==

Bloccare gli indirizzi IP non è così semplice se si dispone già di un set di regole esistenti come IPTABLES.
Quindi, se si è iniziato con le regole di default impostate su 'deny' e si è aggiunto una autorizzazione sulla porta 80 per un server pubblico:

{{{
 sudo ufw allow 80
}}}

ma successivamente si è trovato l'indirizzo IP 111.222.3.44 che sta forzando il nostro server:

il comando:

{{{
 sudo ufw deny 111.222.3.44
}}}

'''non farà nulla ( perchè precedentemente si è autorizzato l'accesso con una regola)'''

Si avrà bisogno di modificare il file '/etc/ufw/before.rules' e aggiungere una sezione "Block IP" dopo "Drop INVALID packets" :

{{{
 -A ufw-before-input -s 111.222.3.44 -j DROP #Assuming no loging is desired of course)
 # drop INVALID packets
 # uncomment to log INVALID packets
 #-A ufw-before-input -m conntrack --ctstate INVALID -j LOG --log-prefix "[UFW B$
 -A ufw-before-input -m conntrack --ctstate INVALID -j DROP

 # Block IP
 # This it is efective :)
 -A ufw-before-input -s 111.222.3.44 -j DROP
}}}

== Esempio di tipo avanzato ==

'''Scenario''': si desidera bloccare l'accesso alla porta 22 dagli indirizzi IP 192.168.0.1.e 192.168.0.7 ma contemporaneamente permettere l'accesso a tutti gli altri indirizzi IP 192.168.0.x IPs alla porta 22
{{{
 sudo ufw deny from 192.168.0.1 to any port 22
 sudo ufw deny from 192.168.0.7 to any port 22
 sudo ufw allow from 192.168.0.0/24 to any port 22
}}}

Questo pone le norme specifiche prima e successivamente le generice.
Una volta che una regola è definita le altre non verranno valutate (manuale vedi sotto), quindi è necessario mettere le regole specifiche per prime.
Quando le regole cambiano può essere necessario cancellare le vecchie regole per garantire che le nuove regole vengano messe e valutate nel giusto ordine.

Per verificare l'ordine delle regole si può controllare lo statu; per lo scenario sopra descritto qui sotto vi è il settaggio desiderato per ifar sì che le regole lavorino nella maniera giusta;
{{{
 sudo ufw status
= 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: {{{
sudo ufw allow 80
}}} tentare di bloccare l'indirizzo Ip 111.222.3.44 con il comando {{{
sudo 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: {{{
sudo ufw deny from 192.168.0.1 to any port 22
sudo ufw deny from 192.168.0.7 to any port 22
sudo 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: {{{
sudo ufw status
}}}
 * In questo caso le regole saranno le seguenti: {{{
Linea 357: Linea 219:
'''Cambio di scenario''': si vuole bloccare l'accesso alla porta 22 da parte diell'IP 192.168.0.3, 192.168.0.1 e 192.168.0.7.

{{{
 sudo ufw delete allow from 192.168.0.0/24 to any port 22
 sudo ufw status
Qualora, successivamente, si voglia bloccare l'accesso alla porta 22 anche all'indirizzo IP 192.168.0.3:
 * Prima è necessario cancellare la regola generica: {{{
sudo ufw delete allow from 192.168.0.0/24 to any port 22
}}}
 * Lo stato diventerà: {{{
Linea 370: Linea 232:

 sudo ufw deny 192.168.0.3 to any port 22
 sudo ufw allow 192.168.0.0/24 to any port 22
 sudo ufw status
}}}
 * Successivamente, è necessario applicare la regola all'indirizzo IP 192.168.0.3: {{{
sudo ufw deny 192.168.0.3 to any port 22
}}}
 * Infine, bisogna rimettere la regola generica: {{{
sudo ufw allow 192.168.0.0/24 to any port 22
}}}
 * Lo stato diventerà: {{{
Linea 388: Linea 253:
Se si fosse semplicemente aggiunta la regola 'deny' la regola ' allow' savrebbe dovuto essere prima di 'deny' e applicata al posto di 'deny'.

= Altre risorse =

    * Per istruzioni sull'uso di ufw leggere prima [https://help.ubuntu.com/8.04/serverguide/C/firewall.html guida ufficiale server in inglese].
    * Il manuale e la sintassi più recente può essere estratto dalla ' man page'. Altrimenti si apra una finestra terminale e digitare:

{{{
 man ufw
}}}
    * [http://wiki.ubuntu-it.org/Sicurezza/Firewall Firewall] - Wiki homepage in italiano della documentazione firewall
    * [http://wiki.ubuntu-it.org/Sicurezza/Iptables Iptables] - Interfaccia al sottosistema 'netfilter' nel kernel linux
    * [http://wiki.ubuntu-it.org/GUFW GUFW] - pagina wiki relativa all'interfaccia grafica utente per UFW (in implementazione)

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.

= Ulteriori risorse =

 * [[https://help.ubuntu.com/community/UFW|Documento originale]]
 * [[https://wiki.ubuntu.com/UbuntuFirewallSpec|Specifiche tecniche]]
 * [[http://manpages.ubuntu.com/manpages/artful/en/man8/ufw.8.html|Pagina man di Ufw]]
 * [[http://manpages.ubuntu.com/manpages/artful/en/man8/ufw-framework.8.html|Pagina man di Ufw framework]]
 * [[Sicurezza/Gufw|Gufw]]: interfaccia grafica per Ufw.
 * [[Sicurezza/Firewall|Firewall]]
 * [[Sicurezza/Iptables|Iptables]]
Linea 403: Linea 267:
CategoryNuoviDocumenti CategoryInTraduzione

CategorySicurezza


Guida verificata con Ubuntu: 20.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Ufw (Uncomplicated firewall) è l'applicazione predefinita in Ubuntu 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. Ufw è inizialmente disabilitato.

Questa guida richiede l'utilizzo del terminale.

Impostare le regole predefinite

È consigliato impostare la modalità predefinita di Ufw prima di abilitarlo.

  • Per bloccare tutto il traffico in entrata, digitare nel terminale il seguente comando:

     sudo ufw default deny
  • Per consentire tutto il traffico in entrata, digitare il comando:

     sudo ufw default allow
  • Per abilitare Ufw digitare il comando:

    sudo ufw enable

A meno che Ufw non si sia impostato inizialmente su deny, sarà in modalità allow e consentirà tutto il traffico in entrata e in uscita se prima non si è impostato il set di regole.

  • Per disabilitare Ufw digitare il comando:

     sudo ufw disable

Consentire e bloccare il traffico

  • In generale, la sintassi è la seguente:

    sudo ufw allow/deny porta/protocollo (facoltativo)
  • Per consentire i pacchetti tcp e udp in ingresso sulla porta 53, digitare il comando:

    sudo ufw allow 53
  • Per consentire i pacchetti tcp in ingresso sulla porta 53, digitare il comando:

    sudo ufw allow 53/tcp
  • Per consentire i pacchetti udp in ingresso sulla porta 53, digitare il comando:

    sudo ufw allow 53/udp
  • Per bloccare i pacchetti tcp e udp sulla porta 53, digitare il comando:

    sudo ufw deny 53
  • Per bloccare i pacchetti tcp sulla porta 53, digitare il comando:

    sudo ufw deny 53/tcp
  • Per bloccare i pacchetti udp sulla porta 53, digitare il comando:

     sudo 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:

    sudo ufw allow/deny from indirizzo_ip to protocollo port numero_porta (protocollo e numero_porta facoltativi)
  • Per consentire il traffico proveniente dall'indirizzo IP 207.46.232.182, digitare il comando:

     sudo ufw allow from 207.46.232.182
  • Per bloccare il traffico proveniente dall'indirizzo IP 207.46.232.182, digitare il comando:

    sudo 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, digitare il comando:

    sudo 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, digitare il comando:

    sudo ufw deny from 192.168.0.4 to any port 22
  • Per consentire il traffico proveniente dalla sottorete 192.168.1.0/24, digitare il comando:

    sudo ufw allow from 192.168.1.0/24
  • Per bloccare il traffico proveniente dalla sottorete 192.168.1.0/24, digitare il comando:

    sudo 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:

    sudo 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 il comando:

    less /etc/services
  • La sintassi sarà la seguente:

    sudo ufw allow/deny nome_servizio
  • Per consentire il servizio ssh, digitare il comando:

    sudo ufw allow ssh
  • Per bloccare il servizio ssh, digitare il comando:

     sudo 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, digitare il seguente comando in una finestra di terminale:

    sudo 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, digitare il comando:

    sudo ufw logging on
  • Per disabilitare la registrazione, digitare il comando:

    sudo 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:

sudo ufw allow 80

tentare di bloccare l'indirizzo Ip 111.222.3.44 con il comando

sudo 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:

    sudo ufw deny from 192.168.0.1 to any port 22
    sudo ufw deny from 192.168.0.7 to any port 22
    sudo 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:

    sudo ufw status
  • In questo caso le regole saranno le seguenti:

     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:

    sudo 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:

    sudo ufw deny 192.168.0.3 to any port 22
  • Infine, bisogna rimettere la regola generica:

    sudo 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.

Ulteriori risorse


CategorySicurezza