Editado 3 Hace unas semanas por ExtremeHow Equipo Editorial
SeguridadSELinuxConfiguraciónPolíticasLínea de comandosAplicaciónAdministrador del sistemaMonitoreoMejores prácticasControl de Acceso
Traducción actualizada 3 Hace unas semanas
SELinux, que significa Security-Enhanced Linux (Linux con Seguridad Mejorada), es una arquitectura de seguridad integrada en el núcleo que proporciona un mecanismo para soportar políticas de control de acceso. Su objetivo es aplicar políticas del sistema operativo que limiten las capacidades de los programas y protejan el sistema de posibles vulnerabilidades. Configurar SELinux en su sistema basado en Linux puede ayudarle a lograr un entorno más seguro. Esta guía completa explica cómo configurar SELinux en una máquina Linux paso a paso.
Antes de configurar SELinux, es importante entender los modos en los que SELinux puede operar. Estos modos determinan cómo SELinux gestiona el control de acceso en su sistema operativo.
Para configurar SELinux de manera efectiva, necesita comprobar su estado actual. Esto le ayudará a entender si SELinux está activo o no y qué modo está utilizando actualmente.
Abra una ventana de terminal e introduzca el siguiente comando para comprobar el estado:
getenforce
También puede usar el siguiente comando para obtener información más detallada:
sestatus
Este comando le mostrará el estado actual como Enforcing
, Permissive
o Disabled
.
Puede cambiar el modo de SELinux temporalmente o permanentemente. A menudo es útil cambiar el modo temporalmente para pruebas o solución de problemas, pero los cambios permanentes son necesarios para hacer que la configuración sea permanente después de un reinicio.
Para cambiar el modo temporalmente sin reiniciar el sistema, puede usar el comando setenforce
. Por ejemplo, para cambiar al modo de aplicación, ejecute:
sudo setenforce 1
Para cambiar al modo permisivo, ejecute:
sudo setenforce 0
Para hacer el cambio permanente, actualice el archivo de configuración de SELinux ubicado en /etc/selinux/config
. Abra este archivo usando un editor de texto:
sudo nano /etc/selinux/config
Busque la línea que comienza con SELINUX=
y cambie su valor a enforcing
, permissive
o disabled
dependiendo de sus necesidades. Por ejemplo:
SELINUX=enforcing
Guarde y cierre el archivo, luego reinicie su sistema para hacer efectivos los cambios.
Las políticas de SELinux definen las reglas de seguridad aplicadas por SELinux. Estas políticas controlan los permisos otorgados a varios usuarios y servicios en el sistema. Las políticas más comúnmente utilizadas son:
Para averiguar la política actualmente en uso, ejecute el siguiente comando en la terminal:
sestatus | grep "Loaded policy name"
Para gestionar eficazmente SELinux, puede que necesite instalar herramientas y paquetes relacionados, que varían dependiendo de la distribución. A continuación, algunos paquetes comunes que pueden ser útiles.
Use el gestor de paquetes apt
para instalar las herramientas SELinux:
sudo apt update sudo apt install policycoreutils selinux-utils setools
Use el gestor de paquetes yum
o dnf
para instalar las herramientas SELinux:
sudo yum install policycoreutils selinux-policy setools
Entender cómo habilitar o deshabilitar políticas de SELinux para servicios específicos puede ser importante para lograr el nivel de seguridad que necesita sin interrumpir las funcionalidades previstas de los servicios. SELinux usa booleanos para activar o desactivar políticas para funcionalidades específicas.
Para listar los booleanos de SELinux disponibles, ejecute el siguiente comando:
getsebool -a
Para cambiar el valor de un booleano temporalmente (hasta el próximo reinicio):
sudo setsebool httpd_enable_homedirs on
Para cambiar permanentemente el valor del booleano use la opción -P
, que escribe el cambio en disco:
sudo setsebool -P httpd_enable_homedirs on
SELinux usa contextos (también llamados etiquetas) para determinar los permisos en archivos y procesos. A veces, necesita establecer o cambiar estos contextos manualmente. Puede ver el contexto de un archivo con el comando ls -Z
:
ls -Z /var/www/html
Si necesita cambiar el contexto de un archivo, use el comando chcon
. Por ejemplo, para cambiar el archivo al contexto apropiado para el servidor web:
sudo chcon -t httpd_sys_content_t /var/www/html/index.html
Si un archivo tiene el contexto de SELinux incorrecto, puede restaurarlo a su contexto predeterminado usando el comando restorecon
:
sudo restorecon -Rv /var/www/html
Este comando restaurará recursivamente el contexto SELinux correcto para el directorio especificado.
Cuando SELinux está en modo de aplicación, a veces puede bloquear acciones legítimas, especialmente cuando se instalan aplicaciones personalizadas. Solucionar problemas de SELinux requiere analizar registros y entender por qué algo es denegado.
Los mensajes de SELinux se registran en /var/log/audit/audit.log
o, en algunos sistemas, /var/log/messages
. Para ver el registro, use un editor de texto o el comando tail
:
sudo tail -n 50 /var/log/audit/audit.log
Los registros pueden ser complejos y extensos, por lo que herramientas especializadas como audit2allow
pueden ayudar a darles sentido. Esta herramienta convierte las entradas de registro en formatos legibles y hasta sugiere las políticas necesarias para permitir acciones no aprobadas.
grep AVC /var/log/audit/audit.log | audit2allow -m custompolicy
El comando anterior puede ayudarle a crear un módulo SELinux que permita una acción particular. Tenga cuidado al permitir acciones, ya que esto puede reducir la seguridad general de su sistema.
Configurar SELinux en Linux implica entender los diferentes modos, verificar el estado, cambiar modos, trabajar con políticas y booleanos, etiquetar archivos y restaurar contextos. SELinux es un sistema poderoso que mejora significativamente la seguridad de su entorno Linux al aplicar controles estrictos de acceso. Configurado correctamente, puede defenderse contra amenazas que buscan acceso no autorizado o interrupciones.
Asegúrese de monitorear constantemente los registros y mantener una política actualizada para adaptarse al software recién instalado y los requisitos cambiantes del sistema. SELinux puede parecer complicado inicialmente, pero a medida que se familiariza con sus características, se convierte en una herramienta indispensable para mejorar la seguridad de Linux.
Si encuentras algo incorrecto en el contenido del artículo, puedes