Manager, Developer Education
O Redis é um armazenamento de dados de chave-valor na memória, conhecido pela sua flexibilidade, desempenho e amplo suporte de linguagens. Este tutorial quickstart demonstra como instalar, configurar e proteger o Redis em um servidor Ubuntu 20.04.
Para completar este guia, você precisará ter acesso a um servidor Ubuntu 20.04, que tenha um usuário não root com privilégios sudo
e um firewall configurado.com o ufw
. Você pode configurar isto seguindo o nosso Guia de Configuração Inicial de Servidor para Ubuntu 20.04.
Comece atualizando seu cache de pacotes local do apt
:
- sudo apt update
Em seguida, instale o Redis digitando:
- sudo apt install redis-server
Em seguida, abra o arquivo de configuração do Redis com seu editor de texto preferido:
- sudo nano /etc/redis/redis.conf
Dentro do arquivo, encontre a diretiva supervised
que permite que você declare um sistema init para gerenciar o Redis como um serviço. Uma vez que você está executando o Ubuntu, que usa o sistema init systemd, altere seu valor de no
para systemd
:
. . .
# If you run Redis from upstart or systemd, Redis can interact with your
# supervision tree. Options:
# supervised no - no supervision interaction
# supervised upstart - signal upstart by putting Redis into SIGSTOP mode
# supervised systemd - signal systemd by writing READY=1 to $NOTIFY_SOCKET
# supervised auto - detect upstart or systemd method based on
# UPSTART_JOB or NOTIFY_SOCKET environment variables
# Note: these supervision methods only signal "process is ready."
# They do not enable continuous liveness pings back to your supervisor.
supervised systemd
. . .
Salve e feche o arquivo quando você terminar. Se você usou o nano
para editar o arquivo, faça isso pressionando CTRL + X
, Y
, depois ENTER
.
Então, reinicie o serviço Redis para refletir as alterações feitas no arquivo de configuração:
- sudo systemctl restart redis.service
Para testar se o Redis está funcionando corretamente, conecte-se ao servidor usando o redis-cli
, o cliente de linha de comando do Redis:
- redis-cli
No prompt que segue, teste a conectividade com o comando ping
:
- ping
OutputPONG
Esta saída confirma que a conexão com o servidor está ativa. A seguir, verifique se você é capaz de definir chaves executando:
- set test "It's working!"
OutputOK
Recupere o valor digitando:
- get test
Supondo que tudo esteja funcionando, você será capaz de recuperar o valor que você armazenou:
Output"It's working!"
Após confirmar que você pode obter o valor, saia do prompt do Redis para voltar ao shell:
- exit
Você pode configurar uma senha do Redis diretamente no arquivo de configuração do Redis, /etc/redis/redis.conf
. Abra esse arquivo novamente com seu editor preferido:
- sudo nano /etc/redis/redis.conf
Role até a seção SECURITY
e procure uma diretiva comentada que mostre:
. . .
# requirepass foobared
. . .
Descomente-a removendo o #
, e modificando foobared
para uma senha segura.
. . .
requirepass your_redis_password
. . .
Após configurar a senha, salve e feche o arquivo, então reinicie o Redis:
- sudo systemctl restart redis.service
Para testar se a senha funciona, abra o cliente Redis:
- redis-cli
A seguir encontra-se uma sequência de comandos usada para testar se a senha do Redis funciona. O primeiro comando tenta definir uma chave para um valor antes da autenticação:
- set key1 10
Isso não funcionará porque você não se autenticou, então o Redis retorna um erro:
Output(error) NOAUTH Authentication required.
O próximo comando autentica-se com a senha especificada no arquivo de configuração do Redis:
- auth your_redis_password
O Redis reconhece:
OutputOK
Após isso, executando o comando anterior novamente terá sucesso:
- set key1 10
OutputOK
get key1
consulta o Redis para o valor da nova chave.
- get key1
Output"10"
Após confirmar que você é capaz de executar comandos no cliente Redis depois da autenticação, você poderá sair do redis-cli
:
- quit
A outra característica de segurança embutida no Redis envolve renomear ou desativar completamente determinados comandos que são considerados perigosos. Alguns comandos que são considerados perigosos incluem: FLUSHDB
, FLUSHALL
, KEYS
, PEXPIRE
, DEL
, CONFIG
, SHUTDOWN
, BGREWRITEAOF
, BGSAVE
, SAVE
, SPOP
, SREM
, RENAME
, e DEBUG
. Ao desativar ou renomear esses e outros comandos, você torna mais difícil para os usuários não autorizados reconfigurar, destruir ou, de outro modo, limpar seus dados.
Para renomear ou desativar comandos do Redis, abra novamente o arquivo de configuração:
- sudo nano /etc/redis/redis.conf
Aviso: os passos a seguir mostrando como desativar e renomear comandos são exemplos. Você deve apenas escolher desativar ou renomear os comandos que fizerem sentido para você. Você pode rever a lista completa de comandos por conta própria e determinar como eles poderiam ser usados de forma errada com o redis.io/commands.
Para desativar um comando, simplesmente renomeie-o para uma string vazia (representado por um par de aspas sem caracteres entre elas), como mostrado abaixo:
. . .
# It is also possible to completely kill a command by renaming it into
# an empty string:
#
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""
. . .
Para renomear um comando, dê a ele outro nome como mostrado nos exemplos abaixo. Os comandos renomeados devem ser difíceis para que outros possam adivinhar, mas fácil para você lembrar:
. . .
# rename-command CONFIG ""
rename-command SHUTDOWN SHUTDOWN_MENOT
rename-command CONFIG ASC12_CONFIG
. . .
Salve suas alterações e feche o arquivo.
Após renomear um comando, aplique a alteração reiniciando o Redis:
- sudo systemctl restart redis.service
Para testar o novo comando, acesse a linha de comando do Redis:
- redis-cli
Em seguida, autentique-se:
- auth your_redis_password
OutputOK
Supondo que você tenha renomeado o comando CONFIG
para ASC12_CONFIG
como no exemplo anterior, tente usar o comando CONFIG
original. Ele deve falhar, porque você o renomeou:
- config get requirepass
Output(error) ERR unknown command `config`, with args beginning with:
Chamar o comando renomeado, no entanto, será bem-sucedido. Não é sensível a maiúsculas e minúsculas:
- asc12_config get requirepass
Output1) "requirepass"
2) "your_redis_password"
Neste tutorial quickstart, você instalou e configurou o Redis, validou que sua instalação do Redis está funcionando corretamente e usou seus recursos de segurança integrados para torná-lo menos vulnerável aos ataques de indivíduos mal-intencionados.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!