Come configurare il firewall UFW su Ubuntu e Debian

A correctly functioning firewall is the most crucial part of the complete Linux system security. By default, Debian and Ubuntu distribution comes with a firewall configuration tool called UFW (Uncomplicated Firewall), is a most popular and easy-to-use command line tool for configuring and managing a firewall on Ubuntu and Debian distributions.

In questo articolo, spiegheremo come installare e configurare un firewall UFW sulle distribuzioni Ubuntu e Debian.

Prerequisiti

Prima di iniziare con questo articolo, assicurati di aver effettuato l’accesso al tuo server Ubuntu o Debian con un utente sudo o con l’account root. Se non disponi di un utente sudo, puoi crearne uno utilizzando le seguenti istruzioni come utente root.

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

Installare il Firewall UFW su Ubuntu e Debian

Il UFW (Uncomplicated Firewall) dovrebbe essere installato per impostazione predefinita in Ubuntu e Debian; in caso contrario, installalo utilizzando il gestore pacchetti APT tramite il seguente comando.

$ sudo apt install ufw

Controllare il Firewall UFW

Una volta completata l’installazione, è possibile controllare lo stato di UFW digitando il seguente comando.

$ sudo ufw status verbose

Alla prima installazione, il firewall UFW è disattivato per impostazione predefinita; l’output sarà simile a quello seguente.

Status: inactive

Abilitare il Firewall UFW

È possibile attivare o abilitare il firewall UFW utilizzando il seguente comando, che carica il firewall e lo abilita per l’avvio automatico.

$ sudo ufw enable

Per disabilitare il firewall UFW, utilizzare il seguente comando, che scarica il firewall e lo disabilita dall’avvio automatico.

$ sudo ufw disable 

Politiche predefinite UFW

Per impostazione predefinita, il firewall UFW nega ogni connessione in ingresso e consente solo tutte le connessioni in uscita al server. Ciò significa che nessuno può accedere al tuo server, a meno che tu non apra specificamente la porta, mentre tutti i servizi o le applicazioni in esecuzione sul tuo server possono accedere alla rete esterna.

Le regole predefinite del firewall UFW sono collocate nel file /etc/default/ufw e possono essere modificate utilizzando il seguente comando.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

Profili delle Applicazioni UFW

Quando si installa un pacchetto software utilizzando il gestore di pacchetti APT, includerà un profilo dell’applicazione nella directory /etc/ufw/applications.d che definisce il servizio e mantiene le impostazioni UFW.

È possibile elencare tutti i profili delle applicazioni disponibili sul server utilizzando il seguente comando.

$ sudo ufw app list

In base alle installazioni dei pacchetti software sul sistema, l’output sarà simile al seguente:

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

Se si desidera ottenere ulteriori informazioni su un profilo specifico e sulle regole definite, è possibile utilizzare il seguente comando.

$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

Abilitare IPv6 con UFW

Se il tuo server è configurato con IPv6, assicurati che il tuo UFW sia configurato con il supporto IPv6 e IPv4. Per verificarlo, apri il file di configurazione UFW con il tuo editor preferito.

$ sudo vi /etc/default/ufw

Quindi assicurati che “IPV6” sia impostato su "yes" nel file di configurazione come mostrato.

IPV6=yes

Salva e esci. Quindi riavvia il tuo firewall con i seguenti comandi:

$ sudo ufw disable
$ sudo ufw enable

Consenti Connessioni SSH su UFW

Se hai abilitato il firewall UFW, bloccherà tutte le connessioni in ingresso e se sei connesso al tuo server tramite SSH da una posizione remota, non sarai più in grado di riconnetterti.

Abilitiamo le connessioni SSH al nostro server per evitare che ciò accada usando il seguente comando:

$ sudo ufw allow ssh

Se stai utilizzando una porta SSH personalizzata (ad esempio la porta 2222), allora devi aprire quella porta sul firewall UFW usando il seguente comando.

$ sudo ufw allow 2222/tcp

Per bloccare tutte le connessioni SSH digita il seguente comando.

$ sudo ufw deny ssh/tcp
$ sudo ufw deny 2222/tcp  [If using custom SSH port]

Abilita Porte Specifiche su UFW

Puoi anche aprire una porta specifica nel firewall per consentire connessioni tramite essa a un determinato servizio. Ad esempio, se desideri configurare un server web che ascolta sulla porta 80 (HTTP) e 443 (HTTPS) di default.

Ecco alcuni esempi su come consentire connessioni in ingresso ai servizi Apache.

Apri la Porta 80 HTTP su UFW
$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
Apri la Porta 443 HTTPS su UFW
$ sudo ufw allow https
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

