Ricerca nel sito web

Come configurare il firewall UFW su Ubuntu e Debian


Un firewall correttamente funzionante è la parte più cruciale della sicurezza completa del sistema Linux. Per impostazione predefinita, la distribuzione Debian e Ubuntu viene fornita con uno strumento di configurazione del firewall chiamato UFW (Uncomplicated Firewall), è uno strumento da riga di comando molto popolare e facile da usare per la configurazione e gestire un firewall sulle distribuzioni Ubuntu e Debian.

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

Installa UFW Firewall su Ubuntu e Debian

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

sudo apt install ufw

Controlla il firewall UFW

Una volta completata l'installazione è possibile verificare lo stato di UFW digitando.

sudo ufw status verbose

Alla prima installazione, il firewall UFW è disabilitato per impostazione predefinita, l'output sarà simile a quello riportato di seguito.

Status: inactive

Abilita il firewall UFW

È possibile attivare o abilitare il firewall UFW utilizzando il comando seguente, che dovrebbe caricare il firewall e consentirne l'avvio all'avvio.

sudo ufw enable

Per disabilitare il firewall UFW, utilizzare il comando seguente, che scarica il firewall e ne disabilita l'avvio all'avvio.

sudo ufw disable 

Politiche predefinite dell'UFW

Per impostazione predefinita, il firewall UFW nega tutte le connessioni in entrata 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 specificatamente la porta, mentre tutti i servizi o le applicazioni in esecuzione sul tuo server possono essere in grado di accedere alla rete esterna.

Le policy firewall UFW predefinite vengono inserite nel file /etc/default/ufw e possono essere modificate utilizzando il comando seguente.

sudo ufw default deny incoming
sudo ufw default allow outgoing

Profili delle applicazioni UFW

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

Puoi elencare tutti i profili dell'applicazione disponibili sul tuo server utilizzando il seguente comando.

sudo ufw app list

A seconda delle installazioni del pacchetto software sul sistema, l'output sarà simile al seguente:

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

Se desideri ottenere maggiori informazioni su un particolare profilo e sulle regole definite puoi 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

Abilita 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 di UFW utilizzando 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 ed esci. Quindi riavvia il firewall con i seguenti comandi:

sudo ufw disable
sudo ufw enable

Consenti connessioni SSH su UFW

Se ormai hai abilitato il firewall UFW, bloccherebbe tutte le connessioni in entrata e se sei connesso al tuo server tramite SSH da una posizione remota, non sarai più in grado di connetterti di nuovo.

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

sudo ufw allow ssh

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

sudo ufw allow 2222/tcp

Per bloccare tutte le connessioni SSH digitare 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 le connessioni tramite esso a un determinato servizio. Ad esempio, se desideri configurare un server web in ascolto sulla porta 80 (HTTP) e 443 (HTTPS ) per impostazione predefinita.

Di seguito sono riportati alcuni esempi di come consentire le connessioni in entrata 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 intervalli di porte su UFW

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

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, devi specificare prima l'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 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 porte specifiche

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

sudo ufw allow from 192.168.1.0/24 to any port 22

Consenti interfaccia di rete specifica

Per consentire le connessioni a un'interfaccia di rete specifica eth2 per una particolare porta 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 entrata sono bloccate, a meno che tu non abbia aperto specificatamente 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 le regole UFW

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

Per eliminare una regola UFW utilizzando il numero regola, devi prima elencare le regole in base ai numeri utilizzando il seguente comando.

sudo ufw status numbered
Uscita del campione
Status: active

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

Per eliminare la regola numero 1, utilizza 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 mostrato.

sudo ufw delete allow 22/tcp

Regole UFW di prova

Puoi eseguire qualsiasi comando ufw senza apportare alcuna modifica al firewall di sistema utilizzando il flag --dry-run, questo mostra semplicemente le modifiche che dovrebbero verificarsi.

sudo ufw --dry-run enable

Reimposta il firewall UFW

Per un motivo o per l'altro, se desideri eliminare/reimpostare tutte le regole del firewall, digita i seguenti comandi, annullerà tutte le modifiche e ricomincerà da capo.

sudo ufw reset
sudo ufw status

Funzionalità avanzate UFW

Il firewall UFW può fare tutto ciò che fa iptables. Questo può essere fatto con diversi set di file di regole, che non sono altro che semplici file di testo iptables-restore.

La regolazione del firewall UFW o l'aggiunta di ulteriori comandi iptables non sono consentiti tramite il comando ufw, è solo questione di modificare i 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 l'aggiunta 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.

Questo è tutto! UFW è un eccellente front-end per iptables con un'interfaccia intuitiva per definire regole complesse con un singolo comando ufw.

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