selinux

Cómo modificar la configuración de SELinux con booleanos


Security-Enhanced Linux (SELinux) es una forma de control de acceso obligatorio (MAC) que ayuda a los sistemas Gnu/Linux, (principalmente RPM, basados en Red Hat, Como Rocky Linux, Alma Linux o Fedora, aunque también puedes tenerla en las demas), a hacer cumplir los permisos de archivos y procesos. SELinux se basa en el concepto de etiquetas y tipos de seguridad. Cuando asigna a un archivo una etiqueta SELinux de un tipo, un proceso que lleva una etiqueta de un tipo diferente no puede interactuar con él, aunque los permisos del archivo en el disco pueden ser tan permisivos como 777 (que proporciona permisos de lectura, escritura y ejecución). para propietarios, grupos y otros).

SELinux usa políticas para decidir qué etiquetas y tipos son compatibles entre sí. Por ejemplo, si su sistema tiene la política predeterminada que no permite que un demonio HTTP interactúe con los directorios de inicio de los usuarios, entonces los directorios de inicio de los usuarios son esencialmente intocables para httpd, aunque tenga un archivo de configuración que diga lo contrario.

Como puede deducir, la carga de trabajo es considerable en las políticas de SELinux en el momento de instalar un sistema, pero puedes controlar las decisiones de política a través de los booleanos de SELinux.

Semanage

Es una herramienta de administración de políticas de SELinux. Puede usarlo para ver las opciones booleanas disponibles:

Si haz cambiado algún valor booleano anteriormente, puedes ver su configuración personalizada con la opción –locallist o -C. La forma más común de descubrir que un booleano ha sido diseñado para evitar una interacción es con el Solucionador de problemas de SELinux. Cuando SELinux registra un intento de violación de una política, registra la decisión como un caché de vector de acceso (AVC). La aplicación genera notificaciones de escritorio cada vez que hay una denegación de AVC para que pueda revisar la decisión y anularla o informarla según corresponda.

Supongamos que un servidor web Nginx intenta acceder a un directorio de inicio, el Solucionador de problemas de SELinux sugiere que habilite el booleano httpd_enable_homedirs. Incluso te devuelve un comando que puedes usar.

Si el Solucionador de problemas de SELinux no le notifica sobre una denegación (o si no lo tiene instalado), es posible que aún pueda buscar entre los valores booleanos disponibles y encontrar el que tenga sentido, para activarlo o desactivarlo.

Si no tiene instalado el Solucionador de problemas de SELinux, puede instalarlo con:

Establecer un valor booleano

Para modificar un booleano de SELinux, puede usar semanage –modify junto con –on o –off.

Si lo prefiere, puede usar setsebool, que podría decirse que tiene una sintaxis más simple:

El comando setsebool es una herramienta para configurar rápida y fácilmente los valores booleanos de SELinux. La opción -P hace que su decisión sea persistente en los reinicios, y el 1 hace que el valor booleano sea verdadero.

Conclusion

Los booleanos de SELinux permiten controlar atributos específicos de las políticas de SELinux. Aunque requiere algo de experiencia en el sistema que estés administrando, puedes cambiarlos cuidadosamente o entiende el por qué quieres anularlos. Las políticas existen por buenas razones, y tener control sobre ellas es lo mas saludable. Usando semanage, setsebool y SELinux Troubleshooter, puedes tomar decisiones inteligentes y rápidas sobre qué archivos y procesos pueden interactuar. Hasta otro post lector, buenas vibras.

Happy Hacking!

Deja un comentario