Gestión de usuarios

La gestión de usuarios es una parte critica para el mantenimiento de la seguridad. Una mala gestión compromete el sistema. Es importante conocer las técnicas de gestión de cuentas. Si por alguna razón deseas tener una cuenta de root, simplemente dale una contraseña:

sudo passwd

Para discapacitar la cuenta root:

sudo passwd -l root

Mas información en:

man sudo

Por defecto, el usuario inicial creado en la instalación es miembro del grupo "admin" el cual es añadido al archivo /etc/sudoers como un usuario de sudo autorizado.

Debian fomenta el uso del paquete adduser para gestionar cuentas.
Para añadir una cuenta de usuario usa lo siguiente y sigue los prompts:

sudo adduser username

Para borrar una cuenta y su grupo primario:

sudo deluser username

Borrar una cuenta no borra la carpeta home.
Recuerda, cualquier usuario añadido después con el mismo UID/GID tendrá acceso a la carpeta home del usuario borrado anteriormente.

Quizás quieras cambiar estos UID/GID por valores mas apropiados, como la cuenta root, y cambiar la carpeta de lugar para evitar conflictos.

sudo chown -R root:root /home/username/
sudo mkdir /home/archived_users/
sudo mv /home/username /home/archived_users/

Para bloquear o desbloquear temporalmente una cuenta de usuario:

sudo passwd -l username
sudo passwd -u username

Para añadir o borrar un grupo:

sudo addgroup groupname
sudo delgroup groupname

Para añadir un usuario a un grupo:

sudo adduser usename groupname

Seguridad del perfil de usuario

Cuando un nuevo usuario es creado, la utilidad adduser crea una nueva marca en el directorio home nombrado /home/username. El perfil por defecto es modelado después, los contenidos se encuentran en /etc/skel.

Si tu server será home de multiples usuarios, debes poner atención a los permisos de directorio para asegurar confidencialidad. Por defecto, los directorios home de usuario son creados con permisos lectura/ejecucion. Esto significa que todos los usuarios pueden navegar y acceder al contenido del home de otros usuarios. Esto puede que debas cambiarlo.

Para verificar los permisos del directorio home de los usuarios:

ls -ld /home/username

Tu puedes quitar los permisos con:

sudo chmod 0750 /home/username

Ojo con la opción recursiva -R puede dar resultados indeseables. El directorio padre por si solo es suficiente para prevenir el acceso no autorizado a cualquier cosa por debajo.

Un enfoque mucho más eficiente sería modificar el valor predeterminado de global adduser. Basta con editar el archivo /etc/adduser.conf y modificar la variable DIR_MODE a algo apropiado, de manera que todos los directorios nuevos reciban los permisos correctos.

DIR_MODE=0750

Después de corregir los permisos de directorio comprobarlo con:

ls -ld /home/username

Política de contraseñas

Una politíca de contraseñas fuertes es uno de los más importantes aspectos de tu seguridad.
Muchas brechas de seguridad se consiguen con simple fuerza bruta y ataques de diccionario contra contraseñas debiles.
Asegurate de que cumplan los requisitos mínimos de complejidad, tiempo de vida y realiza auditorías frecuentes del sistema de autenticación.

La longitud mínima es de 4 caracteres. Estos valores se controlan en /etc/pam.d/common-password.

Cuando creamos cuentas de usuario debemos hacer que las contraseñas tengan un tiempo de vida, forzando a los usuarios a cambiarlas cuando expiren.

Para ver el estado actual de la cuenta de un usuario:

sudo chage -l username

Lo siguiente es un ejemplo de como cambiar manualmente la fecha de expiración (-E), la edad minima de la contraseña (-m), la edad máxima (-M), el periodo de inactividad después de la expiración (-I), y un warning antes de la expiración (-W).

sudo chage -E 01/31/2009 -m 5 -M 90 -I 30 -W 14 username

Verifica los cambios:

sudo chage -l username

Muchas aplicaciones utilizan mecanismos alternativos de autenticación que pueden ser fácilmente pasadas por alto, incluso por los administradores de sistemas más experimentados.
Es importante comprender y controlar cómo los usuarios se autentican y acceden a los servicios y aplicaciones en el servidor.

Simplemente desactivar/bloquear una cuenta de usuario no impedirás que un usuario acceda a tu servidor de forma remota si se ha configurado la autenticación RSA de clave pública. Todavía tendrá acceso shell sin necesidad de contraseña. Recuerda comprobar el directorio home de los usuarios para los archivos que permitan este tipo de acceso SSH autenticado.
Ejemplo:
/home/username/.ssh/authorized_keys

Quita o renombra el directorio .ssh/ en la carpeta home del usuario para prevenir la capacidad de autenticación SSH.

Consulta cualquier conexión SSH establecida por el usuario discapacitado, ya que es posible que tengan conexiones de entrada o salida existentes. Mata lo que encuentres.

Restringe el acceso SSH a solo los usuarios que deban tenerlo. Puedes crear un grupo llamado "sshlogin" y añade el grupo como valor asociado con AllowGroups, variable localizada en /etc/ssh/sshd_config.

AllowGroups sshlogin

Añade los usuarios permitidos al grupo "sshlogin" y reinicia el servicio SSH.

sudo adduser username sshlogin
sudo /etc/init.d/ssh restart