Blog

Noticias

Lanzamiento de credcheck 2.0.0

Casablanca, Marruecos – 10 de junio de 2023

Extensión PostgreSQL credcheck

La extensión de PostgreSQL credcheck permite realizar comprobaciones generales de credenciales durante la creación de un usuario, durante el cambio de contraseña y el cambio de nombre de usuario. Mediante esta extensión, es posible definir un conjunto de reglas:

  • permitir un conjunto específico de credenciales
  • rechazar cierto tipo de credenciales
  • establecer el uso de una fecha de caducidad para la contraseña con un mínimo de días
  • definir una política de reutilización de contraseñas

La versión 2.0.0 introduce una característica importante así como la compatibilidad con PostgreSQL 16. Tras la actualización es necesario reiniciar PostgreSQL para recargar la biblioteca credcheck.

  • Se añade la nueva característica «Authentication failure ban»

PostgreSQL no dispone de mecanismos que limiten el número de intentos de autenticación erróneos antes de que el usuario sea baneado. Con la extensión credcheck, tras una cantidad de intentos de autenticación sin éxito, definida por la directiva de configuración credcheck.max_auth_failure, el usuario podría ser baneado perdiendo la posibilidad de volver a conectarse, aunque posteriormente introduzca la contraseña correcta. Esta característica requiere que la extensión credcheck se añada a la opción de configuración shared_preload_libraries.
Todos los intentos de autenticación erróneos se registran en la memoria compartida mediante timestamps que indican el momento en que un usuario ha sido baneado. El historial de intentos de autenticación erróneos sólo se guarda en memoria, lo que significa que se perderá al reiniciar PostgreSQL. Por ahora no ha habido interés en restaurar la caché al momento del reinicio.
El tamaño por defecto de la caché para intentos erróneos de autenticación es de 1024 registros y puede ajustarse mediante la directiva credcheck.auth_failure_cache_size. El cambio de este GUC requiere un reinicio de PostgreSQL.
Dos opciones permiten controlar el comportamiento de esta función:

  • credcheck.max_auth_failure: número de intentos de autenticación sin éxito permitidos antes de que un usuario sea baneado.
  • credcheck.reset_superuser: impide que el superusuario sea baneado o restablece un superusuario baneado cuando se configura en true.

El valor por defecto para el primer parámetro es 0, lo que significa que la función de baneo por fallo de autenticación está deshabilitada. El valor por defecto para la segunda configuración es false lo que significa que el superusuario postgres puede ser baneado.
En caso de que un superusuario postgres haya sido baneado, ya no podrá volver a iniciar sesión. Si no existe otra cuenta de superusuario que pueda utilizarse para restablecer el registro del superusuario baneado, habrá que establecer la directiva de configuración credcheck.reset_superuser en true en el archivo postgresql.conf y enviar la señal SIGHUP al pid del proceso PostgreSQL para que vuelva a leer la configuración. La siguiente vez que el superusuario intentará conectarse, su entrada de caché de autenticación errónea será eliminada.

La lista completa de cambios está disponible aquí

Enlaces y créditos

credcheck es un proyecto abierto desarrollado por MigOps Inc bajo licencia PostgreSQL, desarrollado y mantenido por Gilles Darold. Se agradece cualquier contribución que nos ayude a mejorar la herramienta. Pueden enviar sus ideas, peticiones de funcionalidades o parches a través de las herramientas de GitHub.

Enlaces :

Información sobre credcheck

La extensión credcheck es un proyecto desarrollado por MigOps Inc. MigOPs está especializada en migración a PostgreSQL y soporte para PostgreSQL. Contáctennos para más información.  

Documentación en https://github.com/MigOpsRepos/credcheck#readme

Haz clic aquí para leer la noticia original en inglés en la página web oficial de PostgreSQL.