GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare un firewall con UFW su Ubuntu 20.04

Un firewall è uno strumento per monitorare e filtrare il traffico di rete in entrata e in uscita. Funziona definendo un insieme di regole di sicurezza che determinano se consentire o bloccare un traffico specifico.

Ubuntu viene fornito con uno strumento di configurazione del firewall chiamato UFW (Uncomplicated Firewall). È un front-end intuitivo per la gestione delle regole del firewall iptables. Il suo obiettivo principale è rendere la gestione del firewall più semplice o, come dice il nome, semplice.

Questo articolo descrive come utilizzare lo strumento UFW per configurare e gestire un firewall su Ubuntu 20.04. Un firewall correttamente configurato è uno degli aspetti più importanti della sicurezza generale del sistema.

Prerequisiti #

Solo root o utenti con privilegi sudo possono gestire il firewall di sistema. La migliore pratica consiste nell'eseguire attività amministrative come utente sudo.

Installa UFW #

UFW fa parte dell'installazione standard di Ubuntu 20.04 e dovrebbe essere presente sul tuo sistema. Se per qualche motivo non è installato, puoi installare il pacchetto digitando:

sudo apt updatesudo apt install ufw

Verifica stato UFW #

UFW è disabilitato per impostazione predefinita. Puoi controllare lo stato del servizio UFW con il seguente comando:

sudo ufw status verbose

L'output mostrerà che lo stato del firewall è inattivo:

Status: inactive

Se UFW è attivato, l'output avrà un aspetto simile a quanto segue:

Politiche predefinite UFW #

Il comportamento predefinito del firewall UFW consiste nel bloccare tutto il traffico in entrata e in uscita e consentire tutto il traffico in uscita. Ciò significa che chiunque tenti di accedere al tuo server non sarà in grado di connettersi a meno che tu non apra specificamente la porta. Le applicazioni e i servizi in esecuzione sul tuo server potranno accedere al mondo esterno.

Le politiche predefinite sono definite in /etc/default/ufw file e può essere modificato modificando manualmente il file o con il sudo ufw default <policy> <chain> comando.

I criteri del firewall sono la base per la creazione di regole più complesse e definite dall'utente. In generale, le politiche predefinite UFW iniziali sono un buon punto di partenza.

Profili applicazione #

Un profilo dell'applicazione è un file di testo in formato INI che descrive il servizio e contiene le regole del firewall per il servizio. I profili delle applicazioni vengono creati in /etc/ufw/applications.d directory durante l'installazione del pacchetto.

Puoi elencare tutti i profili delle applicazioni disponibili sul tuo server digitando:

sudo ufw app list

A seconda dei pacchetti installati sul tuo sistema, l'output sarà simile al seguente:

Available applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

Per trovare ulteriori informazioni su un profilo specifico e sulle regole incluse, utilizza il comando seguente:

sudo ufw app info 'Nginx Full'

L'output mostra che il profilo "Nginx Full" apre le porte 80 e 443 .

Profile: Nginx Full
Title: Web Server (Nginx, HTTP + HTTPS)
Description: Small, but very powerful and efficient web server

Ports:
  80,443/tcp

Puoi anche creare profili personalizzati per le tue applicazioni.

Abilitazione UFW #

Se ti stai connettendo a Ubuntu da una posizione remota, prima di abilitare il firewall UFW, devi consentire esplicitamente le connessioni SSH in entrata. In caso contrario, non sarai più in grado di connetterti alla macchina.

Per configurare il firewall UFW per consentire le connessioni SSH in entrata, digita il seguente comando:

sudo ufw allow ssh
Rules updated
Rules updated (v6)

Se SSH è in esecuzione su una porta non standard, devi aprire quella porta.

Ad esempio, se il tuo demone ssh è in ascolto sulla porta 7722 , inserisci il seguente comando per consentire le connessioni su quella porta:

sudo ufw allow 7722/tcp

Ora che il firewall è configurato per consentire le connessioni SSH in entrata, puoi abilitarlo digitando:

sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup

Sarai avvisato che l'abilitazione del firewall potrebbe interrompere le connessioni ssh esistenti, basta digitare y e premi Enter .

Apertura porte #

A seconda delle applicazioni in esecuzione sul sistema, potrebbe essere necessario aprire anche altre porte. La sintassi generale per aprire una porta è la seguente:

ufw allow port_number/protocol

Di seguito sono riportati alcuni modi per consentire le connessioni HTTP.

La prima opzione consiste nell'usare il nome del servizio. UFW controlla il /etc/services file per la porta e il protocollo del servizio specificato:

sudo ufw allow http

Puoi anche specificare il numero di porta e il protocollo:

sudo ufw allow 80/tcp

Quando non viene fornito alcun protocollo, UFW crea regole per entrambi tcp e udp .

Un'altra opzione consiste nell'utilizzare il profilo dell'applicazione; in questo caso, 'Nginx HTTP':

sudo ufw allow 'Nginx HTTP'

UFW supporta anche un'altra sintassi per specificare il protocollo usando il proto parola chiave:

sudo ufw allow proto tcp to any port 80

Intervalli di porte #

UFW ti consente anche di aprire intervalli di porte. Le porte di inizio e fine sono separate da due punti (: ), e devi specificare il protocollo, tcp o udp .

Ad esempio, se desideri consentire le porte da 7100 a 7200 su entrambi tcp e udp , eseguiresti il ​​seguente comando:

sudo ufw allow 7100:7200/tcpsudo ufw allow 7100:7200/udp

Indirizzo IP specifico e numero di porta

Per consentire le connessioni su tutte le porte da un determinato IP sorgente, usa il from parola chiave seguita dall'indirizzo di origine.

Ecco un esempio di inserimento nella whitelist di un indirizzo IP:

sudo ufw allow from 64.63.62.61

Se desideri consentire all'indirizzo IP specificato di accedere solo a una porta specifica, utilizza il to any port parola chiave seguita dal numero di porta.

Ad esempio, per consentire l'accesso sulla porta 22 da una macchina con indirizzo IP 64.63.62.61 , inserisci:

sudo ufw allow from 64.63.62.61 to any port 22

Subnet #

La sintassi per consentire le connessioni a una sottorete di indirizzi IP è la stessa di quando si utilizza un singolo indirizzo IP. L'unica differenza è che devi specificare la netmask.

Di seguito è riportato un esempio che mostra come consentire l'accesso per indirizzi IP che vanno da 192.168.1.1 a 192.168.1.254 per portare 3360 (MySQL):

sudo ufw allow from 192.168.1.0/24 to any port 3306

Interfaccia di rete specifica #

Per consentire le connessioni su una particolare interfaccia di rete, usa il in on parola chiave seguita dal nome dell'interfaccia di rete:

sudo ufw allow in on eth2 to any port 3306

Negare connessioni #

Il criterio predefinito per tutte le connessioni in entrata è impostato su deny e, se non lo hai modificato, UFW bloccherà tutte le connessioni in entrata a meno che tu non apra specificamente la connessione.

Scrivere regole di negazione equivale a scrivere regole di autorizzazione; devi solo usare il deny parola chiave invece di allow .

Supponiamo che tu abbia aperto le porte 80 e 443 e il tuo server è sotto attacco da 23.24.25.0/24 Rete. Per negare tutte le connessioni da 23.24.25.0/24 eseguiresti il ​​seguente comando:

sudo ufw deny from 23.24.25.0/24

Ecco un esempio di negare l'accesso solo alle porte 80 e 443 da 23.24.25.0/24 puoi usare il seguente comando:

sudo ufw deny proto tcp from 23.24.25.0/24 to any port 80,443

Eliminazione delle regole UFW #

Esistono due modi diversi per eliminare le regole UFW in base al numero di regola e specificando la regola effettiva.

