Instale y proteja el servidor Redis en Debian 10

Instale y proteja el servidor Redis en Debian 10

Redis, tambi√©n conocido como ¬ęServidor de diccionario remoto¬Ľ, es una base de datos de c√≥digo abierto y en memoria que se puede utilizar como base de datos, cach√© y agente de mensajes. Redis admite varias estructuras de datos, como cadenas, hash, listas, conjuntos y muchas m√°s. Redis est√° escrito en lenguaje de programaci√≥n C y funciona en la mayor√≠a de los sistemas POSIX como Linux, Free BSD y OS X. Redis es capaz de ejecutar miles de comandos por segundo. Redis viene con un amplio conjunto de caracter√≠sticas que incluyen replicaci√≥n, conmutaci√≥n por error autom√°tica, secuencias de comandos Lua, desalojo de claves LRU, transacciones y muchas m√°s.

En este tutorial, aprenderemos cómo instalar y asegurar Redis en el servidor Debian 10.

Requisitos

  • Un servidor que ejecuta Debian 10.
  • Una contrase√Īa de root est√° configurada para su servidor.

Empezando

Antes de comenzar, deber√° actualizar su sistema con la √ļltima versi√≥n. Puede hacer esto ejecutando el siguiente comando:

apt-get update -y
apt-get upgrade -y

Una vez que su servidor esté actualizado, reinícielo para aplicar los cambios.

Instalar Redis

De forma predeterminada, Redis est√° disponible en el repositorio de Debian 10. Puede instalarlo simplemente ejecutando el siguiente comando:

apt-get install redis-server -y

Después de instalar Redis, inicie el servicio Redis y habilítelo para que se inicie después de reiniciar el sistema con el siguiente comando:

systemctl start redis-server
systemctl enable redis-server

También puede verificar el estado del servidor Redis con el siguiente comando:

systemctl status redis-server

Deberías obtener el siguiente resultado:

