Ricerca nel sito web

Come installare e configurare UFW: un firewall semplice in Debian/Ubuntu


Poiché i computer sono collegati tra loro, i servizi crescono rapidamente. E-mail, Social Media, Negozio online, Chat fino alle Web Conferencing sono servizi che utilizzato dall'utente. Ma d'altra parte questa connettività è proprio come un coltello a doppia faccia. È anche possibile inviare messaggi dannosi a quei computer come virus, malware, trojan-apps sono uno di questi.

Internet, in quanto la più grande rete di computer, non è sempre piena di brave persone. Per garantire che i nostri computer/server siano sicuri, dobbiamo proteggerli.

Uno dei componenti indispensabili sul tuo computer/server è il Firewall. Da Wikipedia, una definizione è:

Nell'informatica, un firewall è un sistema di sicurezza di rete basato su software o hardware che controlla il traffico di rete in entrata e in uscita analizzando i pacchetti di dati e determinando se devono essere consentiti o meno, in base al set di regole applicate.

Iptables è uno dei firewall ampiamente utilizzato dai server. È un programma utilizzato per gestire il traffico in entrata e in uscita nel server in base a una serie di regole. In genere, solo le connessioni attendibili possono accedere al server. Ma IPTables funziona in modalità console ed è complicato. Coloro che hanno familiarità con le regole e i comandi di iptables possono leggere il seguente articolo che descrive come utilizzare il firewall iptables.

  1. Guida di base a IPTables (firewall Linux).

Installazione del firewall UFW in Debian/Ubuntu

Per ridurre la complessità delle procedure per l'impostazione di IPTables, ci sono molte cose da fare. Se utilizzi Ubuntu Linux, troverai ufw come strumento firewall predefinito. Iniziamo ad esplorare il firewall ufw.

Cos'è ufw

ufw (Uncomplicated Firewall) è un frontend per il firewall iptables più utilizzato ed è molto comodo per i firewall basati su host. ufw fornisce una struttura per la gestione di netfilter, oltre a fornire un'interfaccia a riga di comando per il controllo del firewall. Fornisce un'interfaccia intuitiva e facile da usare per i principianti di Linux che non hanno molta familiarità con i concetti di firewall.

Mentre, dall'altro lato, gli stessi comandi complicati aiutano gli amministratori a impostare regole complicate utilizzando l'interfaccia della riga di comando. L'ufw è un upstream per altre distribuzioni come Debian, Ubuntu e Linux Mint.

Utilizzo di base ufw

Innanzitutto, controlla se ufw è installato utilizzando il seguente comando.

sudo dpkg --get-selections | grep ufw

ufw 		install

Se non è installato, puoi installarlo utilizzando il comando apt come mostrato di seguito.

sudo apt-get install ufw

Prima dell'uso, dovresti controllare se ufw è in esecuzione o meno. Utilizzare il comando seguente per verificarlo.

sudo ufw status

Se trovi Stato: inattivo, significa che non è attivo o è disabilitato.

NOVITÀ! Un ebook indispensabile per ogni amministratore Linux!

Scarica l'eBook gratuito da 696 pagine

Abilitare/Disabilitare ufw

Per abilitarlo è sufficiente digitare il seguente comando sul terminale.

sudo ufw enable

Firewall is active and enabled on system startup

Per disabilitarlo basta digitare.

sudo ufw disable

Elenca le attuali regole ufw

Dopo che il firewall è attivato puoi aggiungervi le tue regole. Se vuoi vedere quali sono le regole predefinite, puoi digitare.

sudo ufw status verbose
Uscita del campione
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$

Come aggiungere regole ufw

Come vedi, per impostazione predefinita ogni connessione in entrata viene negata. Se desideri remotare la tua macchina, devi consentire la porta corretta. Ad esempio, vuoi consentire la connessione ssh. Ecco il comando per consentirlo.

Consentire l'accesso
sudo ufw allow ssh

[sudo] password for pungki :
Rule added
Rule added (v6)
$

