Seguridad de Linux: manipulación de políticas de SELinux con valores booleanos

Linux con seguridad mejorada, mejor conocido como SELinux, existe desde hace un tiempo y por una buena razón. Desarrollado originalmente por la Agencia de Seguridad Nacional, ha sido parte de la comunidad de código abierto desde 2000 y el kernel de Linux desde 2003. SELinux ayuda a los administradores a controlar cómo las diferentes partes de un sistema Linux pueden realizar acciones con controles detallados.

Índice

Operación básica

En resumen, SELinux utiliza una base de datos de políticas para aprobar o denegar el acceso a archivos, aplicaciones o procesos en un sistema determinado. Las aplicaciones y los procesos se definen como solicitudes posteriores de acceso a (llamados) archivos. Se toma una decisión en función de las políticas y los permisos almacenados en un AVC (Access Vector Cache).

Cambios rápidos

¿Qué sucede cuando necesita usar un servicio bloqueado por una de estas políticas? Redefinir la política puede ser innecesario, dado el contexto. es aquí que Booleanos entrar en escena. Un booleano es esencialmente un interruptor que permite cambios de política sobre la marcha en áreas específicas dentro de SELinux. Estos valores booleanos son cadenas que nos permiten realizar cambios a nivel micro en una política aplicada activamente.

¿Cuáles son los valores booleanos disponibles?

Para mostrar una lista de los valores booleanos disponibles, puede utilizar getsebool -a. Cualquier usuario puede ejecutar este comando.

[[email protected] ~]$ getsebool -a
abrt_anon_write --> off
abrt_handle_event --> off
abrt_upload_watch_anon_write --> on
antivirus_can_scan_system --> off
antivirus_use_jit --> off
auditadm_exec_content --> on
authlogin_nsswitch_use_ldap --> off
authlogin_radius --> off
authlogin_yubikey --> off
awstats_purge_apache_log_files --> off
boinc_execmem --> on
cdrecord_read_content --> off
cluster_can_network_connect --> off
cluster_manage_all_files --> off
cluster_use_execmem --> off
cobbler_anon_write --> off
cobbler_can_network_connect --> off
cobbler_use_cifs --> off
cobbler_use_nfs --> off
collectd_tcp_network_connect --> off
...Output Omitted...

¿Qué significa?

Hay una gran cantidad de interruptores disponibles aquí. Como puede ver en la lista anterior, la función de algunos de los interruptores booleanos no es del todo obvia. Puedes usar semanage boolean -l | grep boolean_name_string para listar un poco más de información sobre un booleano dado.

OBSERVACIÓN: Necesita privilegios de administrador para ejecutar semanage pedidos.

[[email protected] ~]$ sudo semanage boolean -l | grep cobbler*
cobbler_anon_write             (off  ,  off)  Allow cobbler to anon write
cobbler_can_network_connect    (off  ,  off)  Allow cobbler to can network connect
cobbler_use_cifs               (off  ,  off)  Allow cobbler to use cifs
cobbler_use_nfs                (off  ,  off)  Allow cobbler to use nfs
httpd_can_network_connect_cobbler (off  ,  off)  Allow httpd to can network connect cobbler
httpd_serve_cobbler_files      (off  ,  off)  Allow httpd to serve cobbler files

Puede ver arriba que estamos viendo todos los booleanos relacionados con el zapatero. De izquierda a derecha, vemos la cadena booleana, la configuración actual y predeterminada, y una breve descripción del interruptor.

Activar/desactivar booleanos

Para cambiar el estado de un interruptor dado, usamos el siguiente comando: setsebool boolean_name_string on (off). Por ejemplo:

[[email protected] ~]$ sudo setsebool cobbler_anon_write on
[[email protected] ~]$ sudo semanage boolean -l | grep cobbler_anon_write
cobbler_anon_write            (on    , off)         Allow cobbler to anon write

Para deshabilitar la configuración, simplemente cambie la opción al final:

[[email protected] ~]$ sudo setsebool cobbler_anon_write off
[[email protected] ~]$ sudo semanage boolean -l | grep cobbler_anon_write
cobbler_anon_write            (off    , off)         Allow cobbler to anon write

Cabe señalar que los cambios booleanos no persisten en los reinicios de forma predeterminada. Para hacer un cambio persistente, agregue el -P opción a la sintaxis de su comando.

[[email protected] ~]$ sudo setsebool -P cobbler_anon_write on

¿Más información?

Si necesita más información sobre las opciones booleanas o de SELinux, consulte las páginas man de SELinux para booleanos, getsebool, setsebool, semanage, semanage-booleans y temas relacionados.

Artículos de interés

Subir