Eliminare le regole in base al numero di regola è più semplice, soprattutto quando sei nuovo in UFW. Per eliminare prima una regola in base a un numero di regola, devi trovare il numero della regola che desideri eliminare. Per ottenere un elenco di regole numerate, utilizza ufw status numbered comando:

sudo ufw status numbered
Status: active

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

Per eliminare la regola numero 3 , quello che consente le connessioni alla porta 8080 , dovresti inserire:

sudo ufw delete 3

Il secondo metodo consiste nell'eliminare una regola specificando la regola effettiva. Ad esempio, se hai aggiunto una regola per aprire la porta 8069 puoi eliminarlo con:

sudo ufw delete allow 8069

Disabilitazione UFW #

Se per qualsiasi motivo vuoi interrompere l'UFW e disattivare tutte le regole, puoi utilizzare:

sudo ufw disable

Successivamente, se vuoi riattivare UTF e attivare tutte le regole, digita semplicemente:

sudo ufw enable

Ripristino UFW #

Il ripristino di UFW disabiliterà UFW ed eliminerà tutte le regole attive. Questo è utile se vuoi annullare tutte le modifiche e ricominciare da capo.

Per reimpostare UFW, digita il seguente comando:

sudo ufw reset

Masquerading IP #

IP Masquerading è una variante di NAT (network address translation) nel kernel Linux che traduce il traffico di rete riscrivendo gli indirizzi IP e le porte di origine e destinazione. Con IP Masquerading, puoi consentire a una o più macchine in una rete privata di comunicare con Internet utilizzando una macchina Linux che funge da gateway.

La configurazione di IP Masquerading con UFW prevede diversi passaggi.

Innanzitutto, è necessario abilitare l'inoltro IP. Per farlo, apri il /etc/ufw/sysctl.conf file:

sudo nano /etc/ufw/sysctl.conf

Trova e decommenta la riga che legge net.ipv4.ip_forward = 1 :

/etc/ufw/sysctl.conf
net/ipv4/ip_forward=1

Successivamente, è necessario configurare UFW per consentire i pacchetti inoltrati. Apri il file di configurazione UFW:

sudo nano /etc/default/ufw

Individua il DEFAULT_FORWARD_POLICY e cambia il valore da DROP per ACCEPT :

/etc/default/ufw
DEFAULT_FORWARD_POLICY="ACCEPT"

Ora devi impostare la politica predefinita per il POSTROUTING catena nella nat tavola e la regola della mascherata. Per farlo, apri il /etc/ufw/before.rules archiviare e aggiungere le righe evidenziate in giallo, come mostrato di seguito:

sudo nano /etc/ufw/before.rules

Aggiungi le seguenti righe:

/etc/ufw/before.rules
#NAT table rules
*nat
:POSTROUTING ACCEPT [0:0]

# Forward traffic through eth0 - Change to public network interface
-A POSTROUTING -s 10.8.0.0/16 -o eth0 -j MASQUERADE

# don't delete the 'COMMIT' line or these rules won't be processed
COMMIT

Non dimenticare di sostituire eth0 nel -A POSTROUTING riga in modo che corrisponda al nome dell'interfaccia di rete pubblica:

Quando hai finito, salva e chiudi il file.

Infine, ricarica le regole UFW disabilitando e riattivando UFW:

sudo ufw disablesudo ufw enable

Ubuntu
  1. Come configurare UFW Firewall su Ubuntu 18.04

  2. Configura UFW Firewall su Ubuntu 18.04 - Metodo migliore?

  3. Come configurare un firewall con UFW in Ubuntu \ Debian

  4. Come configurare un firewall con UFW su Ubuntu 16.04

  5. Come configurare UFW Firewall su Ubuntu 18.04

Come installare UFW Firewall su Ubuntu 16.04 LTS

Come configurare UFW Firewall su Ubuntu 18.04 LTS

Come configurare UFW Firewall su Ubuntu 20.04 LTS

Come configurare il firewall con UFW su Ubuntu Linux

Come configurare un firewall con UFW su Debian 11

Come configurare UFW Firewall su Ubuntu 20.04