## page was renamed from UFW #format wiki #LANGUAGE it <
> <> <> = Introduzione = '''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: {{{ 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 }}} {{{#!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: {{{ 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 [[Ufficio/EditorDiTesto|editor di testo]] e i [[AmministrazioneSistema/Sudo|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 = * [[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]] ---- CategorySicurezza