Redis è benefico per molte cose, una delle quali è la memorizzazione nella cache. Puoi anche utilizzare Redis come archivio dati principale o addirittura come sostituto per un database. Ma come esegui un’installazione sicura di Redis? Installare Redis può essere un fastidio e, se non sei attento, potresti finire con molti errori. Fortunatamente per te, questo tutorial ti copre.
In questo tutorial, imparerai come installare Redis in modo sicuro sul tuo sistema Linux, insieme a alcuni suggerimenti per evitare errori comuni.
Continua a leggere e risparmia i mal di testa dalla risoluzione degli errori durante l’installazione di Redis!
Prerequisiti
Questo tutorial sarà una dimostrazione pratica. Se desideri seguirla, assicurati di avere quanto segue:
- Una macchina Ubuntu 20.04 LTS – Questo tutorial utilizza Ubuntu 20.04 LTS, ma le istruzioni sono simili per la maggior parte delle distribuzioni Linux.
- Privilegi di root o un utente non-root con
privilegi sudo
Installazione di Redis con il gestore dei pacchetti APT
Ci sono diversi modi per installare Redis su Ubuntu, ma per questo tutorial, userai il gestore di pacchetti APT per installare Redis.
Redis è scritto in C, quindi dovrai compilare Redis manualmente dal suo codice sorgente. Sarà necessario installare diverse dipendenze e il processo di compilazione non è esattamente alla prova degli errori.
Compilare Redis da sorgenti non è consigliato, ma il vantaggio è che puoi personalizzare la tua installazione se lo desideri. Scarichi il codice sorgente, quindi lo configurate manualmente.
Apri il tuo terminale e esegui il comando apt update
qui sotto per assicurarti di avere le ultime liste di pacchetti.

Ora, esegui il comando apt install
qui sotto per installare Redis sulla tua macchina.
Il comando sottostante utilizza il gestore di pacchetti apt
per scaricare e installare il pacchetto redis-server
dai repository di Ubuntu sulla tua macchina. Il flag -y
dice a apt
di accettare automaticamente le richieste durante il processo di installazione.

Configurare il file Redis.conf per eseguire Redis come servizio
Hai appena installato Redis, ma non è ancora pronto per l’uso. Prima di poter iniziare a utilizzare Redis, dovrai prima configurare il file redis.conf.
Il file di configurazione redis.conf è incluso nel pacchetto Redis che hai installato e viene memorizzato nella directory /etc/redis/ per impostazione predefinita. Questo file contiene tutte le opzioni di configurazione per Redis.
L’estensione del file .conf è logica, poiché segue uno schema convenzionale. Moltri altri programmi utilizzano lo stesso stile. Ad esempio, il server web Apache utilizza l’estensione di file .conf per il suo file di configurazione principale.
1. Esegui il seguente comando systemctl
per stop
il servizio redis-server
. Fermare il servizio Redis è una pratica consigliata quando si inizia ad utilizzarlo.
2. Successivamente, apri il file /etc/redis/redis.conf nel tuo editor di testo preferito.
Trova la direttiva supervised, quindi impostala su systemd, come mostrato di seguito, e salva le modifiche. In questo modo si indica al sistema operativo di eseguire Redis come un servizio.

3. Ora, esegui il comando systemctl restart
qui sotto per riavviare il servizio Redis (redis.service
) poiché il servizio Redis non è a conoscenza delle modifiche effettuate.
4. Infine, esegui il comando systemctl status
qui sotto per verificare se Redis è in esecuzione.
Come puoi vedere qui sotto, l’output mostra che il servizio Redis è in esecuzione.

Testare se il Server Redis Funziona Correttamente
Hai configurato e verificato che il servizio Redis sia attivamente in esecuzione, ma ciò non significa che il server Redis funzioni correttamente. Come testare se il server Redis funziona correttamente? Connettiti al server Redis e invia comandi per vedere se il server risponde.
1. Esegui il comando redis-cli
qui sotto per connetterti al server Redis. redis-cli
è l’interfaccia a riga di comando per Redis, che ti consente di inviare comandi al server e ispezionarne lo stato.
Di seguito, puoi vedere che ti trovi nel prompt del server Redis (127.0.0.1:6379>). Il comando redis-cli
cerca di connettersi a un server Redis a 127.0.0.1:6379
per impostazione predefinita.

