GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire un'installazione Redis sicura su Linux

Redis è utile per molte cose, una delle quali è la memorizzazione nella cache. Puoi anche utilizzare Redis come archivio dati principale o anche come sostituto di un database. Ma come si esegue un'installazione Redis sicura? Installare Redis può essere una seccatura e, se non stai attento, potresti ritrovarti con molti errori. Fortunatamente per te, questo tutorial ti ha coperto.

In questo tutorial imparerai come installare Redis in modo sicuro sul tuo sistema Linux, insieme ad alcuni suggerimenti per evitare errori comuni.

Continua a leggere e risparmia il mal di testa dalla risoluzione degli errori di installazione di Redis!

Prerequisiti

Questo tutorial sarà una dimostrazione pratica. Se desideri continuare, 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 utente non root con sudo privilegi

Installa Redis con APT Package Manager

Esistono alcuni modi per installare Redis su Ubuntu, ma per questo tutorial, utilizzerai il gestore di pacchetti APT per installare Redis.

Redis è scritto in C, quindi dovresti compilare manualmente Redis dal suo codice sorgente. Dovrebbero essere installate diverse dipendenze e il processo di compilazione non è esattamente infallibile.

La compilazione di Redis dal sorgente non è consigliata, ma il vantaggio è che puoi personalizzare la tua installazione se lo desideri. Scarichi il codice sorgente, quindi lo configuri manualmente.

Apri il tuo terminale ed esegui il apt update comando di seguito per assicurarti di avere gli elenchi di pacchetti più recenti.

sudo apt update -y

Ora esegui apt install comando seguente per installare Redis sul tuo computer.

Il comando seguente usa il apt gestore pacchetti per scaricare e installare redis-server pacchetto dai repository di Ubuntu sulla tua macchina. Il -y flag dice a apt per accettare automaticamente le richieste durante il processo di installazione.

sudo apt install redis-server -y

Configurazione del 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, devi prima configurare redis.conf file.

Il redis.conf il file di configurazione è incluso nel pacchetto Redis che hai installato ed è archiviato in /etc/redis/ directory per impostazione predefinita. Questo file contiene tutte le opzioni di configurazione per Redis.

L'estensione del file .conf è logica, poiché segue uno schema convenzionale. Molti altri programmi usano questo stesso stile. Il server Web Apache, ad esempio, utilizza l'estensione del file .conf come file di configurazione principale.

1. Esegui il seguente systemctl comando a stop il redis-server servizio. L'interruzione dell'esecuzione del servizio Redis è una pratica consigliata quando inizi a utilizzare Redis per la prima volta.

sudo systemctl stop redis.service

2. Quindi, apri /etc/redis/redis.conf file nel tuo editor di testo preferito.

Trova il supervisionato direttiva, quindi impostalo su systemd , come mostrato di seguito, e salvare le modifiche. In questo modo si dice al sistema operativo di eseguire Redis come servizio.

3. Ora esegui systemctl restart comando seguente per riavviare il servizio Redis (redis.service ) poiché il servizio Redis non è ancora a conoscenza delle modifiche.

sudo systemctl restart redis.service

4. Infine, esegui systemctl status comando di seguito per vedere se Redis è in esecuzione.

sudo systemctl status redis.service

Come puoi vedere di seguito, l'output mostra che il servizio Redis è in esecuzione.

Verifica del corretto funzionamento del server Redis

Hai configurato e verificato che il servizio Redis sia attivamente in esecuzione, ma ciò non significa che il server Redis funzioni. Come verificare se il server Redis funziona correttamente? Connettiti al server Redis e invia comandi per vedere se il server risponde.

1. Esegui redis-cli comando seguente per connettersi al server Redis. redis-cli è l'interfaccia della riga di comando per Redis, che consente di inviare comandi al server e di ispezionarne lo stato.

redis-cli

Di seguito, puoi dire che sei nel prompt del server Redis (127.0.0.1:6379> ). Il redis-cli comando tenta di connettersi a un server Redis in 127.0.0.1:6379 per impostazione predefinita.

2. Quindi, esegui ping comando seguente per verificare se il server Redis è raggiungibile.

ping

