Redis é benéfico para muitas coisas, uma das quais é o cache. Você também pode usar o Redis como um armazenamento de dados primário ou até mesmo como substituto de um banco de dados. Mas como você realiza uma instalação segura do Redis? Instalar o Redis pode ser complicado e, se você não tomar cuidado, pode acabar com muitos erros. Por sorte, este tutorial tem você coberto.
Neste tutorial, você aprenderá como instalar o Redis com segurança em seu sistema Linux, juntamente com algumas dicas para evitar erros comuns.
Continue lendo e poupe-se das dores de cabeça ao solucionar erros na instalação do Redis!
Pré-requisitos
Este tutorial será uma demonstração prática. Se você quiser acompanhar, certifique-se de ter o seguinte:
- Uma máquina Ubuntu 20.04 LTS – Este tutorial utiliza o Ubuntu 20.04 LTS, mas as instruções são semelhantes para a maioria das distribuições Linux.
- Privilégios de root ou um usuário não root com
privilégios sudo
Instalação do Redis com o Gerenciador de Pacotes APT
Existem algumas maneiras de instalar o Redis no Ubuntu, mas para este tutorial, você vai usar o gerenciador de pacotes APT para instalar o Redis.
O Redis é escrito em C, então você precisaria compilar o Redis a partir do código-fonte manualmente. Várias dependências precisariam ser instaladas, e o processo de compilação não é exatamente à prova de falhas.
Compilar o Redis a partir do código-fonte não é recomendado, mas a vantagem é que você pode personalizar sua instalação, se desejar. Você baixa o código-fonte e o configura manualmente.
Abra seu terminal e execute o comando apt update
abaixo para garantir que você tenha as listas de pacotes mais recentes.

Agora, execute o comando apt install
abaixo para instalar o Redis em sua máquina.
O comando abaixo usa o gerenciador de pacotes apt
para baixar e instalar o pacote redis-server
dos repositórios do Ubuntu em sua máquina. A opção -y
diz ao apt
para aceitar prompts durante o processo de instalação automaticamente.

Configurando o Arquivo Redis.conf para Executar o Redis como um Serviço
Você acabou de instalar o Redis, mas ele ainda não está pronto para uso. Antes de começar a usar o Redis, você precisará configurar o arquivo redis.conf.
O arquivo de configuração redis.conf está incluído no pacote Redis que você instalou e é armazenado no diretório /etc/redis/ por padrão. Este arquivo contém todas as opções de configuração para o Redis.
A extensão do arquivo .conf é lógica, seguindo um padrão convencional. Muitos outros programas usam o mesmo estilo. Por exemplo, o servidor web Apache usa a extensão de arquivo .conf para seu arquivo de configuração principal.
1. Execute o seguinte comando systemctl
para stop
o serviço redis-server
. Parar o serviço do Redis é uma prática recomendada quando você está começando a usar o Redis.
2. Em seguida, abra o arquivo /etc/redis/redis.conf no seu editor de texto preferido.
Encontre a diretiva supervised, e defina-a como systemd, como mostrado abaixo, e salve as alterações. Isso informa ao sistema operacional para executar o Redis como um serviço.

3. Agora, execute o comando systemctl restart
abaixo para reiniciar o serviço Redis (redis.service
) uma vez que o serviço Redis ainda não tem conhecimento das alterações.
4. Por fim, execute o comando systemctl status
abaixo para verificar se o Redis está em execução.
Como você pode ver abaixo, a saída mostra que o serviço Redis está em execução.

Testando se o Servidor Redis Funciona Corretamente
Você configurou e verificou que o serviço Redis está em execução, mas isso não significa que o servidor Redis está funcionando. Como testar se o servidor Redis funciona corretamente? Conecte-se ao servidor Redis e envie comandos para ver se o servidor responde.
1. Execute o comando redis-cli
abaixo para se conectar ao servidor Redis. redis-cli
é a interface de linha de comando para o Redis, que permite enviar comandos para o servidor e inspecionar seu estado.
Abaixo, você pode ver que está no prompt do servidor Redis (127.0.0.1:6379>). O comando redis-cli
tenta se conectar a um servidor Redis em 127.0.0.1:6379
por padrão.

2. Em seguida, execute o comando ping
abaixo para verificar se o servidor Redis está acessível.
Como você pode ver, o servidor retornou PONG, o que indica que o servidor Redis está acessível e pode agora comunicar-se com o serviço com sucesso.

Talvez você ainda esteja cético; execute o comando set
abaixo. O comando set
é um comando Redis que define um par chave-valor em um banco de dados.
Como você pode ver, o comando set retorna “OK,” o que indica que o serviço Redis está funcionando corretamente.

3. Execute o comando exit
abaixo para sair do redis-cli
. Fazê-lo fecha a conexão com o servidor Redis.
Vinculando o Servidor Redis ao Localhost
Você acabou de testar que o servidor Redis funciona corretamente, mas ele pode ser acessível a partir de outros dispositivos em sua rede também. Esse comportamento é indesejável, e normalmente você gostaria de proteger seu servidor Redis de estranhos.
Vincular o servidor Redis ao localhost define um comportamento que apenas a máquina na qual você instalou o Redis pode acessar o servidor Redis.
1. Abra o arquivo /etc/redis/redis.conf em seu editor de texto.
2. Localize a linha que diz bind 127.0.0.1 ::1
e descomente a linha excluindo o sinal de número (#
) no início da linha.

3. Agora, execute o comando abaixo para reiniciar o serviço redis-server
.
4. Finalmente, execute o seguinte comando para verificar se seu servidor Redis está vinculado ao localhost. O comando netstat -lnp
lista todas as conexões de rede ativas, e a parte grep redis
filtra a saída para linhas que contêm “redis
.”
-lnp
representa Protocolo de Nome Local, um protocolo de rede usado por sistemas semelhantes ao UNIX para resolver nomes de host em endereços IP.
Você pode ver abaixo que o servidor Redis agora está ouvindo apenas na interface local (127.0.0.1:6379
). Refletindo a alteração no arquivo de configuração, você pode ver que apenas a interface local está listada em suas conexões de internet ativas (tcp
).
Agora, nenhum outro dispositivo em sua rede pode se conectar ao seu servidor Redis.

Protegendo a Conexão do Servidor Redis com uma Senha
Neste ponto, o Redis não está configurado para exigir que os usuários se autentiquem com uma senha. Qualquer pessoa que conheça o endereço IP ou nome do host do seu servidor Redis pode se conectar a ele e alterar seus dados.
Como proteger seu servidor Redis? Defina uma senha para exigir autenticação dos usuários ao se conectarem ao seu servidor Redis.
1. Reabra o arquivo de configuração redis.conf em seu editor de texto/código.
2. Em seguida, defina uma senha forte com o seguinte:
- Procure por
requirepass foobared
na seçãoSECURITY
- Exclua o sinal de número (
#
) no início da linha - Substitua
foobared
por uma senha forte de sua escolha e salve as alterações

3. Execute os seguintes comandos para reiniciar e se conectar ao seu servidor Redis.
4. Agora, execute o comando ping
para ver se você receberá uma resposta do servidor.
Abaixo, você pode ver uma mensagem de erro que diz NOAUTH Autenticação necessária. Esta mensagem indica que você precisa de uma senha de autenticação para acessar seu servidor Redis remotamente.

5. Execute o comando auth
abaixo seguido de sua senha para autenticar sua conexão com seu servidor Redis.
Você receberá uma resposta OK quando a autenticação for bem-sucedida, como a mostrada abaixo.

6. Por fim, execute novamente o comando ping
para testar se você autenticou sua conexão com seu servidor Redis.
Agora você receberá a resposta PONG, conforme mostrado abaixo, após autenticar sua conexão. Neste ponto, você agora protegeu com sucesso seu servidor Redis com uma senha.

Desabilitando Comandos Perigosos para Proteger seu Servidor Redis
Definir uma senha para autenticar a conexão com seu servidor Redis não significa que ele esteja 100% protegido. Por padrão, o Redis inclui vários comandos perigosos que permitem aos usuários alterar os dados em seu banco de dados.
Quando executados por usuários não autorizados, esses comandos permitem que invasores leiam, modifiquem, destruam e até mesmo apaguem os dados do seu banco de dados Redis.
Abaixo não é uma lista abrangente, pois seu servidor Redis pode ter comandos perigosos adicionais, mas na maioria dos casos, estes são os comandos perigosos:
Para garantir ainda mais a segurança do seu servidor Redis, renomeie esses comandos perigosos no arquivo redis.conf:
1. Abra o arquivo redis.conf em seu editor de texto e procure pela seção Renomeação de Comandos.
Renomeie comandos para uma string vazia para desabilitá-los seguindo a sintaxe abaixo. Substitua o-comando
pelo comando real a ser desabilitado.
Por exemplo, desabilite o comando CONFIG
renomeando CONFIG
para uma string vazia, conforme mostrado abaixo, e então salve as mudanças. As aspas duplas (“”) indicam uma string vazia que significa desabilitar um comando.

CONFIG
command 2. Saia do editor de texto e execute o comando abaixo para reiniciar o servidor Redis.
3. Agora execute os seguintes comandos para conectar-se ao seu servidor Redis.
4. Finalmente, execute o comando config get
para testar se o comando CONFIG
está desabilitado.
Você receberá uma resposta ERR unknown command config
, como mostrado abaixo, o que indica que o comando CONFIG
está desabilitado.

CONFIG
command Se o comando config get requirepass
for bem-sucedido, ele solicita a senha do seu servidor Redis para autenticar a conexão ao seu servidor Redis.
Você agora renomeou com sucesso um comando perigoso do Redis para proteger seu servidor Redis. Agora continue desabilitando outros comandos perigosos no arquivo redis.conf.
Bloqueando Solicitação de Conexão ao Servidor Redis com um Firewall
Outra maneira de proteger seu servidor Redis é configurar um firewall. Configurar um firewall requer que você permita apenas a porta necessária para cada um dos serviços em execução no seu servidor.
Por exemplo, se você estiver executando o Redis no seu servidor na porta 6379
, então essa porta é a única que você precisa abrir. Se precisar permitir acesso de um endereço IP específico ou de um intervalo de endereços, você pode adicionar esses endereços às regras do firewall.
Para configurar um firewall, primeiro você instalará uma ferramenta de configuração de firewall. Este exemplo usa UFW, uma ferramenta de configuração de firewall comumente usada no Linux. Mas você também pode usar outra ferramenta, como iptables, para configurar um firewall.
1. Execute o seguinte comando para instalar o UFW na sua máquina.
2. Em seguida, execute o comando abaixo para habilitar o UFW.
Digite ‘Y’ quando receber o prompt mostrado abaixo para continuar executando o comando.

3. Execute o comando ufw
abaixo para adicionar uma regra, que permite (allow
) tráfego na porta 6379
para o seu servidor Redis. Substitua o endereço IP 11.22.33.44
pelos endereços IP dos usuários pretendidos.

6379
4. Por último, execute o comando abaixo para verificar se você adicionou a regra do firewall com sucesso. O comando verifica o status
do seu firewall.
Você pode ver na saída abaixo que o firewall está ativo e possui a regra para permitir tráfego na porta 6379
para o Redis a partir do endereço IP 11.22.33.44
.

Agora, qualquer usuário com o endereço IP 11.22.33.44
pode se conectar ao Redis através da porta 6379
e precisará autenticar com uma senha. Você pode adicionar portas adicionais para outros serviços de maneira semelhante.
Conclusão
Ao longo deste tutorial, você aprendeu como instalar e proteger seu servidor Redis renomeando comandos perigosos para strings vazias e configurando um firewall.
Com este conhecimento recém-adquirido, você pode desfrutar de todos os benefícios do Redis sem se preocupar em expor seu servidor a riscos desnecessários.
Deseja aprender mais? Por que não começar com protegendo um servidor Redis no Kubernetes?