2. Successivamente, esegui il comando ping
qui sotto per verificare se il server Redis è raggiungibile.
Come puoi vedere, il server ha restituito PONG, il che indica che il server Redis è raggiungibile e può ora comunicare con successo con il servizio.

Forse sei ancora scettico; esegui il comando set
di seguito. Il comando set
è un comando Redis che imposta una coppia chiave-valore in un database.
Come puoi vedere, il comando set restituisce “OK,” il che indica che il servizio Redis funziona correttamente.

3. Esegui il comando exit
di seguito per uscire da redis-cli
. In questo modo si chiude la connessione al server Redis.
Vinculare il server Redis a Localhost
Hai appena verificato che il server Redis funziona correttamente, ma potrebbe essere accessibile anche da altri dispositivi sulla tua rete. Questo comportamento non è desiderabile, e di solito vuoi proteggere il tuo server Redis dagli estranei.
Vinculare il server Redis a localhost imposta un comportamento che consente solo alla macchina su cui hai installato Redis di accedere al server Redis.
1. Apri il file /etc/redis/redis.conf nel tuo editor di testo.
2. Trova la riga che dice bind 127.0.0.1 ::1
e decommenta la riga eliminando il cancelletto (#
) all’inizio della riga.

3. Ora, esegui il comando di seguito per riavviare il servizio redis-server
.
4. Infine, esegui il seguente comando per verificare se il tuo server Redis è vincolato a localhost. Il comando netstat -lnp
elenca tutte le connessioni di rete attive, e la parte grep redis
filtra l’output alle linee che contengono “redis
.”
-lnp
sta per Local Name Protocol, un protocollo di rete utilizzato dai sistemi simili a UNIX per risolvere i nomi host negli indirizzi IP.
Puoi vedere qui sotto che il server Redis è ora in ascolto solo sull’interfaccia localhost (127.0.0.1:6379
). Riflettendo il cambiamento nel file di configurazione, puoi vedere che solo l’interfaccia localhost è elencata sotto le tue connessioni internet attive (tcp
).
Adesso, nessun altro dispositivo sulla tua rete può connettersi al server Redis.

Proteggere la Connessione al Server Redis con una Password
A questo punto, Redis non è impostato per richiedere agli utenti l’autenticazione con una password. Chiunque conosca l’indirizzo IP o il nome host del tuo server Redis potrebbe connettersi ad esso e modificare i suoi dati.
Come proteggi il tuo server Redis? Imposta una password per richiedere agli utenti l’autenticazione quando si connettono al tuo server Redis.
1. Riapri il file di configurazione redis.conf nel tuo editor di testo/codice.
2. Successivamente, imposta una password sicura con quanto segue:
- Cerca
requirepass foobared
sotto la sezioneSECURITY
. - Elimina il segno di cancelletto (
#
) all’inizio della riga. - Sostituisci
foobared
con una password sicura a tua scelta e salva le modifiche.

3. Esegui i seguenti comandi per riavviare e connetterti al tuo server Redis.
4. Ora, esegui il comando ping
per vedere se otterrai una risposta dal server.
Di seguito, puoi vedere un messaggio di errore che dice NOAUTH Autenticazione richiesta. Questo messaggio indica che hai bisogno di una password di autenticazione per accedere al tuo server Redis in remoto.

5. Esegui il comando auth
seguito dalla tua password per autenticare la tua connessione al server Redis.
Riceverai una risposta OK quando l’autenticazione avviene con successo, come quella qui sotto.

6. Infine, esegui nuovamente il comando ping
per verificare se hai autenticato la tua connessione al server Redis.
Ora riceverai la risposta PONG, come mostrato di seguito, dopo aver autenticato la tua connessione. A questo punto, hai protetto con successo il tuo server Redis con una password.

