Saltar al contenido principal

Capítulo 5.4 - Buenas Prácticas

Objetivos de Aprendizaje​

Al final de este capítulo, usted será capaz de:

  • Aplicar buenas prácticas de seguridad
  • Gestionar usuarios de manera segura
  • Comprender el principio de menor privilegio
  • Implementar políticas de contraseñas
  • Auditar los permisos

Principio de Menor Privilegio​

Concepto​

Otorgar solo los permisos necesarios, nada más.

Ventajas:

  • Reducción de la superficie de ataque
  • Limitación de daños en caso de compromiso
  • Cumplimiento de seguridad

Gestión de Usuarios​

Creación​

Buenas prácticas:

  • Crear usuarios con UID ≥ 1000
  • Grupo principal dedicado
  • Directorio home con permisos 700
  • Shell apropiado (no /bin/false para usuarios normales)
# Buen ejemplo
sudo useradd -m -s /bin/bash -u 1001 -g users user1
sudo chmod 700 /home/user1

Eliminación​

Buenas prácticas:

  • Desactivar antes de eliminar (usermod -L)
  • Respaldar datos importantes
  • Verificar procesos activos
  • Limpiar directorios y archivos
# Proceso recomendado
sudo usermod -L user1 # Bloquear
sleep 30 # Esperar
sudo pkill -u user1 # Matar procesos
sudo userdel -r user1 # Eliminar

Gestión de Grupos​

Organización​

Buenas prácticas:

  • Grupos por proyecto/equipo
  • Grupos por función (developers, admins)
  • Evitar grupos demasiado amplios
  • Documentar los grupos
# Ejemplo de organización
sudo groupadd proyecto-alpha
sudo groupadd developers
sudo groupadd admins

Miembros​

Buenas prácticas:

  • Agregar solo usuarios necesarios
  • Revisar regularmente los miembros
  • Retirar usuarios inactivos
  • Documentar los añadidos

Contraseñas​

Política​

Configuración en /etc/login.defs:

# Duración mínima (días)
PASS_MIN_DAYS 1

# Duración máxima (días)
PASS_MAX_DAYS 90

# Advertencia (días antes de expiración)
PASS_WARN_AGE 7

Complejidad​

Configuración con PAM:

# /etc/pam.d/common-password (Ubuntu/Debian)
password requisite pam_pwquality.so retry=3 minlen=8 difok=3

Requisitos:

  • Longitud mínima (8+ caracteres)
  • Complejidad (mayúsculas, minúsculas, números, símbolos)
  • No palabras del diccionario
  • Sin repeticiones

Expiración​

# Forzar cambio en el próximo login
sudo chage -d 0 user1

# Definir expiración
sudo chage -E 2024-12-31 user1

# Ver información
chage -l user1

Permisos de Archivos​

Directorios del Sistema​

Buenas prácticas:

  • /etc: 755 (root:root)
  • /bin, /sbin: 755 (root:root)
  • /home: 755 (root:root)
  • /home/user: 700 (user:user)
  • /tmp: 1777 (root:root, sticky bit)

Archivos de Configuración​

Buenas prácticas:

  • Permisos restrictivos (600-644)
  • Propietario root o servicio
  • Sin ejecución salvo necesario
# Ejemplo
sudo chmod 600 /etc/shadow
sudo chmod 644 /etc/passwd
sudo chmod 640 /etc/group

Uso de sudo​

Configuración​

Buenas prácticas:

  • Usar sudo en lugar de root directo
  • Limitar los comandos autorizados
  • Registrar las acciones
  • Timeout apropiado
# /etc/sudoers
# Otorgar acceso completo
user1 ALL=(ALL:ALL) ALL

# Limitar a comandos específicos
user1 ALL=(ALL) /usr/bin/systemctl, /usr/bin/docker

# Sin contraseña (¡precaución!)
user1 ALL=(ALL) NOPASSWD: ALL

Verificación​

# Ver privilegios sudo
sudo -l

# Ver historial
sudo cat /var/log/auth.log | grep sudo

Auditoría y Monitoreo​

Verificar los Permisos​

# Archivos con permisos amplios
find /home -type f -perm -o+w

# Archivos SUID/SGID
find / -type f -perm /4000 # SUID
find / -type f -perm /2000 # SGID

# Directorios world-writable
find / -type d -perm -o+w

Monitoreo de Conexiones​

# Usuarios conectados
who
w

# Historial de conexiones
last
lastlog

# Intentos fallidos
sudo grep "Failed password" /var/log/auth.log

Seguridad de Root​

Buenas Prácticas​

Nunca:

  • Conectarse directamente como root
  • Compartir la cuenta root
  • Usar root para tareas normales

Siempre:

  • Usar sudo
  • Limitar el acceso root
  • Registrar acciones de root
  • Cambiar la contraseña de root regularmente

Resumen​

En este capítulo, usted ha aprendido:

Menor privilegio: Otorgar solo los permisos necesarios
Usuarios: Creación segura, eliminación adecuada
Grupos: Organización lógica, miembros controlados
Contraseñas: Política fuerte, expiración
Permisos: Restrictivos, auditoría regular
sudo: Configuración adecuada, registro
Auditoría: Verificaciones regulares, monitoreo


Próximos Pasos​

Módulo 6: Scripting Shell (con crons)
Módulo 7: Red y Configuración


Capítulo creado el: Diciembre 2024