Proteggere Raspberry Pi con firewall

Proteggere Raspberry Pi con firewall

Se vuoi eseguire una sorta di software server sul tuo Raspberry Pi (i.e., Web Server, Database Server, MineCraft Server) e renderli pubblicamente disponibili su Internet (hosting), quindi proteggere il server Raspberry Pi con un programma firewall è molto importante.

Ci sono molti programmi di firewall gratuiti e open source disponibili sul sistema operativo Raspberry Pi (il sistema operativo ufficiale dei computer a bordo singola Raspberry PI). Tra questi programmi, UFW e Firewalld sono i programmi di 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 impostare il tuo Raspberry Pi in modalità Headless:

  1. Un computer a bordo a tavola Raspberry Pi 3 o Raspberry Pi 4.
  2. Un adattatore di alimentazione Micro-USB (Raspberry Pi 3) o USB Type-C (Raspberry PI 4).
  3. Una scheda microSD da 16 GB o 32 GB con sistema operativo Raspberry Pi lampeggiato.
  4. Connettività di rete su Raspberry Pi.
  5. Un laptop o un computer desktop per l'accesso al desktop remoto VNC o l'accesso SSH a Raspberry Pi.

Se non vuoi impostare il tuo Raspberry Pi 4 in modalità Headless, avrai anche bisogno di:

  1. Un monitor
  2. Un cavo HDMI o Micro-HDMI
  3. Una tastiera
  4. Un topo.

Se hai bisogno di assistenza sul flashing dell'immagine del sistema operativo Raspberry Pi sulla scheda MicroSD, controlla il mio articolo come installare e utilizzare Raspberry Pi Imager.

Se sei un principiante di Raspberry Pi e hai bisogno di assistenza sull'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 senza testa 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:

Mentre 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, eseguire il seguente comando:

$ sudo apt fullupgrade


Per confermare l'installazione degli aggiornamenti, premere Y e poi premere <accedere>.


Il gestore dei 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.

Per avere effetto le modifiche, riavviare il tuo Raspberry Pi con il seguente comando:

$ sudo riavvia

Installazione di UFW - firewall semplice:

Una volta che i tuoi stivali Raspberry Pi, puoi installare il programma Firewall UFW con il seguente comando:

$ sudo apt install ufw -y


UFW dovrebbe essere installato.


Per avere effetto le modifiche, riavviare il tuo Raspberry Pi con il seguente comando:

$ sudo riavvia


Una volta i tuoi stivali di lampone, il ufw Il servizio SystemD dovrebbe essere attivo, come puoi vedere nello screenshot seguente.

$ sudo systemctl status ufw


Puoi verificare se UFW è abilitato con il seguente comando:

$ sudo ufw status


Come puoi vedere, UFW non è abilitato per impostazione predefinita.


Per abilitare UFW, eseguire il seguente comando:

$ sudo ufw abilita


Come puoi vedere, UFW è ora abilitato.

$ sudo ufw status

Consentire l'accesso alle porte utilizzando i profili delle app:

UFW ha alcuni profili di app predefiniti. Ognuno dei profili di app ha alcune porte predefinite a cui è possibile consentire/negare l'accesso.

Per elencare tutti i profili di app disponibili, eseguire il comando seguente:

$ sudo UFW Elenco delle app


Tutti i profili di app installati dovrebbero essere elencati.

Se sei connesso al tuo Raspberry Pi tramite SSH o VNC (come me), devi consentire l'accesso al OpenSSH E Vnc profili di app. Altrimenti, la prossima volta che avvia il tuo Raspberry Pi, non sarai in grado di accedervi in ​​remoto poiché il firewall bloccherà tutte le porte, comprese le porte SSH e VNC. Quindi, questo è molto importante.


Puoi vedere quali porte sono definite in un profilo dell'app (i.e., OpenSSH) con il seguente comando:

$ sudo ufw app informazioni opensssh


Come potete vedere, Porta TCP 22 è definito nel profilo dell'app OpenSSH.


Allo stesso modo, il Porta TCP 5900 è definito in Vnc Profilo app.

$ sudo UFW App Info Vnc


Per consentire l'accesso alle porte definite in Vnc Profilo app, eseguire il seguente comando:

$ sudo UFW Consenti VNC


Come puoi vedere, il Vnc Il profilo dell'app è consentito tramite il firewall.

$ sudo ufw stato numerato


Allo stesso modo, consentire l'accesso alle porte definite in OpenSSH Profilo app con il seguente comando:

$ sudo ufw Consenti opensssh


Come puoi vedere, il OpenSSH Il profilo dell'app è consentito tramite il firewall.

$ sudo ufw stato numerato

Consentendo 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 alcun profilo di app disponibile. Quindi, dovrai consentire/negare l'accesso a queste porte utilizzando il numero di porta.

Ad esempio, puoi consentire l'accesso al Porta TCP 8080 con il seguente comando:

$ sudo UFW Consenti 8080/TCP


