11.4. Añadir reglas personalizadas de permiso y denegación para fapolicyd
El conjunto de reglas por defecto del paquete fapolicyd
no afecta a las funciones del sistema. Para escenarios personalizados, como el almacenamiento de binarios y scripts en un directorio no estándar o la adición de aplicaciones sin los instaladores yum
o rpm
, debe modificar las reglas existentes o añadir otras nuevas. Los siguientes pasos demuestran la adición de una nueva regla para permitir un binario personalizado.
Requisitos previos
-
El marco
fapolicyd
se despliega en su sistema.
Procedimiento
Copie su binario personalizado en el directorio requerido, por ejemplo:
$ cp /bin/ls /tmp $ /tmp/ls bash: /tmp/ls: Operation not permitted
Detenga el servicio
fapolicyd
:# systemctl stop fapolicyd
Utilice el modo de depuración para identificar la regla correspondiente. Como la salida del comando
fapolicyd --debug
es verbosa y sólo puede detenerla pulsando Ctrl+C o matando el proceso correspondiente, redirija la salida de error a un archivo:# fapolicyd --debug 2> fapolicy.output & [1] 51341
Como alternativa, puede ejecutar el modo de depuración
fapolicyd
en otro terminal.Repite el comando que no fue permitido:
$ /tmp/ls bash: /tmp/ls: Operation not permitted
Detener el modo de depuración reanudándolo en primer plano y pulsando Ctrl+C:
# fg fapolicyd --debug ^Cshutting down... Inter-thread max queue depth 1 Allowed accesses: 2 Denied accesses: 1 [...]
Alternativamente, matar el proceso de
fapolicyd
modo de depuración:# kill 51341
Encuentre una regla que deniegue la ejecución de su aplicación:
# cat fapolicy.output [...] rule:9 dec=deny_audit perm=execute auid=1000 pid=51362 exe=/usr/bin/bash : file=/tmp/ls ftype=application/x-executable [...]
Agregue una nueva regla
allow
before la regla que negó la ejecución de su binario personalizado en el archivo/etc/fapolicyd/fapolicyd.rules
. La salida del comando anterior indicó que la regla es la regla número 9 en este ejemplo:allow perm=execute exe=/usr/bin/bash trust=1 : path=/tmp/ls ftype=application/x-executable trust=0
Como alternativa, puede permitir la ejecución de todos los binarios en el directorio
/tmp
añadiendo la siguiente regla en el archivo/etc/fapolicyd/fapolicyd.rules
:allow perm=execute exe=/usr/bin/bash trust=1 : dir=/tmp/ all trust=0
Para evitar cambios en el contenido de su binario personalizado, defina la regla requerida utilizando una suma de comprobación SHA-256:
$ sha256sum /tmp/ls 780b75c90b2d41ea41679fcb358c892b1251b68d1927c80fbc0d9d148b25e836 ls
Cambia la regla por la siguiente definición:
allow perm=execute exe=/usr/bin/bash trust=1 : sha256hash=780b75c90b2d41ea41679fcb358c892b1251b68d1927c80fbc0d9d148b25e836
Inicie el servicio
fapolicyd
:# systemctl start fapolicyd
Pasos de verificación
Comprueba que tu binario personalizado puede ejecutarse ahora, por ejemplo:
$ /tmp/ls ls
Recursos adicionales
-
Consulte la página de manual
fapolicyd.trust(5)
para obtener más información.