Consenti Range di Porte su UFW

Supponendo che tu abbia delle applicazioni che desideri eseguire su un intervallo di porte (5000-5003), puoi aggiungere tutte queste porte usando i comandi seguenti.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

Consenti Indirizzi IP Specifici

Se desideri consentire connessioni su tutte le porte da un indirizzo IP specifico 192.168.56.1, allora devi specificare “from” prima dell’indirizzo IP.

$ sudo ufw allow from 192.168.56.1

Consenti Indirizzi IP Specifici su Porte Specifiche

Per consentire la connessione su una porta specifica (ad esempio la porta 22) dal tuo computer di casa con l’indirizzo IP di 192.168.56.1, devi aggiungere qualsiasi porta e il numero di porta dopo l’indirizzo IP come mostrato.

$ sudo ufw allow from 192.168.56.1 to any port 22

Consenti Sottoreti di Rete a Porta Specifica

Per consentire connessioni per particolari indirizzi IP che vanno da 192.168.1.1 a 192.168.1.254 alla porta 22 (SSH), esegui il seguente comando.

$ sudo ufw allow from 192.168.1.0/24 to any port 22

Consenti Interfaccia di Rete Specifica

Per consentire connessioni a una specifica interfaccia di rete eth2 per una porta particolare 22 (SSH), esegui il seguente comando.

$ sudo ufw allow in on eth2 to any port 22

Nega Connessioni su UFW

Per impostazione predefinita, tutte le connessioni in ingresso sono bloccate, a meno che tu non abbia aperto specificamente la connessione su UFW. Ad esempio, hai aperto le porte 80 e 443 e il tuo server web è sotto attacco dalla rete sconosciuta 11.12.13.0/24.

Per bloccare tutte le connessioni da questo particolare intervallo di rete 11.12.13.0/24, puoi utilizzare il seguente comando.

$ sudo ufw deny from 11.12.13.0/24

Se desideri bloccare solo le connessioni sulle porte 80 e 443, puoi utilizzare i seguenti comandi.

$ sudo ufw deny from 11.12.13.0/24 to any port 80
$ sudo ufw deny from 11.12.13.0/24 to any port 443

Elimina Regole UFW

Ci sono 2 modi per eliminare le regole UFW, per numero di regola e per regola effettiva.

Per eliminare una regola UFW utilizzando il numero di regola, prima devi elencare le regole per numeri utilizzando il seguente comando.

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

Per eliminare la regola numero 1, utilizzare il seguente comando.

$ sudo ufw delete 1

Il secondo metodo consiste nell’eliminare una regola utilizzando la regola effettiva, ad esempio per eliminare una regola, specificare il numero di porta con il protocollo come indicato.

$ sudo ufw delete allow 22/tcp

Esecuzione a secco delle regole UFW

È possibile eseguire qualsiasi comando ufw senza apportare effettivamente alcuna modifica al firewall di sistema utilizzando il flag --dry-run, che mostra semplicemente le modifiche che avrebbero dovuto verificarsi.

$ sudo ufw --dry-run enable

Reimpostare il firewall UFW

Per un motivo o per un altro, se si desidera eliminare / reimpostare tutte le regole del firewall, digitare i seguenti comandi, che annulleranno tutte le modifiche e inizieranno da zero.

$ sudo ufw reset
$ sudo ufw status

Funzionalità avanzate di UFW

Il firewall UFW può gestire qualsiasi cosa faccia iptables. Questo può essere fatto con diversi set di file di regole, che non sono altro che semplici file di testo iptables-restore.

La messa a punto del firewall UFW o l’aggiunta di comandi iptables aggiuntivi non sono consentiti tramite il comando ufw, è solo una questione di modifica dei seguenti file di testo

  • /etc/default/ufw: Il file di configurazione principale con regole predefinite.
  • /etc/ufw/before[6].rules: In questo file le regole vengono calcolate prima di essere aggiunte tramite il comando ufw.
  • /etc/ufw/after[6].rules: In questo file le regole vengono calcolate dopo essere state aggiunte tramite il comando ufw.
  • /etc/ufw/sysctl.conf: Questo file viene utilizzato per ottimizzare la rete del kernel.
  • /etc/ufw/ufw.conf: Questo file abilita ufw all’avvio.

Ecco! UFW è un eccellente front-end per iptables con un’interfaccia utente amichevole per definire regole complesse con un singolo comando ufw.

Se hai domande o pensieri da condividere su questo articolo ufw, utilizza il modulo di commento qui sotto per contattarci.

Source:
https://www.tecmint.com/setup-ufw-firewall-on-ubuntu-and-debian/