La administración de usuarios es una de la partes más
importantes de la configuración y mantenimiento de un servidor, además de estar
directamente relacionada con la seguridad de un sistema Linux, pues los
permisos otorgados a cada uno de los usuarios de un sistema son la clave al
momento de establecer unas políticas de seguridad efectivas.
Por defecto, cuando creamos un usuario y contraseña ésta son
“para toda la vida” a no ser que un día decidamos cambiarla o que hagamos uso
de la caducidad de contraseñas, es decir, que sean válidas durante un tiempo
determinado y una vez transcurrido dejan de serlo y hay que modificarlas.
Uno de los comandos que nos permiten hacer esto es chage,
con el cual podremos definir y obligarnos u obligar a otros usuarios del
sistema a cambiar su contraseña cada X tiempo.
Si consultamos el manual de el comando chage, nos muestra
las siguientes opciones
$ chage --help
Modo de uso: chage [opciones] [USUARIO]
Opciones:
-d, --lastday
ULTIMO_DÍA establece el último
cambio de clave a
ULTIMO_DÍA
-E, --expiredate
FECHA_EXP establece la fecha de
caducidad de la
cuenta a
FECHA_EXP
-h, --help muestra este mensaje de
ayuda y termina
-I, --inactive
INACTIV desactiva la cuenta
después de INACTIV
días desde la fecha de
expiración
-l, --list muestra la información de
envejecimiento
de la cuenta
-m, --mindays
DÍAS_MIN establece el número
mínimo de días antes
de cambiar la
clave a DÍAS_MIN
-M, --maxdays
DÍAS_MAX establece el número
máximo de días antes
de cambiar la
clave a DÍAS_MAX
-W, --warndays
DÍAS_AVISO establece el número de
días de aviso
a DÍAS_AVISO
Ahora vamos a obtener información de un usuario
cualquiera:
chage -l usuario
chage -l usuario
Último cambio de contraseña :dic 30, 2011
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ñas : 99999
Número de días de aviso antes de que expire la contraseña :
7
quí podemos ver cuando fue la última vez que cambió su
contraseña, cuando caduca, cuando la contraseña quedará inactiva, cuando
caducará la cuenta, días mínimos que han de transcurrir para poder modificarla,
el número de días que la contraseña es válida y con cuantos días de antelación
nos avisará antes de que llegue la fecha de caducidad.
¿Qué pasa si un password de un usuario expira?
Si establecemos como días inactivos 5 desde que la
contraseña caducó y el usuario no se loguea durante esos 5 días, y lo hace 10
días después la cuenta será bloqueada y será root quien tenga que
desbloquearla, pero si llega la fecha de caducidad y nos logueamos dentro de
esos 5 días sí podremos acceder pero deberemos cambiar la contraseña.
¿Cómo definir los requisitos de longitud de passwords y
complejidad para todos los usuarios?
De forma predeterminada, Ubuntu requiere un mínimo de 6
caracteres para la creación de una contraseña, además de algunas verificaciones
de entropía. Estos valores son controlados por el archivo
/etc/pam.d/common-password que se describe a continuación:
password [success=2 default=ignore] pam_unix.so obscure sha512
Por lo que si se desea establecer una contraseña según
políticas establecidas, podemos especificar las opciones siguientes:
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 )
Si por ejemplo quieres cambiar el mínimo de caracteres para
la contraseña de 6 a 8, entonces cambia el valor de la variable correspondiente
a min=8 como se muestra en el siguiente ejemplo:
password [success=2
default=ignore] pam_unix.so obscure sha512 min=8
Ahora si lo que queremos es establecer la complejidad de la
contraseña lo haremos con los parámetros ucredit, lcredit, dcredit y ocredit en
una línea que contenga "password" y "pam_cracklib.so":
password requisite
pam_cracklib.so retry=3 minlen=10 difok=3 ucredit=-1 lcredit=-2
dcredit=-1 ocredit=-1
Al asignar los valores: "ucredit=-1 lcredit=-2
dcredit=-1 ocredit=-1" forzará a incluir al menos un caŕacter en mayúscula
(ucredit), dos en minúscula (lcredit), uno numérico (dcredit) y un símbolo
(ocredit).
¿Cómo activar el historial de passwords para evitar que un
usuario utilice dos veces el mismo password?
Para activar el historial de passwords ejecutamos el
siguiente comando:
password sufficient
pam_unix.so sha512 shadow nullok try_first_pass use_authtok remember=5
¿Cómo activar el bloqueo de cuentas para un usuario que
intenta entrar varias veces a una cuenta con una contraseña erronea? Supongamos
5 veces
Para establecer el bloqueo de cuentas para un usuario
despues de determinados intentos utilizamos el siguiente comando:
password requisite
pam_cracklib.so try_first_pass retry=5
No hay comentarios:
Publicar un comentario