Disabilitare i Comandi Pericolosi per Proteggere il tuo Server Redis
Impostare una password per autenticare la connessione al tuo server Redis non significa ottenere una protezione al 100%. Per impostazione predefinita, Redis include diversi comandi pericolosi che consentono agli utenti di modificare i dati nel tuo database.
Quando eseguiti da utenti non autorizzati, questi comandi consentono agli intrusi di leggere, modificare, distruggere e persino eliminare i dati del tuo database Redis.
Di seguito non è riportato un elenco esaustivo in quanto il tuo server Redis potrebbe avere comandi pericolosi aggiuntivi, ma nella maggior parte dei casi, questi sono i comandi pericolosi:
Per proteggere ulteriormente il tuo server Redis, rinomina questi comandi pericolosi nel file redis.conf:
1. Apri il file redis.conf nel tuo editor di testo e cerca la sezione Rinominazione dei comandi.
Rinomina i comandi a una stringa vuota per disabilitarli seguendo la sintassi seguente. Sostituisci il-comando
con il comando effettivo da disabilitare.
Ad esempio, disabilita il comando CONFIG
rinominando CONFIG
a una stringa vuota, come mostrato di seguito, quindi salva le modifiche. Le virgolette doppie (“”) indicano una stringa vuota che significa disabilitare un comando.

CONFIG
command 2. Esci dall’editor di testo ed esegui il comando sottostante per riavviare il server Redis.
3. Ora esegui i seguenti comandi per connetterti al tuo server Redis.
4. Infine, esegui il comando config get
per verificare che il comando CONFIG
sia disabilitato.
Otterrai una risposta ERR comando sconosciuto config
, come mostrato di seguito, il che indica che il comando CONFIG
è disabilitato.

CONFIG
command Se il comando config get requirepass
riesce, richiede al tuo server Redis la password per autenticare la connessione al tuo server Redis.
Hai ora rinominato con successo un pericoloso comando Redis per proteggere il tuo server Redis. Ora continua a disabilitare altri comandi pericolosi nel file redis.conf.
Blocco delle richieste di connessione al server Redis con un firewall
Un altro modo per proteggere il tuo server Redis è configurare un firewall. La configurazione di un firewall richiede di consentire solo la porta richiesta per ciascuno dei servizi in esecuzione sul tuo server.
Ad esempio, se stai eseguendo Redis sul tuo server alla porta 6379
, allora quella porta è l’unica che devi aprire. Se hai bisogno di consentire l’accesso da un indirizzo IP specifico o da un intervallo di indirizzi, puoi aggiungere quegli indirizzi alle regole del firewall.
Per configurare un firewall, prima dovrai installare uno strumento di configurazione del firewall. In questo esempio viene utilizzato UFW, uno strumento di configurazione del firewall comunemente utilizzato su Linux. Ma puoi anche utilizzare un altro strumento, come iptables, per configurare un firewall.
1. Esegui il seguente comando per installare UFW sulla tua macchina.
2. Successivamente, esegui il comando sottostante per abilitare UFW.
Inserisci ‘Y’ quando ricevi il prompt mostrato di seguito per continuare l’esecuzione del comando.

3. Esegui il comando ufw
di seguito per aggiungere una regola, che consente (allow
) il traffico sulla porta 6379
per il tuo server Redis. Sostituisci l’indirizzo IP 11.22.33.44
con gli indirizzi IP dei tuoi utenti previsti.

6379
4. Infine, esegui il comando sottostante per verificare di aver aggiunto correttamente la regola del firewall. Il comando controlla lo status
del tuo firewall.
Puoi vedere nell’output sottostante che il firewall è attivo e ha la regola per consentire il traffico sulla porta 6379
per Redis dall’indirizzo IP 11.22.33.44
.

Ora, tutti gli utenti con l’indirizzo IP 11.22.33.44
possono connettersi a Redis tramite la porta 6379
e avranno bisogno di autenticarsi con una password. Puoi aggiungere porte aggiuntive per altri servizi in modo simile.
Conclusion
Attraverso questo tutorial, hai imparato come installare e proteggere il tuo server Redis rinominando i comandi pericolosi in stringhe vuote e configurando un firewall.
Con questa nuova conoscenza, puoi godere pienamente dei vantaggi di Redis senza preoccuparti di esporre il tuo server a rischi non necessari.
Vuoi saperne di più? Perché non inizi con proteggere un server Redis in Kubernetes?