← Volver al listado de tecnologías
Capítulo 4: Control de Acceso - sudo y Usuarios
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