Come puoi vedere, il server ha restituito PONG , che indica che il server Redis è raggiungibile e che ora può comunicare correttamente con il servizio.

Forse sei ancora scettico; esegui il set comando qui sotto. Il set command è un comando Redis che imposta una coppia chiave-valore in un database.

set test "This is a test"

Come puoi vedere, il comando set restituisce "OK ”, che indica che il servizio Redis funziona correttamente.

3. Esegui exit comando seguente per uscire da redis-cli . In questo modo si chiude la connessione al server Redis.

exit

Collegamento del server Redis a Localhost

Hai appena verificato che il server Redis funzioni correttamente, ma potrebbe essere accessibile anche da altri dispositivi sulla tua rete. Questo comportamento è indesiderabile e in genere vorresti proteggere il tuo server Redis da estranei.

L'associazione del server Redis a localhost imposta un comportamento che solo la macchina su cui hai installato Redis può accedere al server Redis.

1. Apri /etc/redis/redis.conf file nel tuo editor di testo.

2. Individua la riga che dice bind 127.0.0.1 ::1 e decommenta la riga eliminando il segno del numero (# ) all'inizio della riga.

3. Ora, esegui il comando seguente per riavviare il redis-server servizio.

sudo systemctl restart redis-server

4. Infine, esegui il comando seguente per verificare se il tuo server Redis è associato a localhost. Il netstat -lnp il comando elenca tutte le connessioni di rete attive e il grep redis parte filtra l'output in righe che contengono "redis .”

-lnp sta per Local Name Protocol, un protocollo di rete utilizzato da sistemi simili a UNIX per risolvere i nomi host in indirizzi IP.

sudo netstat -lnp | grep redis

Di seguito puoi vedere che il server Redis è ora in ascolto solo sull'interfaccia localhost (127.0.0.1:6379 ). Riflettendo la modifica nel file di configurazione, puoi vedere che solo l'interfaccia localhost è elencata sotto le tue connessioni Internet attive (tcp ).

Ora nessun altro dispositivo sulla tua rete può connettersi al tuo server Redis.

Protezione della connessione al server Redis con una password

A questo punto, Redis non è impostato per richiedere agli utenti di autenticarsi con una password. Chiunque conosca l'indirizzo IP o il nome host del tuo server Redis potrebbe connettersi ad esso e modificarne i dati.

Come proteggi il tuo server Redis? Imposta una password per richiedere agli utenti l'autenticazione durante la connessione al server Redis.

1. Riapri il redis.conf file di configurazione nel tuo editor di testo/codice.

2. Quindi, imposta una password complessa con quanto segue:

  • Cerca requirepass foobared sotto il SECURITY sezione
  • Elimina il segno del numero (# ) all'inizio della riga
  • Sostituisci foobared con una password complessa a tua scelta e salva le modifiche

3. Eseguire i seguenti comandi per riavviare e connettersi al server Redis.

sudo systemctl restart redis-server
redis-cli

4. Ora esegui ping comando per vedere se riceverai una risposta dal server.

ping

Di seguito, puoi visualizzare un messaggio di errore che dice Autenticazione NOAUTH richiesta . Questo messaggio indica che è necessaria una password di autenticazione per accedere in remoto al server Redis.

5. Esegui auth di seguito comando seguito dalla tua password per autenticare la tua connessione al tuo server Redis.

auth Qae9p_fY:YjdtJ7k

Riceverai un OK risposta quando l'autenticazione ha esito positivo, come quella di seguito.

6. Infine, riesegui il ping comando per verificare se hai autenticato la connessione al tuo server Redis.

ping

Ora otterrai il PONG risposta, come mostrato di seguito, dopo aver autenticato la connessione. A questo punto, ora hai protetto con successo il tuo server Redis con una password.

Disabilitazione dei comandi pericolosi per proteggere il tuo server Redis

L'impostazione di una password per autenticare la connessione al server Redis non significa che ottenga una protezione del 100%. Per impostazione predefinita, Redis include diversi comandi pericolosi che consentono agli utenti di modificare i dati nel database.

Se eseguiti da utenti non autorizzati, questi comandi consentono agli intrusi di leggere, modificare, distruggere e persino cancellare i dati del tuo database Redis.

Di seguito non è riportato un elenco completo poiché il tuo server Redis potrebbe avere comandi pericolosi aggiuntivi, ma nella maggior parte dei casi questi sono i comandi pericolosi:

FLUSHDB, FLUSHALL, KEYS, PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF
BGSAVE, SAVE, SPOP, SREM, RENAME, DEBUG, EVAL

Per proteggere ulteriormente il tuo server Redis, rinomina questi comandi pericolosi in redis.conf file:

1. Apri redis.conf nel tuo editor di testo e cerca il Rinomina comando sezione.

Rinomina i comandi in una stringa vuota per disabilitarli seguendo la sintassi seguente. Sostituisci the-command con il comando effettivo per disabilitare.

rename-command the-command ""

Ad esempio, disabilita CONFIG comando rinominando CONFIG in una stringa vuota, come mostrato di seguito, quindi salvare le modifiche. Le virgolette doppie (“”) indicare una stringa vuota che indica la disabilitazione di un comando.

2. Uscire dall'editor di testo ed eseguire il comando seguente per riavviare il server Redis.

sudo systemctl restart redis-server

3. Ora esegui i seguenti comandi per connetterti al tuo server Redis.

redis-cli
auth Qae9p_fY:YjdtJ7k

4. Infine, esegui config get comando per verificare che il CONFIG il comando è disabilitato.

config get requirepass

Riceverai un comando sconosciuto ERR config risposta, come mostrato di seguito, che indica che il CONFIG il comando è disabilitato.

Se il config get requirepass il comando esegue il push through, richiede al tuo server Redis la password per autenticare la connessione al tuo server Redis.

Ora hai rinominato con successo un pericoloso comando Redis per proteggere il tuo server Redis. Ora continua a disabilitare altri comandi pericolosi in redis.conf file.

Blocco della richiesta 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 , quindi quella porta è ciò che devi solo aprire. Se devi consentire l'accesso da un indirizzo IP o da un intervallo di indirizzi specifico, puoi aggiungere tali indirizzi alle regole del firewall.

Per configurare un firewall, devi prima installare uno strumento di configurazione del firewall. Questo esempio usa UFW, uno strumento di configurazione del firewall comunemente usato su Linux. Ma puoi anche usare un altro strumento, come iptables, per configurare un firewall.

1. Esegui il comando seguente per installare UFW sul tuo computer.

sudo apt install ufw -y

2. Quindi, eseguire il comando seguente per abilitare UFW.

sudo ufw enable

Immettere "Y" quando viene visualizzato il prompt mostrato di seguito per continuare a eseguire il comando.

3. Esegui ufw comando seguente per aggiungere una regola, che consente (allow ) traffico sulla porta 6379 per il tuo server Redis. Sostituisci il 11.22.33.44 Indirizzo IP con gli indirizzi IP degli utenti previsti.

sudo ufw allow from 11.22.33.44 to any port 6379

4. Infine, esegui il comando seguente per verificare di aver aggiunto correttamente la regola del firewall. Il comando controlla il status del tuo firewall.

sudo ufw status

Puoi vedere nell'output di seguito 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 di 11.22.33.44 può connettersi a Redis tramite la porta 6379 e dovrà autenticarsi con una password. Puoi aggiungere porte aggiuntive per altri servizi in modo simile.

Conclusione

Durante questo tutorial, hai imparato come installare e proteggere il tuo server Redis rinominando i comandi pericolosi per svuotare le stringhe e configurando un firewall.

Con questa nuova conoscenza, puoi godere di tutti i vantaggi di Redis senza preoccuparti di esporre il tuo server a rischi inutili.

Vuoi saperne di più? Perché non iniziare con la protezione di un server Redis in Kubernetes?


Linux
  1. Come installare Python su Linux

  2. Come installare Java su Linux

  3. Come installare il servizio SSH (shell sicuro) su Kali Linux

  4. Come installare e proteggere Redis su Ubuntu 20.04

  5. Come installare e proteggere Redis su Ubuntu 18.04

Come installare Grafana su Rocky Linux

Come installare FreeOffice su Linux

Come installare Go Language in Linux

Come installare Redis su Linux Mint 20

Come installare e configurare Redis su un sistema Linux

Come eseguire un'installazione di Samba Active Directory su Linux