Lo que haremos en este post es el establecer una política de seguridad para la renovación de contraseñas de los usuarios en el servidor y también sobre reglas para la creación de las mismas.
Abrimos y editamos el siguiente archivo:
$ vi /etc/login.defs
# Controles de vigencia de contraseñas:
#
# PASS_MAX_DAYS Máximo numero de días que una contraseña debe usarse
# PASS_MIN_DAYS Número mínimo de días permitidos entre los cambios de contraseña.
# PASS_MIN_LEN Longitud mínima de la contraseña aceptable.
# PASS_WARN_AGE Número de días de aviso antes de dar una contraseña expire.
#
PASS_MAX_DAYS 60
PASS_MIN_DAYS 0
PASS_MIN_LEN 10
PASS_WARN_AGE 7
Esta configuración sólo afectara cuando se creen nuevos usuarios, y no a los a los usuarios ya existente, si deseamos aplicar una vigencia de contraseñas a usuarios que ya existan entonces ejecutamos el comando: chage -M [días] [usuario]
.
Ahora editamos system-auth
para establecer las mismas políticas definidas anteriormente, esto podrá ser usado en cualquier servicio del sistema remoto/local (ssh), caso contrario con login.defs
solo aplica para la consola local.
Editamos el archivo de configuración:
$ vi /etc/pam.d/system-auth
Establecer una contraseña según políticas establecidas.
- Establecer una mínima de longitud de la contraseña (minlen = N)
- Forzar el uso mínimo de N números en la contraseña (dcredit=-N)
- Forzar el uso mínimo de N letras mayúsculas ( ucredit=-N )
- Forzar el uso mínimo de N letras minúsculas ( lcredit=-N )
- Forzar el uso mínimo de N símbolos ( ocredit=-N )
- Forzar un mínimo de N caracteres diferentes de la contraseña actual ( difok=N )
Y la configuración queda de la siguiente forma:
password requisite pam_cracklib.so try_first_pass retry=3 type= difok=3
minlen=10 dcredit=-2 ucredit=-2 lcredit=-2 ocredit=0
Ahora establecemos que se recuerden las ultimas 5 contraseña con la opción remember
password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok
remember=5