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