Come puoi vedere, il Porta TCP 8080 è consentito l'accesso tramite il firewall.

$ sudo ufw stato numerato


Allo stesso modo, puoi consentire l'accesso al Porta UDP 8888 con il seguente comando:

$ sudo UFW Consenti 8888/UDP


Come puoi vedere, il Porta UDP 8888 è consentito l'accesso tramite il firewall.

$ sudo ufw stato numerato

Negare l'accesso alle porte:

Il comportamento predefinito del programma UFW Firewall è quello di negare tutto ciò che non è consentito. Quindi, non è necessario fare nulla per negare l'accesso a qualsiasi porte.

Per motivi di concorrenza, ti mostrerò come negare i porti in UFW.

Ad esempio, per negare l'accesso al Porta TCP 9900, Esegui il seguente comando:

$ sudo UFW Deny 9900/TCP


Come puoi vedere, il Porta TCP 9900 viene negato l'accesso tramite il firewall.

$ sudo ufw stato numerato


Allo stesso modo, puoi negare le porte definite in un profilo dell'app (i.e., Www) come segue:

$ sudo ufw nega www

Negare l'accesso specifico per gli indirizzi IP al server:

A volte potrebbe essere necessario negare l'accesso a un indirizzo IP specifico o una sottorete IP per proteggere il tuo server Raspberry PI dagli attacchi DDOS (Distributed Denial of Service). Puoi farlo con UFW.

Per sperimentare con negando gli indirizzi IP, utilizzerò Apache Webserver.

È possibile installare il server Web Apache sul tuo Raspberry Pi con il seguente comando:

$ sudo apt install apache2


Per confermare l'installazione, premere Y e poi premere <accedere>.


Il gestore dei 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 indice con il seguente comando:

$ eco "

Benvenuti in Linuxhint

"| Sudo tee/var/www/html/indice.html


IL Apache2 Il servizio SystemD dovrebbe essere in esecuzione, come puoi vedere nello screenshot seguente.

$ sudo systemctl status apache2


Consenti l'accesso alla porta del server Web Apache (Porta TCP 80) Utilizzo del profilo dell'app Www come segue:

$ sudo ufw Consenti www


Come puoi vedere, le porte definite nel profilo dell'app Www è consentito l'accesso tramite il firewall.


Trova l'indirizzo IP del tuo Raspberry Pi con il seguente comando:

$ hostname -i


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 da ora in poi.


Dovresti accedere al server Web di Apache da altri dispositivi, come puoi vedere nello screenshot seguente.


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 server Raspberry Pi, è necessario aggiungere la regola del firewall nella parte superiore (posizione 1). L'ordine delle regole UFW conta molto. Le regole più restrittive dovrebbero andare prima.

$ sudo ufw stato numerato


Per negare l'indirizzo IP 192.168.0.109 Accesso al server Raspberry Pi, eseguire il seguente comando:

$ sudo ufw insert 1 nega da 192.168.0.109 a qualsiasi


La regola UFW per negare l'indirizzo IP 192.168.0.109 L'accesso al server Raspberry Pi dovrebbe essere la regola più in alto, come mostrato nello screenshot seguente.

$ sudo ufw stato numerato


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.


Ma puoi accedere al server Web Apache in esecuzione sul tuo Raspberry Pi da altri computer.


Se si desidera negare l'accesso a una sottorete IP, è necessario aggiungere la regola UFW richiesta prima della regola che hai aggiunto in precedenza, in quanto è una regola più restrittiva.

$ sudo ufw stato numerato


Ad esempio, per negare l'accesso a ogni computer in una sottorete IP 192.168.20.0/24, Esegui il seguente comando:

$ sudo ufw insert 1 nega da 192.168.20.0/24 a qualsiasi


La regola UFW deve essere aggiunta nella posizione corretta, come mostrato nello screenshot seguente. Ora, nessun computer dalla sottorete IP 192.168.20.0/24 dovrebbe essere in grado di accedere al server Raspberry Pi.

$ sudo ufw stato numerato

Rimozione delle regole UFW:

A volte, potrebbe essere necessario rimuovere alcune regole UFW. È molto facile farlo.

È possibile elencare tutte le regole UFW disponibili con il seguente comando:

$ sudo ufw stato numerato


Tutte le regole UFW disponibili dovrebbero essere elencate. Diciamo che vuoi rimuovere la regola UFW numero 10 (regola alla decima posizione).


Per rimuovere la regola UFW numero 10, eseguire il comando seguente:

$ sudo ufw elimina 10


Per confermare il funzionamento rimuovi, premere Y e poi premere <accedere>.


La regola UFW numero 10 deve essere rimossa.


Come puoi vedere, la regola UFW viene rimossa e le regole vengono riordinate (la regola UFW che era nella posizione 11 è ora in posizione 10).

$ sudo ufw stato numerato

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 usando il programma Firewall UFW. Ti ho mostrato come negare a un indirizzo IP specifico o a una sottorete IP di accedere a Raspberry Pi utilizzando anche il programma UFW Firewall.