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.
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:
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-cliIsso 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>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 mysecretpasswordVocê deverá ver a seguinte saída:
OKIsso confirma que a senha foi definida.
Agora, saia do
redis-clidigitandoexite pressionando Enter. Isso garante que seus comandos sejam registrados.exitTente executar um comando sem autenticação:
Abra um novo terminal e conecte-se ao servidor Redis usando
redis-cli:redis-cliTente executar um comando simples como
PING:PINGVocê deverá receber uma mensagem de erro:
(error) NOAUTH Authentication required.Isso indica que a autenticação agora é necessária.
Saia do
redis-cli:Para garantir que o comando seja registrado, saia do
redis-clidigitandoexitou pressionandoCtrl+D.exitIsso é 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.
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-cliVocê deverá ver o prompt
127.0.0.1:6379>.Autentique-se com o comando
AUTH:Use o comando
AUTHseguido pela senha que você definiu anteriormente:AUTH mysecretpasswordSe a autenticação for bem-sucedida, você verá:
OKExecute um comando após a autenticação:
Agora que você está autenticado, tente o comando
PINGnovamente:PINGVocê deverá receber a resposta esperada:
PONGSaia do
redis-cli:Saia do
redis-clidigitandoexitou pressionandoCtrl+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.
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-cliVocê deverá ver o prompt
127.0.0.1:6379>.Autentique-se com o comando
AUTH:Autentique-se usando o comando
AUTHseguido pela sua senha:AUTH mysecretpasswordVocê deverá ver a saída
OKapós a autenticação bem-sucedida.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.Verifique se os dados existem:
KEYS *Você deverá ver ambas as chaves listadas:
1) "testkey" 2) "anotherkey"Demonstre o comando perigoso
FLUSHALL:Aviso: Este comando excluirá todos os dados em todos os bancos de dados!
FLUSHALLVocê deverá ver:
OKEste comando exclui com sucesso todos os dados de todos os bancos de dados.
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 adicionandorename-command FLUSHALL ""ao arquivoredis.conf.Saia do
redis-cli:Saia do
redis-clidigitandoexitou pressionandoCtrl+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.


