Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati

Versione 17 del 02/02/2011 20.14.58

Nascondi questo messaggio

BR Indice() Informazioni(rilasci="10.10 10.04 9.10 8.04"; forum="http://forum.ubuntu-it.org/index.php/topic,440673.0.html"; help="http://help.ubuntu-it.org/current/ubuntu/serverguide/it/firewall.html")

Introduzione

L'applicazione predefinita in Ubuntu per la configurazione di un firewall è Ufw. 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, in modo predefinito, è inizialmente disabilitato.

Sintassi di base ed esempi

Impostare le regole predefinite

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

  • Per bloccare tutto il traffico in entrata, digitare in una finestra di terminale il seguente comando:

     sudo ufw default deny
  • Per consentire tutto il traffico in entrata, digitare in una finestra di terminale il seguente comando:

     sudo ufw default allow
  • Per abilitare Ufw digitare in una finestra di terminale il seguente comando:

    sudo ufw enable

Immagine(Icone/Piccole/note.png,,center)

A meno che non si sia impostato inizialmente Ufw su deny, ufw 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 in una finestra di terminale il seguente 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 seguente comando in una finestra di terminale:

    sudo ufw allow 53
  • Per consentire i pacchetti tcp in ingresso sulla porta 53, digitare il seguente comando in una finestra di terminale:

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

    sudo ufw allow 53/udp
  • Per bloccare i pacchetti tcp e udp sulla porta 53, digitare il seguente comando in una finestra di terminale:

    sudo ufw deny 53
  • Per bloccare i pacchetti tcp sulla porta 53, digitare il seguente comando in una finestra di terminale:

    sudo ufw deny 53/tcp
  • Per bloccare i pacchetti udp sulla porta 53, digitare il seguente comando in una finestra di terminale:

     sudo ufw deny 53/udp

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 della porta 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:

    sudo ufw allow/deny nome_servizio
  • Per consentire il servizio ssh, digitare il seguente comando in una finestra di terminale:

    sudo ufw allow ssh
  • Per bloccare il servizio ssh, digitare il seguente comando in una finestra di terminale:

     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 del comando sarà:

    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. È necessario includere regole di registrazione per fare in modo che vengano eseguite le registrazioni e queste devono essere inserite prima di qualsiasi regola terminante applicabile (un regola con un obiettivo che decide il destino di un pacchetto, come ACCEPT, DROP o REJECT).

  • Per attivare la registrazione, digitare il seguente comando in una finestra di terminale:

    sudo ufw logging on
  • Per disabilitare la registrazione, digitare il seguente comando in una finestra di terminale:

    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:

 # 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

cambiando la voce "ACCEPT" con "DROP":

 # 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

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

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

 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

 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 aggiunta la regola 'deny' la regola ' allow' savrebbe dovuto essere prima di 'deny' e applicata al posto di 'deny'.

Ulteriori risorse


CategoryNuoviDocumenti CategoryInTraduzione