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
fapolicydse 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 permittedDetenga el servicio
fapolicyd:# systemctl stop fapolicydUtilice el modo de depuración para identificar la regla correspondiente. Como la salida del comando
fapolicyd --debuges 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] 51341Como alternativa, puede ejecutar el modo de depuración
fapolicyden otro terminal.Repite el comando que no fue permitido:
$ /tmp/ls bash: /tmp/ls: Operation not permittedDetener 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
fapolicydmodo de depuración:# kill 51341Encuentre 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
allowbefore 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=0Como alternativa, puede permitir la ejecución de todos los binarios en el directorio
/tmpañadiendo la siguiente regla en el archivo/etc/fapolicyd/fapolicyd.rules:allow perm=execute exe=/usr/bin/bash trust=1 : dir=/tmp/ all trust=0Para 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 lsCambia la regla por la siguiente definición:
allow perm=execute exe=/usr/bin/bash trust=1 : sha256hash=780b75c90b2d41ea41679fcb358c892b1251b68d1927c80fbc0d9d148b25e836Inicie el servicio
fapolicyd:# systemctl start fapolicyd
Pasos de verificación
Comprueba que tu binario personalizado puede ejecutarse ahora, por ejemplo:
$ /tmp/ls ls