Dominar SELinux en AlmaLinux: Guía Definitiva 2025

SELinux (Security-Enhanced Linux) es una característica de seguridad avanzada en sistemas Linux, especialmente en distribuciones como AlmaLinux. En 2025, su uso se ha vuelto esencial para proteger servidores y aplicaciones críticas.

🔍 ¿Por qué SELinux es crucial en 2025? #

Security-Enhanced Linux (SELinux) proporciona:

  • ✅ Control de acceso obligatorio (MAC)
  • ✅ Aislamiento de procesos y archivos
  • ✅ Protección contra exploits zero-day
  • ✅ Cumplimiento de normativas (HIPAA, PCI DSS)

📊 Dato: El 78% de las brechas de seguridad en servidores sin SELinux ocurren por permisos incorrectos (Fuente: Red Hat Security Report 2025)

🛠️ Configuración Básica #

Estados de SELinux #

1
2
3
4
5
6
7
8
# Ver estado actual
sudo getenforce

# Cambiar temporalmente a Permissive
sudo setenforce 0

# Hacer cambio permanente (en /etc/selinux/config)
sudo sed -i 's/SELINUX=.*/SELINUX=enforcing/' /etc/selinux/config

🚨 Casos Prácticos Comunes #

Error: “HTTPD no puede acceder a archivos” #

1
2
3
4
5
# Diagnosticar
sudo ausearch -m avc -ts recent | grep httpd
# Solución (cambiar contexto)
sudo semanage fcontext -a -t httpd_sys_content_t "/ruta/a/tu/app(/.*)?"
sudo restorecon -Rv /ruta/a/tu/app

Servicio no puede usar puerto personalizado #

1
2
# Permitir a Nginx usar puerto 3000
sudo semanage port -a -t http_port_t -p tcp 3000

📋 Comandos Esenciales #

ComandoDescripciónEjemplo
chconCambiar contextochcon -t httpd_sys_content_t archivo.html
semanageGestionar políticassemanage port -l | grep http
audit2allowCrear módulosgrep denied /var/log/audit/audit.log | audit2allow -M mi_politica

🔧 Troubleshooting Avanzado #

Analizar logs con sealert #

1
sudo sealert -a /var/log/audit/audit.log

Crear política personalizada #

1
2
grep "avc: denied" /var/log/audit/audit.log | audit2allow -M mi_politica
sudo semodule -i mi_politica.pp

📌 Tabla de Contextos Comunes #

ContextoUso Típico
httpd_sys_content_tArchivos web estáticos
mysqld_db_tBases de datos MySQL
user_home_tArchivos en /home
var_log_tArchivos de logs

⚠️ Solución de Problemas #

“SELinux está bloqueando mi aplicación” #

Identificar el error:

1
sudo grep "avc: denied" /var/log/audit/audit.log

Solución temporal (solo para pruebas):

1
sudo setenforce 0

Solución permanente:

1
2
# Usar las recomendaciones de sealert
sudo sealert -l "*" | grep -A 10 "Sugerencia"

📌 Conclusión #

Con esta guía has aprendido a:

  • Configurar SELinux en modo enforcing
  • Diagnosticar y solucionar errores comunes
  • Crear políticas personalizadas
  • Trabajar con contextos de archivos
  • Próximo paso: Hardening avanzado de AlmaLinux

💡 Tip profesional: Usa restorecon -Rv después de instalar nuevas aplicaciones para resetear contextos.

Comparte

PatoJAD

Arquitecto de Soluciones

Soy Arquitecto de Soluciones con experiencia en entornos GNU/Linux desde 2012, mi sistema operativo principal. Apasionado por la tecnología, busco crecer profesionalmente sin perder de vista la colaboración y la gratitud. Agradezco a quienes han contribuido a este camino.

PatoJAD