Introduzione
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:
sudo ufw default deny
Fissare il consenso di default:
sudo ufw default allow
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:
sudo ufw disable
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
sudo ufw deny 53/udp
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:
sudo ufw delete deny 80/tcp
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:
less /etc/services
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:
sudo ufw deny ssh
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 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
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:
# 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