Se controlli di nuovo lo stato, vedrai un output come questo.

sudo ufw status

To 		Action 			From
-- 		----------- 		------
22 		ALLOW 			Anywhere
22 		ALLOW 			Anywhere (v6)

Se hai molte regole e vuoi mettere dei numeri su ogni regola al volo, usa il parametro numerato.

sudo ufw status numbered

To 		Action 			From
------ 		----------- 		------
[1] 22 		ALLOW 			Anywhere
[2] 22 		ALLOW 			Anywhere (v6)

La prima regola dice che è consentita la connessione in entrata alla porta 22 da Anywhere, sia pacchetti tcp che udp. Cosa succede se desideri consentire solo i pacchetti tcp? Successivamente puoi aggiungere il parametro tcp dopo il numero di porta. Ecco un esempio con un output di esempio.

sudo ufw allow ssh/tcp

To 		Action 			From
------ 		----------- 		------
22/tcp 		ALLOW 			Anywhere
22/tcp 		ALLOW 			Anywhere (v6)
Negare l'accesso

Gli stessi trucchi vengono applicati alla regola Nega. Supponiamo che tu voglia negare la regola ftp. Quindi devi solo digitare.

sudo ufw deny ftp

To 		Action 			From
------ 		----------- 		------
21/tcp 		DENY 			Anywhere
21/tcp 		DENY 			Anywhere (v6)

Aggiunta di una porta specifica

A volte abbiamo una porta personalizzata che non segue alcuno standard. Diciamo di cambiare la porta ssh sulla nostra macchina da 22 a 2290. Quindi per consentire la porta 2290, possiamo aggiungerla in questo modo.

sudo ufw allow

To 		Action 			From
-- 		----------- 		------
2290 		ALLOW 			Anywhere
2290 		ALLOW 			Anywhere (v6)

È anche possibile aggiungere port-range alla regola. Se vogliamo aprire la porta da 22902300 con il protocollo tcp, allora il comando sarà così.

sudo ufw allow 2290:2300/tcp

To 			Action 			From
------ 			----------- 		------
2290:2300/tcp 		ALLOW 			Anywhere
2290:2300/tcp 		ALLOW			Anywhere (v6)

mentre se vuoi usare udp, basta usare il seguente comando.

sudo ufw allow 2290:2300/udp

To 			Action 			From
------ 			----------- 		------
2290:2300/udp 		ALLOW 			Anywhere
2290:2300/udp 		ALLOW			Anywhere (v6)

Ricorda che devi inserire esplicitamente "tcp" o "udp" altrimenti riceverai un messaggio di errore simile al seguente.

ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports

Aggiunta di IP specifico

In precedenza abbiamo aggiunto regole basate sul servizio o sulla porta. Ufw ti consente anche di aggiungere regole basate sull'indirizzo IP. Ecco il comando di esempio.

sudo ufw allow from 192.168.0.104

Puoi anche utilizzare una maschera di sottorete per ampliare l'intervallo.

sudo ufw allow form 192.168.0.0/24

To 		Action 			From
-- 		----------- 		------
Anywhere	ALLOW 			192.168.0.104
Anywhere	ALLOW 			192.168.0.0/24

Come puoi vedere, il parametro from limiterà solo la fonte della connessione. Mentre la destinazione, rappresentata dalla colonna A, è Ovunque. Puoi anche gestire la destinazione utilizzando il parametro "A". Vediamo l'esempio per consentire l'accesso alla porta 22 (ssh).

sudo ufw allow to any port 22

Il comando precedente consentirà l'accesso da qualsiasi luogo e da qualsiasi protocollo alla porta 22.

Combinazione di parametri

Per regole più specifiche, puoi anche combinare indirizzo IP, protocollo e porta. Diciamo che vogliamo creare una regola che limiti la connessione solo dall'IP 192.168.0.104, solo protocollo tcp e alla porta 22. Quindi il comando sarà come di seguito.

sudo ufw allow from 192.168.0.104 proto tcp to any port 22