? redis-server.service - Advanced key-value store
   Loaded: loaded (/lib/systemd/system/redis-server.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2019-09-06 05:57:45 EDT; 4s ago
     Docs: http://redis.io/documentation,
           man:redis-server(1)
  Process: 2284 ExecStart=/usr/bin/redis-server /etc/redis/redis.conf (code=exited, status=0/SUCCESS)
 Main PID: 2285 (redis-server)
    Tasks: 4 (limit: 1138)
   Memory: 6.8M
   CGroup: /system.slice/redis-server.service
           ??2285 /usr/bin/redis-server 127.0.0.1:6379

Sep 06 05:57:45 debian systemd[1]: Starting Advanced key-value store...
Sep 06 05:57:45 debian systemd[1]: redis-server.service: Can't open PID file /run/redis/redis-server.pid (yet?) after start: No such file or di
Sep 06 05:57:45 debian systemd[1]: Started Advanced key-value store.

De forma predeterminada, Redis escucha en el host local en el puerto 6379. Puede verificarlo con el siguiente comando:

ps -ef | grep redis

Debería ver el siguiente resultado:

redis     2285     1  0 05:57 ?        00:00:00 /usr/bin/redis-server 127.0.0.1:6379
root      2294   706  0 05:59 pts/0    00:00:00 grep redis

A continuación, pruebe la conectividad de Redis con el siguiente comando:

redis-cli

Debería ver el siguiente resultado:

127.0.0.1:6379> 

Ahora, verifique la conectividad de Redis con el comando ping:

127.0.0.1:6379> ping

Si todo está bien, debería ver el siguiente resultado:

PONG

Una vez que haya terminado. Puede continuar con el siguiente paso.

Configurar Redis como caché

Puede configurar Redis como caché editando el archivo /etc/redis/redis.conf:

nano /etc/redis/redis.conf

Agregue las siguientes líneas al final del archivo:

maxmemory 64mb
maxmemory-policy allkeys-lru

Cuando se alcanza la memoria m√°xima de 64 MB. Redis eliminar√° cualquier clave seg√ļn el algoritmo LRU. Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Redis con el siguiente comando:

systemctl restart redis-server

Una vez que haya terminado. Puede continuar con el siguiente paso.

Configurar la autenticación de Redis

De forma predeterminada, puede ejecutar cualquier comando en el shell de Redis. Por lo tanto, se recomienda configurar la autenticaci√≥n de Redis para que los clientes soliciten una contrase√Īa antes de ejecutar cualquier comando. Puede configurar la autenticaci√≥n de contrase√Īa directamente en el archivo de configuraci√≥n de Redis. Para hacerlo, abra el archivo /etc/redis/redis.conf con su editor preferido:

nano /etc/redis/redis.conf

En la sección SEGURIDAD busque la siguiente línea:

# requirepass foobared

Descomente y reempl√°celo con su contrase√Īa deseada como se muestra a continuaci√≥n:

requirepass AlsW34%#df

Guarde y cierre el archivo cuando haya terminado. Luego, reinicie el servicio Redis para aplicar los cambios de configuración:

systemctl restart redis-server

Ahora, acceda al shell de Redis con el siguiente comando:

redis-cli

Ahora, ejecute el siguiente comando sin autenticarse: Publicidad

127.0.0.1:6379> INFO server

Esto no funcionará porque no se autentica. Debería obtener el siguiente error:

NOAUTH Authentication required.

A continuaci√≥n, ejecute el siguiente comando para autenticarse con la contrase√Īa especificada en el archivo de configuraci√≥n de Redis:

127.0.0.1:6379> AUTH AlsW34%#df

Deberías obtener el siguiente resultado:

OK

Ahora, ejecute el comando anterior nuevamente:

127.0.0.1:6379> INFO server

Esto se ejecutará correctamente y debería ver el siguiente resultado:

# Server
redis_version:5.0.3
redis_git_sha1:00000000
redis_git_dirty:0
redis_build_id:afa0decbb6de285f
redis_mode:standalone
os:Linux 4.19.0-5-amd64 x86_64
arch_bits:64
multiplexing_api:epoll
atomicvar_api:atomic-builtin
gcc_version:8.3.0
process_id:2308
run_id:2cf0470a9492deddf98bcc72fa9ec94e941edf6c
tcp_port:6379
uptime_in_seconds:50
uptime_in_days:0
hz:10
configured_hz:10
lru_clock:7483371
executable:/usr/bin/redis-server
config_file:/etc/redis/redis.conf

Una vez que haya terminado. Puede continuar con el siguiente paso.

Cambiar el nombre de comandos específicos

Por razones de seguridad, se recomienda cambiar el nombre de ciertos comandos que se consideran peligrosos.

Aqu√≠ cambiaremos el nombre del comando ¬ęconfig¬Ľ. El comando config se usa para recuperar la contrase√Īa de Redis. Veamos con un ejemplo:

Primero, conecte y autentique el shell de Redis con el siguiente comando:

redis-cli
127.0.0.1:6379> AUTH AlsW34%#df

A continuaci√≥n, recupere la contrase√Īa de Redis con el siguiente comando:

127.0.0.1:6379> config get requirepass

Deberías obtener el siguiente resultado:

1) "requirepass"
2) "AlsW34%#df"
127.0.0.1:6379> 

Puede cambiar el nombre del comando de configuración editando el archivo /etc/redis/redis.conf:

nano /etc/redis/redis.conf

Encuentra la siguiente línea:

# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52

Descomente y reemplace con la cadena deseada:

rename-command CONFIG H2sW_Config        

Guarde y cierre el archivo. Luego, reinicie el servicio Redis con el siguiente comando:

systemctl restart redis-server

A continuación, conecte y autentique el shell de Redis con el siguiente comando:

redis-cli
127.0.0.1:6379> AUTH AlsW34%#df

A continuaci√≥n, recupere la contrase√Īa de Redis con el comando config:

127.0.0.1:6379> config get requirepass

Cambiamos el nombre de este comando, por lo que debería recibir el siguiente error:

(error) ERR unknown command `config`, with args beginning with: `get`, `requirepass`, 

Ahora, ejecute el comando renombrado como se muestra a continuación:

127.0.0.1:6379> H2sW_Config get requirepass

Deberías obtener el siguiente resultado:

1) "requirepass"
2) "AlsW34%#df"

Finalmente, salga del shell de Redis con el siguiente comando:

127.0.0.1:6379> exit

Conclusión

¬°Felicidades! ha instalado y asegurado con √©xito el servidor Redis en Debian 10. Espero que ahora tenga suficiente conocimiento para asegurar su servidor Redis con autenticaci√≥n de contrase√Īa. No dude en preguntarme si tiene alguna consulta.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *