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/