Se vuoi eseguire un qualche tipo di software server sul tuo Raspberry Pi (i.e., server web, server database, server Minecraft) e renderli pubblicamente disponibili su Internet (hosting), quindi proteggere il tuo server Raspberry Pi con un programma firewall è molto importante.
Ci sono molti programmi firewall gratuiti e open source disponibili sul sistema operativo Raspberry Pi (il sistema operativo ufficiale dei computer a scheda singola Raspberry Pi). Tra questi programmi, UFW e Firewalld sono i programmi firewall più comuni.
In questo articolo, userò il programma firewall UFW per mostrarti come proteggere il tuo Raspberry Pi. Quindi iniziamo.
Cose di cui avrai bisogno:
Per seguire questo articolo, avrai bisogno delle seguenti cose per configurare il tuo Raspberry Pi in modalità headless:
- Un computer a scheda singola Raspberry Pi 3 o Raspberry Pi 4.
- Un adattatore di alimentazione micro-USB (Raspberry Pi 3) o USB Type-C (Raspberry Pi 4).
- Una scheda microSD da 16 GB o 32 GB con sistema operativo Raspberry Pi lampeggia.
- Connettività di rete sul Raspberry Pi.
- Un laptop o un computer desktop per l'accesso al desktop remoto VNC o l'accesso SSH al Raspberry Pi.
Se non vuoi configurare il tuo Raspberry Pi 4 in modalità headless, avrai anche bisogno di:
- un monitor
- Un cavo HDMI o micro-HDMI
- Una tastiera
- Un topo.
Se hai bisogno di assistenza per eseguire il flashing dell'immagine del sistema operativo Raspberry Pi sulla scheda microSD, consulta il mio articolo Come installare e utilizzare Raspberry Pi Imager.
Se sei un principiante di Raspberry Pi e hai bisogno di assistenza per l'installazione del sistema operativo Raspberry Pi sul tuo Raspberry Pi, controlla il mio articolo Come installare il sistema operativo Raspberry Pi su Raspberry Pi 4.
Se hai bisogno di assistenza sulla configurazione headless di Raspberry Pi, controlla il mio articolo Come installare e configurare il sistema operativo Raspberry Pi su Raspberry Pi 4 senza monitor esterno.
Aggiornamento del sistema operativo Raspberry Pi:
Poiché stiamo cercando di proteggere il nostro Raspberry Pi, è una buona idea aggiornare tutti i pacchetti esistenti del sistema operativo Raspberry Pi. Ciò renderà il tuo sistema operativo Raspberry Pi più sicuro perché installerebbe tutti gli ultimi aggiornamenti di sicurezza e correzioni di bug.
Innanzitutto, aggiorna la cache del repository del pacchetto APT con il seguente comando:
$ sudo apt update
Per aggiornare tutti i pacchetti esistenti del tuo sistema operativo Raspberry Pi, esegui il seguente comando:
Per confermare l'installazione degli aggiornamenti, premere sì e poi premere <accedere>.
Il gestore di pacchetti APT scaricherà tutti i pacchetti richiesti da Internet. Potrebbe volerci un po' di tempo per completare.
Una volta scaricati i pacchetti, il gestore di pacchetti APT li installerà uno per uno. Potrebbe volerci un po' di tempo per completare.
A questo punto, tutti gli aggiornamenti dovrebbero essere installati.
Affinché le modifiche abbiano effetto, riavvia il tuo Raspberry Pi con il seguente comando:
$ sudo reboot
Installazione di UFW - Firewall semplice:
Una volta avviato il Raspberry Pi, puoi installare il programma firewall UFW con il seguente comando:
$ sudo apt install ufw -y
UFW dovrebbe essere installato.
Affinché le modifiche abbiano effetto, riavvia il tuo Raspberry Pi con il seguente comando:
Una volta che il tuo Raspberry Pi si avvia, il ufw il servizio systemd dovrebbe essere attivo, come puoi vedere nello screenshot qui sotto.
Puoi verificare se UFW è abilitato con il seguente comando:
Come puoi vedere, UFW non è abilitato per impostazione predefinita.
Per abilitare UFW, esegui il seguente comando:
Come puoi vedere, UFW è ora abilitato.
Consentire l'accesso alle porte utilizzando i profili delle app:
UFW ha alcuni profili di app predefiniti. Ciascuno dei profili dell'app ha alcune porte predefinite a cui è possibile consentire/negare l'accesso.
Per elencare tutti i profili delle app disponibili, esegui il seguente comando:
$ sudo ufw app list
Dovrebbero essere elencati tutti i profili delle app installate.
Se sei connesso al tuo Raspberry Pi tramite SSH o VNC (come me), devi consentire l'accesso al ApriSSH e VNC profili dell'app. Altrimenti, la prossima volta che avvii il tuo Raspberry Pi, non sarai in grado di accedervi da remoto poiché il firewall bloccherà tutte le porte, comprese le porte SSH e VNC. Quindi, questo è molto importante.
Puoi vedere quali porte sono definite nel profilo di un'app (i.e., ApriSSH) con il seguente comando:
Come potete vedere, Porta TCP 22 è definito nel profilo dell'app ApriSSH.
Allo stesso modo, il Porta TCP 5900 è definito nel VNC profilo dell'app.
Per consentire l'accesso alle porte definite nel VNC profilo app, eseguire il comando seguente:
Come puoi vedere, il VNC il profilo dell'app è consentito attraverso il firewall.
Allo stesso modo, consentire l'accesso alle porte definite nel ApriSSH profilo dell'app con il seguente comando:
Come puoi vedere, il ApriSSH il profilo dell'app è consentito attraverso il firewall.
Consentire l'accesso alle porte utilizzando il numero di porta:
A volte, la porta a cui si desidera consentire/negare l'accesso non sarà definita in nessun profilo di app disponibile. Quindi, dovrai consentire/negare l'accesso a queste porte utilizzando il numero di porta.
Ad esempio, puoi consentire l'accesso a to Porta TCP 8080 con il seguente comando:
$ sudo ufw allow 8080/tcp
Come puoi vedere, il Porta TCP 8080 è consentito l'accesso attraverso il firewall.
Allo stesso modo, puoi consentire l'accesso al to Porta UDP 8888 con il seguente comando:
Come puoi vedere, il Porta UDP 8888 è consentito l'accesso attraverso il firewall.
Negare l'accesso alle porte:
Il comportamento predefinito del programma firewall UFW è negare tutto ciò che non è consentito. Quindi, non devi fare nulla per negare l'accesso a nessuna porta.
Per motivi di concorrenza, ti mostrerò comunque come negare i porti in UFW.
Ad esempio, per negare l'accesso al Porta TCP 9900, eseguire il seguente comando:
$ sudo ufw nega 9900/tcp
Come puoi vedere, il Porta TCP 9900 viene negato l'accesso attraverso il firewall.
Allo stesso modo, puoi negare le porte definite in un profilo app (i.e., WWW) come segue:
Negare l'accesso al server a indirizzi IP specifici:
A volte potrebbe essere necessario negare l'accesso a un indirizzo IP o a una sottorete IP specifici per proteggere il server Raspberry Pi dagli attacchi DDoS (Distributed Denial of Service). Puoi farlo con UFW.
Per provare a negare gli indirizzi IP, userò il server web Apache.
Puoi installare il server web Apache sul tuo Raspberry Pi con il seguente comando:
$ sudo apt install apache2
Per confermare l'installazione, premere sì e poi premere <accedere>.
Il gestore di pacchetti APT scaricherà tutti i pacchetti da Internet e li installerà uno per uno. Potrebbe volerci un po' di tempo per completare.
A questo punto, il server web Apache dovrebbe essere installato.
Una volta installato il server web Apache, crea una semplice pagina di indice con il seguente comando:
Benvenuto in LinuxHint
" | sudo tee /var/www/html/index.html
Il apache2 il servizio systemd dovrebbe essere in esecuzione, come puoi vedere nello screenshot qui sotto.
Consenti l'accesso alla porta del server web Apache (Porta TCP 80) utilizzando il profilo dell'app WWW come segue:
Come puoi vedere, le porte definite nel profilo dell'app WWW è consentito l'accesso attraverso il firewall.
Trova l'indirizzo IP del tuo Raspberry Pi con il seguente comando:
Come puoi vedere, l'indirizzo IP del mio Raspberry Pi è 192.168.0.106. Sarà diverso per te. Quindi, assicurati di sostituirlo con il tuo d'ora in poi.
Dovresti accedere al server web Apache da altri dispositivi, come puoi vedere nello screenshot qui sotto.
Il computer che sto utilizzando per accedere al server web Apache ha l'indirizzo IP 192.168.0.109.
Per negare l'indirizzo IP 192.168.0.109 accesso al tuo server Raspberry Pi, devi aggiungere la regola del firewall in alto (posizione 1). L'ordine delle regole UFW conta molto. Le regole più restrittive dovrebbero andare per prime.
Per negare l'indirizzo IP 192.168.0.109 accedere al server Raspberry Pi, eseguire il seguente comando:
La regola UFW per negare l'indirizzo IP 192.168.0.109 l'accesso al server Raspberry Pi dovrebbe essere la regola più importante, come mostrato nello screenshot qui sotto.
Non sarai in grado di accedere al server web Apache in esecuzione sul tuo Raspberry Pi dal computer con l'indirizzo IP 192.168.0.109 più, come puoi vedere nello screenshot qui sotto.
Tuttavia, puoi accedere al server web Apache in esecuzione sul tuo Raspberry Pi da altri computer.
Se vuoi negare l'accesso a una sottorete IP, devi aggiungere la regola UFW richiesta prima della regola che hai aggiunto in precedenza, poiché è una regola più restrittiva.
Ad esempio, per negare l'accesso a tutti i computer in una sottorete IP 192.168.20.0/24, eseguire il seguente comando:
La regola UFW dovrebbe essere aggiunta nella posizione corretta, come mostrato nello screenshot qui sotto. Ora, nessun computer dalla sottorete IP 192.168.20.0/24 dovrebbe essere in grado di accedere al tuo server Raspberry Pi.
Rimozione delle regole UFW:
A volte, potrebbe essere necessario rimuovere alcune regole UFW. È molto facile farlo.
Puoi elencare tutte le regole UFW disponibili con il seguente comando:
$ sudo ufw status numerato
Tutte le regole UFW disponibili dovrebbero essere elencate available. Supponiamo che tu voglia rimuovere la regola UFW numero 10 (regola alla decima posizione).
Per rimuovere la regola UFW numero 10, esegui il seguente comando:
Per confermare l'operazione di rimozione, premere sì e poi premere <accedere>.
La regola UFW numero 10 dovrebbe essere rimossa.
Come puoi vedere, la regola UFW viene rimossa e le regole vengono riordinate (la regola UFW che era in posizione 11 è ora in posizione 10).
Conclusione:
In questo articolo, ti ho mostrato come installare il programma firewall UFW sul tuo Raspberry Pi (eseguendo il sistema operativo Raspberry Pi). Ti ho anche mostrato come consentire/negare le porte utilizzando il programma firewall UFW. Ti ho mostrato come impedire a un indirizzo IP specifico o a una sottorete IP di accedere al Raspberry Pi utilizzando anche il programma firewall UFW.