La sintassi per creare la regola di negazione è simile alla regola di autorizzazione. Devi solo modificare il parametro da consenti a nega.

Eliminazione di regole

A volte potresti dover eliminare la regola esistente. Ancora una volta con ufw è facile eliminare le regole. Dall'esempio sopra, hai una regola qui sotto e vuoi eliminarla.

To 		Action 			From
-- 		----------- 		------
22/tcp		ALLOW 			192.168.0.104
21/tcp		ALLOW 			Anywhere
21/tcp 		ALLOW 			Anywhere (v6)

Esistono due metodi per eliminare le regole.

Metodo 1

Il comando seguente eliminerà le regole che corrispondono al servizio ftp. Quindi la 21/tcp che significa la porta ftp verrà eliminata.

sudo ufw delete allow ftp
Metodo 2

Ma quando hai provato a eliminare la prima regola nell'esempio sopra usando il comando seguente.

sudo ufw delete allow ssh

Or 

sudo ufw delete allow 22/tcp

Potresti trovare un messaggio di errore come.

Could not delete non-existent rule
Could not delete non-existent rule (v6)

Allora puoi fare questo trucco. Come accennato in precedenza, puoi mostrare il numero di regola per indicare quale regola vogliamo eliminare. Lascia che te lo mostriamo.

sudo ufw status numbered

To 		Action 			From
-- 		----------- 		------
[1] 22/tcp		ALLOW 			192.168.0.104
[2] 21/tcp		ALLOW 			Anywhere
[3] 21/tcp 		ALLOW 			Anywhere (v6)

Quindi puoi eliminare la prima regola utilizzando. Premi "Y" per eliminare definitivamente la regola.

sudo ufw delete 1

Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y

Da questi metodi vedrai la differenza. Il metodo 2 chiederà la conferma dell'utente prima di eliminare la regola, mentre il metodo 1 no.

Come reimpostare le regole

In alcune situazioni, potresti voler eliminare/reimpostare tutte le regole. Puoi farlo digitando.

sudo ufw reset

Resetting all rules to installed defaults. Proceed with operation (y|n)? y

Se premi "y", ufw eseguirà il backup di tutte le regole esistenti prima di ripristinare il tuo ufw. La reimpostazione delle regole disabiliterà anche il firewall. È necessario abilitarlo nuovamente se si desidera utilizzarlo.

Funzionalità avanzate

Come ho affermato sopra, il firewall ufw può fare tutto ciò che può fare iptables. Ciò si ottiene utilizzando vari set di file di regole, che non sono altro che file di testo iptables-restore appropriati. La regolazione fine di ufw e/o l'inserimento di comandi iptables aggiuntivi non consentiti tramite il comando ufw è una questione di modifica di diversi file di testo.

  1. /etc/default/ufw: la configurazione principale per le policy predefinite, il supporto IPv6 e i moduli del kernel.
  2. /etc/ufw/before[6].rules: le regole in questi file vengono calcolate prima di qualsiasi regola aggiunta tramite il comando ufw.
  3. /etc/ufw/after[6].rules: le regole in questi file vengono calcolate dopo qualsiasi regola aggiunta tramite il comando ufw.
  4. /etc/ufw/sysctl.conf: parametri sintonizzabili di rete del kernel.
  5. /etc/ufw/ufw.conf: imposta se ufw è abilitato o meno all'avvio e imposta LOGLEVEL.

Conclusione

UFW come front-end per iptables costituisce sicuramente un'interfaccia semplice per l'utente. L'utente non ha bisogno di ricordare la complicata sintassi di iptables. UFW utilizza anche "plain english" come parametro.

Consenti, nega, reimposta sono alcuni di questi. Credo che ci siano molti altri front-end per iptables là fuori. Ma sicuramente ufw è una delle migliori alternative per gli utenti che desiderano configurare il proprio firewall in modo rapido, semplice e ovviamente sicuro. Per favore visita la pagina manuale di ufw digitando man ufw per maggiori dettagli.