Configurações de Segurança do Redis

RedisBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como aprimorar a segurança do seu servidor Redis. Abordaremos a configuração de uma senha para impedir acesso não autorizado e a desativação de comandos específicos para limitar o uso indevido potencial. Ao final deste laboratório, você terá uma instância Redis mais segura.

Este é um Lab Guiado, que fornece instruções passo a passo para ajudá-lo a aprender e praticar. Siga as instruções cuidadosamente para completar cada etapa e ganhar experiência prática. Dados históricos mostram que este é um laboratório de nível iniciante com uma taxa de conclusão de 100%. Recebeu uma taxa de avaliações positivas de 92% dos estudantes.

Definindo uma Senha com CONFIG SET requirepass

Por padrão, o Redis não exige senha, tornando-o vulnerável. Definir uma senha é o primeiro e mais importante passo para proteger seu servidor Redis. Usaremos o comando CONFIG SET requirepass para isso.

O comando CONFIG SET permite alterar dinamicamente as configurações do Redis. A configuração requirepass especifica a senha que os clientes devem fornecer para se conectar ao servidor.

Vamos começar:

  1. Conecte-se ao servidor Redis usando redis-cli:

    Abra um terminal na VM LabEx. O diretório padrão é ~/project. Execute o seguinte comando:

    redis-cli

    Isso o conectará ao servidor Redis em execução no host padrão (127.0.0.1) e porta (6379). Você deverá ver o prompt 127.0.0.1:6379>.

    127.0.0.1:6379>
  2. Defina a senha usando o comando CONFIG SET requirepass:

    Definiremos a senha como mysecretpassword. Para ambientes de produção, escolha uma senha forte e única.

    CONFIG SET requirepass mysecretpassword

    Você deverá ver a seguinte saída:

    OK

    Isso confirma que a senha foi definida.

    Agora, saia do redis-cli digitando exit e pressionando Enter. Isso garante que seus comandos sejam registrados.

    exit
  3. Tente executar um comando sem autenticação:

    Abra um novo terminal e conecte-se ao servidor Redis usando redis-cli:

    redis-cli

    Tente executar um comando simples como PING:

    PING

    Você deverá receber uma mensagem de erro:

    (error) NOAUTH Authentication required.

    Isso indica que a autenticação agora é necessária.

  4. Saia do redis-cli:

    Para garantir que o comando seja registrado, saia do redis-cli digitando exit ou pressionando Ctrl+D.

    exit

    Isso é importante para que a etapa de verificação funcione corretamente.

Autenticando com o Comando AUTH

Agora que definimos uma senha, vamos aprender como autenticar com o servidor Redis usando o comando AUTH. Este comando requer a senha que você definiu na etapa anterior.

  1. Conecte-se ao servidor Redis usando redis-cli:

    Abra um terminal na VM LabEx. O diretório padrão é ~/project. Execute o seguinte comando:

    redis-cli

    Você deverá ver o prompt 127.0.0.1:6379>.

  2. Autentique-se com o comando AUTH:

    Use o comando AUTH seguido pela senha que você definiu anteriormente:

    AUTH mysecretpassword

    Se a autenticação for bem-sucedida, você verá:

    OK
  3. Execute um comando após a autenticação:

    Agora que você está autenticado, tente o comando PING novamente:

    PING

    Você deverá receber a resposta esperada:

    PONG
  4. Saia do redis-cli:

    Saia do redis-cli digitando exit ou pressionando Ctrl+D.

    exit

Limitando Comandos Perigosos

O Redis oferece muitos comandos, mas alguns podem ser arriscados em determinados ambientes. Embora não possamos desabilitar comandos dinamicamente usando CONFIG SET (já que rename-command requer uma reinicialização do servidor), podemos demonstrar o conceito de segurança de comandos mostrando como comandos perigosos como FLUSHALL funcionam e por que eles devem ser restritos em ambientes de produção.

  1. Conecte-se ao servidor Redis usando redis-cli:

    Abra um terminal na VM LabEx. O diretório padrão é ~/project. Execute o seguinte comando:

    redis-cli

    Você deverá ver o prompt 127.0.0.1:6379>.

  2. Autentique-se com o comando AUTH:

    Autentique-se usando o comando AUTH seguido pela sua senha:

    AUTH mysecretpassword

    Você deverá ver a saída OK após a autenticação bem-sucedida.

  3. Crie alguns dados de teste para demonstrar o perigo do FLUSHALL:

    SET testkey "important data"
    SET anotherkey "more important data"

    Ambos os comandos devem retornar OK.

  4. Verifique se os dados existem:

    KEYS *

    Você deverá ver ambas as chaves listadas:

    1) "testkey"
    2) "anotherkey"
  5. Demonstre o comando perigoso FLUSHALL:

    Aviso: Este comando excluirá todos os dados em todos os bancos de dados!

    FLUSHALL

    Você deverá ver:

    OK

    Este comando exclui com sucesso todos os dados de todos os bancos de dados.

  6. Verifique se todos os dados foram excluídos:

    KEYS *

    Você deverá ver:

    (empty array)

    Isso demonstra por que FLUSHALL é considerado perigoso e deve ser desabilitado em produção adicionando rename-command FLUSHALL "" ao arquivo redis.conf.

  7. Saia do redis-cli:

    Saia do redis-cli digitando exit ou pressionando Ctrl+D.

    exit

Resumo

Neste laboratório, você aprendeu como aprimorar a segurança do Redis. Você definiu uma senha usando CONFIG SET requirepass para impedir acesso não autorizado. Você também aprendeu como autenticar usando o comando AUTH e demonstrou a natureza perigosa de comandos como FLUSHALL que podem excluir todos os dados. Em ambientes de produção, comandos perigosos como esse devem ser desabilitados adicionando rename-command FLUSHALL "" ao arquivo redis.conf e reiniciando o servidor Redis. Essas etapas são essenciais para proteger seu servidor Redis.