Proteger un servidor Linux requiere más que simples permisos. Muchos sistemas se basan únicamente en controles de acceso estándar, lo que puede generar vulnerabilidades si algo falla. SELinux añade una capa adicional de protección al controlar cómo interactúan entre sí los procesos, los archivos y los recursos del sistema.
SELinux funciona aplicando políticas de seguridad estrictas mediante el control de acceso obligatorio, lo que ayuda a limitar el impacto de las vulnerabilidades o el acceso no autorizado. Incluso si un atacante logra acceder, sus acciones permanecen restringidas, lo que reduce el riesgo de daños graves.
Aquí aprenderás a instalar SELinux en un servidor Linux, habilitarlo correctamente y comprobar su estado actual. Al finalizar, comprenderás claramente cómo usar SELinux para mejorar la seguridad de tu servidor de forma práctica.
¿Qué es SELinux?

SELinux es un Kernel Linux Módulo de seguridad diseñado para aplicar políticas de control de acceso en un sistema. Proporciona una capa de seguridad adicional al controlar cómo los programas acceden a archivos, procesos y otros recursos.
SELinux utiliza control de acceso obligatorio (MAC) definir y aplicar políticas de seguridad que sean más estrictas que el control de acceso discrecional (DAC) estándar en Linux.
Con SELinux, los administradores pueden ajustar la seguridad del sistema, garantizando que incluso si un atacante obtiene acceso a un sistema, tendrá restringida su capacidad de causar daño.
¿Por qué instalar SELinux en un servidor Linux?
La instalación de SELinux en su servidor Linux ofrece varios beneficios clave:
- Seguridad mejorada:SELinux reduce significativamente el riesgo de explotación al limitar la capacidad de los procesos para realizar acciones no autorizadas.
- Control granularCon SELinux, puede definir reglas muy específicas sobre qué procesos pueden acceder a qué recursos, minimizando la superficie de ataque.
- Protección contra vulnerabilidades:SELinux ayuda a mitigar el daño causado por las vulnerabilidades del software al evitar el acceso no autorizado a archivos y procesos confidenciales del sistema.
- Auditoría y CumplimientoSELinux mantiene un registro de auditoría detallado de los eventos relevantes para la seguridad, lo que le ayuda a cumplir con los requisitos de cumplimiento normativo.
Vamos a sumergirnos en cómo instalar SELinux y configurarlo en su Servidor Linux.
Requisitos previos
Antes de comenzar el proceso de instalación, asegúrese de tener los siguientes requisitos previos:
- Un servidor Linux:SELinux se utiliza normalmente en distribuciones de Linux como RHEL, CentOS, Fedora e incluso Ubuntu (aunque no está habilitado de forma predeterminada en todas las distribuciones).
- Privilegios de root o sudoNecesita acceso administrativo para instalar y configurar SELinux.
- Conocimientos básicos de seguridad en LinuxLa familiaridad con los permisos de archivos, los roles de usuario y los controles de acceso le ayudará a comprender el modelo de seguridad de SELinux.
Instalar SELinux en Linux
El proceso de instalación de SELinux Varía según la distribución de Linux que uses. Exploremos cómo... instalar SELinux en distribuciones de Linux populares como RHEL, CentOS, Fedora y Ubuntu/Debian.
Revisa | Instalar IPTables en un servidor Linux desde cero [Apta para principiantes]
Instalación de SELinux en RHEL/CentOS/Fedora
- Instalar paquetes SELinux:
En sistemas basados en Red Hat (RHEL, CentOS, Fedora)SELinux suele venir incluido por defecto. Si aún no está instalado, use el siguiente comando para instalarlo:
sudo yum install selinux-policy selinux-policy-targeted- Habilitar SELinux en el arranque:
Para garantizar que SELinux esté habilitado al iniciar el sistema, ejecute:
sudo systemctl enable --now selinux- Comprobar el estado de SELinux:
Después de la instalación, verifique que SELinux esté instalado y ejecutándose:
sestatusInstalación de SELinux en Ubuntu/Debian
- Instalar paquetes SELinux:
En los sistemas basados en Ubuntu o Debian, SELinux no siempre viene instalado por defecto. Para instalarlo, ejecute el siguiente comando:
sudo apt-get install selinux-utils selinux-policy-default- Habilitar SELinux:
Después de la instalación, debe habilitar SELinux modificando el /etc/selinux/config Archivo. Ábrelo para editarlo:
sudo nano /etc/selinux/configConfigure SELINUX directiva a enforcing:
SELINUX=enforcing- Reiniciar el sistema:
Después de modificar la configuración, reinicie su servidor para que los cambios surtan efecto:
sudo reboot- Verificar el estado de SELinux:
Compruebe si SELinux está habilitado correctamente utilizando:
sestatusConfiguración de SELinux
En el momento que todos los DARWINs coticen incluyendo los deslizamientos SELinux Una vez instalado, debe configurarse para que se ajuste a sus necesidades de seguridad. SELinux funciona en tres modos diferentes:
- Modo de cumplimiento:SELinux aplica las políticas de seguridad, negando el acceso a los recursos que no cumplen con la política.
- Modo permisivo:SELinux registra las violaciones pero no aplica políticas, lo que lo hace útil para solucionar problemas y realizar pruebas.
- Modo deshabilitado:SELinux está completamente desactivado.
Comprobación del estado de SELinux
Utilice el siguiente comando para comprobar el estado actual de SELinux:
getenforceEsto devolverá cualquiera de los dos Enforcing, Permissive o Disabled, indicando el modo actual.
También puede utilizar la función sestatus Comando para obtener un informe de estado más detallado:
sestatusCambiar los modos de SELinux
Para cambiar los modos de SELinux, utilice el setenforce mando:
- Para cambiar a Modo de cumplimiento:
sudo setenforce 1- Para cambiar a Modo permisivo:
sudo setenforce 0También puedes cambiar el modo de forma permanente editando el /etc/selinux/config .
- Abre el archivo:
sudo nano /etc/selinux/config- Establezca la directiva SELINUX en
enforcing,permissiveodisabled:
SELINUX=enforcing- Guarde el archivo y reinicie el servidor para aplicar los cambios.
Configuración de SELinux para iniciarse al arrancar
Asegúrese de que SELinux esté habilitado para iniciarse en el arranque configurando el modo correcto en el /etc/selinux/config archivo como se mencionó anteriormente.
Contextos de SELinux
Una de las características clave de SELinux es su uso de contextos Para asignar etiquetas de seguridad a archivos, procesos y otros recursos. Cada recurso del sistema se etiqueta con un contexto que determina el tipo de acceso que puede tener.
¿Qué son los contextos SELinux?
Los contextos se componen de varios componentes:
- El sistema de reservas de escritorios, interactivo y fácil de usar, ayuda a gestores y empresas a adaptarse a la nueva rutina laboral. El sistema inteligente optimiza espacios y horarios según necesidades reales.: Representa la identidad del usuario de SELinux.
- Rol:Define el rol que puede asumir un proceso o archivo.
- Tipo: Especifica el tipo de recurso (por ejemplo, archivo, proceso).
- Nivel:Se utiliza en una configuración de seguridad multinivel (MLS) para imponer niveles de confidencialidad.
Administración de contextos de SELinux
Puede ver los contextos de archivos utilizando:
ls -ZPara cambiar el contexto de un archivo, utilice el chcon mando:
sudo chcon -t httpd_sys_content_t /var/www/html/index.htmlEsto cambia el contexto de la index.html archivo al que el servidor web podrá acceder.
Solución de problemas de SELinux
SELinux a veces puede bloquear acciones legítimas, especialmente cuando las aplicaciones no cumplen con las estrictas normas de seguridad. En estos casos, es fundamental comprender los registros y solucionar los problemas según corresponda.
Revisión de los registros de SELinux
Puede revisar los registros de auditoría de SELinux para identificar acciones bloqueadas. Estos registros suelen estar ubicados en /var/log/audit/audit.log. Utilizar herramientas audit2allow para analizar y generar reglas basadas en estos registros.
El uso de setroubleshoot para una depuración más sencilla
El setroubleshoot Esta herramienta proporciona una interfaz fácil de usar para ayudarle a solucionar problemas de denegación de SELinux. Instálela usando:
sudo yum install setroubleshootTras la instalación, podrá ver mensajes de error detallados y acciones sugeridas para resolver problemas relacionados con SELinux.
Mejores prácticas para la gestión de SELinux
Sacar el máximo partido a SELinux, siga estas prácticas recomendadas:
- Registros de auditoría periódicamente:Supervise periódicamente los registros de SELinux para identificar cualquier actividad inusual o bloqueada.
- Utilizar políticas de SELinux:Utilice políticas SELinux predefinidas o cree políticas personalizadas para satisfacer sus necesidades de seguridad.
- Cambios de prueba en modo permisivo:Pruebe siempre las nuevas reglas en modo permisivo para asegurarse de que no alteren ninguna funcionalidad.
- Políticas de respaldo de SELinuxRealice copias de seguridad periódicas de sus configuraciones de SELinux para asegurarse de poder recuperarse rápidamente de cualquier problema.
Conclusión
Configuración de SELinux en un servidor Linux Añade una importante capa de seguridad que va más allá de los permisos básicos. Controla cómo interactúan los procesos, los archivos y los servicios, lo que ayuda a reducir los riesgos y limitar los daños incluso si un sistema se ve comprometido.
Una vez configurado correctamente, SELinux proporciona un mejor control, un registro detallado y una protección mejorada sin afectar las operaciones normales. Al gestionar sus modos y supervisar los registros periódicamente, puede mantener un entorno de servidor seguro y estable a lo largo del tiempo.