鈫怉tras

Introducci贸n a Redis parte 2

18 octubre, 2021

3 minutos de lectura

馃捇 DevelopmentRedisSecurity

驴Ves alg煤n error o quieres modificar algo? Haz una Pull Request

En el art铆culo anterior Introduci贸n a Redis parte 1 mostramos como instalar redis. Hoy trabajaremos con la configuraci贸n de Redis. Esta configuraci贸n se encuentra en el archivo /etc/redis.conf y est谩 dividido en diferentes secciones. Los par谩metros de configuraci贸n m谩s importantes corresponden a los siguientes:

INCLUDES

Permite incluir uno o m谩s archivos adicionales de configuraci贸n. Ejemplo:

include /path/to/local.conf
include /path/to/other.conf

MODULES

Permite cargar m贸dulos al inicio de la aplicaci贸n. Ejemplo:

loadmodule /path/to/my_module.so
loadmodule /path/to/other_module.so

NETWORK

Permite configurar las directivas de red de la aplicaci贸n, tales como las interfaces por las que debe escuchar conexiones. Si no se especifica ninguna, la aplicaci贸n escucha por todas las interfaces de red disponibles en el servidor. Por defecto el modo protecci贸n se encuentra habilitado, escuchando solo por la interfaz de red local 127.0.0.1. Para permitir conexiones desde otros servidores se deben especificar en esta secci贸n. El puerto por defecto de la aplicaci贸n es 6379. Ejemplo:

bind 192.168.1.100 10.0.0.1
# bind 127.0.0.1 ::1
protected-mode yes
port 6379

GENERAL

Se puede especificar el archivo donde va a estar registrado el id del proceso de la m谩quina.

pidfile /var/run/redis_6379.pid

Se puede especificar el nombre del archivo log del servicio.

logfile /var/log/redis/redis.log

Se puede especificar la cantidad de base de datos que el servicio va a emplear.

databases 16

SNAPSHOTTING

Permite guardar cambios en la base de datos despu茅s del tiempo especificado. Ejemplo:

Guarda si:

  • Despu茅s de 900 segundos si al menos hay un cambio
  • Despu茅s de 300 segundos si al menos hay 10 cambios
  • Despu茅s de 60 segundos si al menos hay 10000 cambios.
# save <seconds> <changes>
save 900 1
save 300 10
save 60 10000

Se puede especificar el nombre de archivo de la base de datos y el sitio donde estar谩 ubicado.

# dbfilename dump.rdb
dir /var/lib/redis

SECURITY

Redis permite configurar un password de autenticaci贸n para la conexi贸n de los clientes al servidor redis. Es importante que defina para su contrase帽a un valor seguro y largo. Se puede usar el comando openssl para generar una de forma aleatoria.


# create password
openssl rand 60 | openssl base64 -A

# Output
RBOJ9cCNoGCKhlEBwQLHri1g+atWgn4Xn4HwNUbtzoVxAYxkiYBi7aufl4MILv1nxBqR4L6NNzI0X6cE

requirepass RBOJ9cCNoGCKhlEBwQLHri1g+atWgn4Xn4HwNUbtzoVxAYxkiYBi7aufl4MILv1nxBqR4L6NNzI0X6cE

Redis permite configurar el nombre de los comandos, en especial de los m谩s vulnerables. Con esto se podr铆a renombrar a algo que sea dif铆cil de adivinar.

Algunos de los comandos considerados peligrosos: FLUSHDB, FLUSHALL, KEYS, PEXPIRE, DEL, CONFIG, SHUTDOWN, BGREWRITEAOF, BGSAVE, SAVE, SPOP, SREM, RENAME, y DEBUG. No es una lista completa, pero renombrar o desactivar todos los comandos de esa lista es un buen comienzo para mejorar la seguridad de su servidor Redis.

 rename-command CONFIG b840fc02d524045429941cc15

. . .
# It is also possible to completely kill a command by renaming it into
# an empty string:
#
rename-command FLUSHDB ""
rename-command FLUSHALL ""
rename-command DEBUG ""
. . .

. . .
# rename-command CONFIG ""
rename-command SHUTDOWN SHUTDOWN_MENOT
rename-command CONFIG ASC12_CONFIG
. . .

clientes

Redis permite configurar el m谩ximo n煤mero de clientes conectados al mismo tiempo. Por defecto, el n煤mero m谩ximo es 10.000 clientes

maxclients 10000

Conclusi贸n

A trav茅s de este tutorial, pudimos configurar Redis, validamos el funcionamiento correcto de su instalaci贸n y utilizamos sus caracter铆sticas de seguridad para hacerlo menos vulnerable a ataques de individuos malintencionados.

Llegado a este punto ya nos encontramos en condiciones para usar nuestra base de datos en futuros proyectos. Por lo que en pr贸ximos art铆culos estaremos abordando temas como desarrollo de aplicaciones. Espero que te sea de utilidad este contenido y nos vemos en el pr贸ximo cap铆tulo.

Recursos

2022 @kenriortega web page. All rights reserved