Redis é benéfico para muitas coisas, uma das quais é o caching. 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ê executa uma instalação segura do Redis? Instalar o Redis pode ser complicado e, se você não tiver cuidado, pode acabar com muitos erros. Sorte para você, este tutorial tem tudo o que você precisa.
Neste tutorial, você aprenderá como instalar o Redis com segurança no seu sistema Linux, juntamente com algumas dicas para evitar erros comuns.
Continue lendo e evite as dores de cabeça de resolver erros na instalação do Redis!
Pré-requisitos
Este tutorial será uma demonstração prática. Se você deseja 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ê utilizará o gerenciador de pacotes APT para instalar o Redis.
O Redis é escrito em C, então você precisaria compilar o Redis a partir do seu código-fonte manualmente. Várias dependências precisariam ser instaladas, e o processo de compilação não é totalmente à 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 o 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 utiliza o gerenciador de pacotes apt
para baixar e instalar o pacote redis-server
dos repositórios do Ubuntu em sua máquina. A flag -y
indica ao apt
para aceitar automaticamente prompts durante o processo de instalação.

Configurando o Arquivo Redis.conf para Executar o Redis como um Serviço
Você acabou de instalar o Redis, mas ainda não está pronto para uso. Antes de começar a usar o Redis, primeiro 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 de arquivo .conf é lógica, pois segue um padrão convencional. Muitos outros programas usam esse mesmo estilo. O servidor web Apache, por exemplo, usa a extensão de arquivo .conf para seu arquivo de configuração principal.
1. Execute o seguinte comando systemctl
para parar
o serviço redis-server
. Parar o serviço 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, então defina-a como systemd, como mostrado abaixo, e salve as alterações. Fazendo isso, você está dizendo 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
) já 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 é acessível.
Como você pode ver, o servidor retornou PONG, o que indica que o servidor Redis é acessível e agora pode se comunicar com o serviço com sucesso.

Talvez ainda esteja cético; execute o comando set
abaixo. O comando set
é um comando do Redis que define um par chave-valor em um banco de dados.
Como 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 você normalmente gostaria de proteger seu servidor Redis de estranhos.
Vincular o servidor Redis ao localhost define um comportamento em 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. Por fim, 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 contenham “redis
.”
-lnp
significa 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 localhost (127.0.0.1:6379
). Refletindo a mudança no arquivo de configuração, você pode ver que apenas a interface localhost está listada nas suas conexões ativas de internet (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 poderia se conectar a ele e modificar seus dados.
Como proteger o seu servidor Redis? Defina uma senha para exigir autenticação ao se conectar ao seu servidor Redis.
1. Reabra o arquivo de configuração redis.conf no seu editor de texto/código.
2. Em seguida, defina uma senha forte com o seguinte:
- Procure por
requirepass foobared
na seçãoSECURITY
- Remova 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 obterá 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, como mostrado abaixo, após autenticar sua conexão. Neste ponto, você agora protegeu com sucesso seu servidor Redis com uma senha.

Desativando 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 intrusos leiam, modifiquem, destruam e até apaguem os dados do seu banco de dados Redis.
Abaixo não é uma lista abrangente, já que 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 no seu editor de texto e procure pela seção Renomeação de Comandos.
Renomeie os comandos para uma string vazia para desativá-los seguindo a sintaxe abaixo. Substitua o-comando
pelo comando real a ser desativado.
Por exemplo, desative o comando CONFIG
renomeando CONFIG
para uma string vazia, conforme mostrado abaixo, e então salve as alterações. 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 se conectar ao seu servidor Redis.
4. Por fim, execute o comando config get
para testar se o comando CONFIG
está desabilitado.
Você receberá uma resposta de ERR unknown command config
, como mostrado abaixo, o que indica que o comando CONFIG
está desativado.

CONFIG
command Se o comando config get requirepass
for executado, ele solicita a senha do seu servidor Redis para autenticar a conexão com ele.
Você 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 estiver a executar o Redis no seu servidor na porta 6379
, então é apenas essa porta que precisa de estar aberta. Se precisar de permitir acesso a partir de um endereço IP específico ou de um intervalo de endereços, pode adicionar esses endereços às regras do firewall.
Para configurar um firewall, primeiro irá instalar uma ferramenta de configuração de firewall. Este exemplo utiliza o UFW, uma ferramenta comumente usada para configurar firewalls no Linux. No entanto, também pode usar outra ferramenta, como o 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 ativar o UFW.
Insira ‘Y’ quando receber o prompt mostrado abaixo para continuar a executar 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 seus utilizadores pretendidos.

6379
4. Por fim, execute o comando abaixo para verificar se adicionou com sucesso a regra do firewall. O comando verifica o status
do seu firewall.
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 de 11.22.33.44
pode conectar-se ao Redis via porta 6379
e precisará autenticar-se 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 segurança de um servidor Redis no Kubernetes?