Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills
25.08.2025

¿Qué es SELinux y cómo puede mejorar la seguridad en Linux?

Cuando se trata de proteger servidores Linux, la mayoría de los administradores piensan en lo básico: mantener los paquetes actualizados, configurar cortafuegos, limitar el acceso SSH. Sin embargo, a menudo se pasa por alto uno de los mecanismos de seguridad más potentes: SELinux (Security-Enhanced Linux). No se trata de un simple complemento, sino de un marco de seguridad a nivel del núcleo diseñado para detener las intrusiones antes de que se intensifiquen. Tanto para servidores VPS como dedicados, SELinux puede significar la diferencia entre un incidente menor y un compromiso total del sistema.

¿Qué es SELinux?

SELinux es un módulo de seguridad del kernel de Linux que aplica el Control de Acceso Obligatorio (MAC).

  • Bajo el modelo tradicional DAC (Control de Acceso Discrecional), el acceso es determinado por los propietarios de los archivos, y root tiene poder sin restricciones.
  • Bajo MAC (SELinux), el acceso se rige por las políticas de seguridad de todo el sistema. Incluso root está sujeto a restricciones.

Desarrollado inicialmente por la NSA en colaboración con Red Hat, SELinux se integró en el núcleo de Linux a principios de la década de 2000 y ahora es estándar en distribuciones empresariales como RHEL, CentOS, Fedora, AlmaLinux y Rocky Linux.

El problema: donde la seguridad tradicional de Linux se queda corta

El modelo clásico de permisos UNIX (DAC) tiene debilidades críticas:

  • Root es todopoderoso. Cualquier exploit que escale a root compromete todo el sistema.
  • Compromiso del servicio = compromiso del sistema. Un módulo Apache o un script PHP pirateados pueden acceder a datos sensibles.
  • Los vectores de ataque modernos evitan el DAC. Las web-shells, los exploits de escalada de privilegios y los escapes de contenedores son comunes.

Escenario del mundo real:
Una vulnerabilidad de carga de CMS permite a un atacante lanzar una web-shell. Sin SELinux, el atacante puede leer config.php, extraer las credenciales de la base de datos y comprometer toda la pila. Con SELinux, el proceso del servidor web (httpd_t) está confinado y no puede acceder a archivos fuera de su dominio designado.

Cómo funciona SELinux

Cada proceso, archivo, puerto y socket tiene un contexto de seguridad (etiqueta).
Las políticas definen qué contextos pueden interactuar.

Ejemplo:

  • Apache se ejecuta en el dominio httpd_t.
  • Los archivos del sitio web están etiquetados como httpd_sys_content_t.
  • La política permite a httpd_t leer sólo ficheros httpd_sys_content_t.

Si Apache intenta leer /etc/shadow (shadow_t), el kernel deniega la petición y registra la violación.

Modos de funcionamiento

  • Enforcing: las políticas se aplican, las violaciones se bloquean.
  • Permisivo: las violaciones se registran pero no se bloquean (útil para pruebas).
  • Desactivado: SELinux está desactivado (no recomendado).

Práctica recomendada: comience en Permisivo, revise los registros, ajuste las políticas y, a continuación, pase a Enforcing para la producción.

Por qué SELinux es importante para Hosting y DevOps

  • Aislamiento de procesos: limita los daños cuando un único servicio se ve comprometido.
  • Aplicación de privilegios mínimos: ni siquiera root puede saltarse las restricciones de las políticas.
  • Forense y visibilidad: todas las acciones denegadas se registran (/var/log/audit/audit.log).
  • Seguridad de contenedores: impide que los contenedores Docker/Podman escapen de sus límites.
  • Cumplimiento: necesario en entornos regulados (PCI DSS, HIPAA, despliegues de grado militar).

Tipos de políticas

  • Dirigida (por defecto): restringe sólo los servicios orientados a la red (Apache, Nginx, Postfix, Dovecot).
  • Estricta: aplica MAC a todos los procesos.
  • MLS/MCS: políticas avanzadas para seguridad multinivel o de grado gubernamental.

Para la mayoría de las cargas de trabajo de VPS y servidores dedicados, la política dirigida es el mejor equilibrio entre facilidad de uso y protección.

Ejemplos prácticos

Comprobar el estado de SELinux

getenforce sestatus

Restaurar contextos de archivos después de mover archivos web

restorecon -Rv /var/www/html

Listar etiquetas de seguridad de archivos

ls -Z /var/www/html

Permitir conexiones salientes de servicios web (por ejemplo, llamadas API)

setsebool -P httpd_can_network_connect 1

Revisar las acciones denegadas en los registros

ausearch -m avc -ts recent

Conclusión

SELinux es más que una característica de seguridad adicional; es un marco fundamental que redefine cómo Linux aplica el control de acceso. Al limitar los procesos, reducir el impacto de las vulnerabilidades y proporcionar registros de auditoría detallados, SELinux transforma un sistema Linux en un entorno mucho más resistente. Aunque requiere una cuidadosa configuración y comprensión, las ventajas de seguridad que aporta a las modernas infraestructuras de servidores lo convierten en un componente esencial para cualquier despliegue de producción.

Pon a prueba tus habilidades en todos nuestros servicios de Hosting y ¡obtén un 15% de descuento!

Utiliza el código al pagar:

Skills