← Volver al listado de tecnologías

Capítulo 4: Control de Acceso - sudo y Usuarios

Por: SiempreListo
linuxseguridadsudousuariospermisos

Capítulo 4: Control de Acceso - sudo y Usuarios

Principio de Mínimo Privilegio

Cada usuario debe tener solo los permisos necesarios para realizar su trabajo.

Deshabilitar Login de Root

El usuario root nunca debería usarse directamente:

# Deshabilitar login directo de root
sudo passwd -l root

En /etc/ssh/sshd_config (si no lo hiciste antes):

PermitRootLogin no

Configuración de sudo

Archivo sudoers

Nunca edites /etc/sudoers directamente. Usa:

sudo visudo

Configuración Segura

# Requiere contraseña para sudo
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Timeout de sudo (minutos)
Defaults        timestamp_timeout=5

# Logs detallados
Defaults        logfile="/var/log/sudo.log"
Defaults        log_input, log_output

# Usuarios con sudo
%sudo   ALL=(ALL:ALL) ALL

Agregar Usuario a sudo

sudo usermod -aG sudo nombre_usuario

sudo sin Contraseña (Solo si es Necesario)

Para scripts automatizados específicos:

usuario ALL=(ALL) NOPASSWD: /ruta/al/comando/especifico

Nunca uses NOPASSWD: ALL.

Políticas de Contraseñas

Instalar libpam-pwquality

sudo apt install libpam-pwquality

Configurar Requisitos

Edita /etc/security/pwquality.conf:

# Longitud mínima
minlen = 12

# Requerir diferentes tipos de caracteres
dcredit = -1    # Al menos 1 dígito
ucredit = -1    # Al menos 1 mayúscula
lcredit = -1    # Al menos 1 minúscula
ocredit = -1    # Al menos 1 carácter especial

# Rechazar contraseñas basadas en palabras de diccionario
dictcheck = 1

# Máximo de caracteres consecutivos iguales
maxrepeat = 3

Expiración de Contraseñas

Edita /etc/login.defs:

PASS_MAX_DAYS   90
PASS_MIN_DAYS   7
PASS_WARN_AGE   14

Para usuarios existentes:

sudo chage -M 90 -m 7 -W 14 nombre_usuario

Ver políticas de un usuario:

sudo chage -l nombre_usuario

Proteger /proc

Limita la información visible en /proc:

Edita /etc/fstab:

proc    /proc    proc    defaults,hidepid=2    0    0

Esto oculta procesos de otros usuarios.

Para aplicar sin reiniciar:

sudo mount -o remount,hidepid=2 /proc

Restringir uso de su

Limita quién puede usar su:

# Crear grupo
sudo groupadd suusers

# Agregar usuarios permitidos
sudo usermod -aG suusers tu_usuario

Edita /etc/pam.d/su:

auth required pam_wheel.so group=suusers

Auditoría de Usuarios

Listar Usuarios con Shell

grep -v '/nologin\|/false' /etc/passwd

Usuarios con UID 0 (root)

awk -F: '($3 == "0") {print}' /etc/passwd

Solo debería aparecer root.

Usuarios sin Contraseña

sudo awk -F: '($2 == "") {print $1}' /etc/shadow

Grupos sudo

getent group sudo

Bloquear Cuentas

Temporalmente

sudo passwd -l nombre_usuario

Desbloquear

sudo passwd -u nombre_usuario

Verificar Estado

sudo passwd -S nombre_usuario

Verificación

# Ver configuración sudo
sudo -l

# Verificar logs de sudo
sudo tail /var/log/sudo.log

# Verificar intentos fallidos
sudo lastb