Hardening – Securizando contraseñas con PAM en GNU/Linux

Hardening-GNUlinuxAnteriormente vimos como realizar una configuración  básica para securizar nuestros servidores GNU/Linux (Hardening básico en GNU/Linux), en este caso vamos a fortalecer las contraseñas de acceso de los usuarios mediante Módulos de Autentificación Conectables.

¿Que es PAM?

La estructura del módulo de autenticación conectable (PAM) permite a los administradores coordinar y configurar requisitos de autenticación de usuarios para cuentas, credenciales, sesiones y contraseñas sin modificar los servicios que requieren autenticación.

La estructura PAM permite a las organizaciones personalizar la experiencia de autenticación del usuario y la función de administración de contraseñas, sesiones y cuentas. Los servicios de entrada del sistema, como login y ssh, utilizan la estructura PAM para proteger todos los puntos de entrada del sistema recién instalado. PAM permite la sustitución o modificación de los módulos de autenticación en el campo para proteger el sistema contra cualquier debilidad recién detectada sin la necesidad de realizar cambios a ningún servicio del sistema que use la estructura PAM.

Instalación en Debian y derivados: :

 

apt-get install libpam-cracklib

 

Configuramos las directivas en el archivo common-password

 

vi /etc/pam.d/common-password

 

Instalación en Red-Hat y derivados:

yum install cracklib

 

Configuramos las directivas en el archivo system-auth

 

vi /etc/pam.d/system-auth

 

Configurar directivas:

Una vez dentro del archivo buscamos la linea «password        requisite                       pam_cracklib.so retry=3 minlen=8 difok=3«. En esta linea definimos la complejidad de la contraseña.

Ejemplo:

password requisite pam_cracklib.so try_first_pass retry=3 minlen=8 lcredit=1 ucredit=1 dcredit=1 ocredit=1

 

  • minlen: especifica el número mínimo de caracteres.
  • lcredit: especifica el número mínimo de letras minúsculas
  • ucredit: especifica el número mínimo de letras mayúsculas
  • dcredit: especifica el número mínimo de caracteres numéricos
  • ocredit: especifica el número de caracteres de otro tipo, como por ejemplo símbolos.

Definir el periodo de expiración de la contraseña:

Para establecer un período máximo para la contraseña, se debe editar las siguientes variables en /etc/login.defs.

PASS_MAX_DAYS   99999
PASS_MIN_DAYS   0
PASS_WARN_AGE   7

 

En mi caso lo he dejado así:

 

PASS_MAX_DAYS   100
PASS_MIN_DAYS   0
PASS_WARN_AGE   10

 

Esta directiva obligara a los usuarios a cambia la contraseña cada 100 días, y enviara un mensaje 10 días antes del vencimiento de la contraseña.

Mediante el comando chage podemos establecer la caducidad de las contraseñas a un usuario especifico.

Vemos la directivas de un usuario:

 

chage -l rokitoh
Último cambio de contraseña                    :ene 28, 2015
La contraseña caduca                    : nunca
Contraseña inactiva                    : nunca
La cuenta caduca                        : nunca
Número de días mínimo entre cambio de contraseña        : 0
Número de días máximo entre cambio de contraseña        : 99999
Número de días de aviso antes de que caduque la contraseña    : 7

 

Por defecto se establece que la contraseña de un usuario no caduque  nunca. Para cambiar esto simplemente ejecutamos el siguiente comando:

 

 chage -E 5/02/2016 -m 10 -M 80 -I 30 -W 14 rokitoh

 

  • -E 5/02/2016: Esblece que la contraseña expirara el: 5/02/2016
  • -m 10 -M 80: Numero maximo/minimo de días entre los cambios.
  • -I 30: Se bloqueara a los 30 días despues de que expire la contraseña
  • -W 14: Envía el mensaje de advertencia 14 días antes de la expiración de la contraseña

 

Un saludo, rokitoh!

:wq!

Una respuesta a “Hardening – Securizando contraseñas con PAM en GNU/Linux”

Deja una respuesta

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