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 permitted
$ cp /bin/ls /tmp $ /tmp/ls bash: /tmp/ls: Operation not permittedCopy to Clipboard Copied! Toggle word wrap Toggle overflow Detenga el servicio
fapolicyd:systemctl stop fapolicyd
# systemctl stop fapolicydCopy to Clipboard Copied! Toggle word wrap Toggle overflow Utilice 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] 51341
# fapolicyd --debug 2> fapolicy.output & [1] 51341Copy to Clipboard Copied! Toggle word wrap Toggle overflow Como 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 permitted
$ /tmp/ls bash: /tmp/ls: Operation not permittedCopy to Clipboard Copied! Toggle word wrap Toggle overflow Detener el modo de depuración reanudándolo en primer plano y pulsando Ctrl+C:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Alternativamente, matar el proceso de
fapolicydmodo de depuración:kill 51341
# kill 51341Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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 [...]
# 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 [...]Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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=0
allow perm=execute exe=/usr/bin/bash trust=1 : path=/tmp/ls ftype=application/x-executable trust=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow Como 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=0
allow perm=execute exe=/usr/bin/bash trust=1 : dir=/tmp/ all trust=0Copy to Clipboard Copied! Toggle word wrap Toggle overflow 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
$ sha256sum /tmp/ls 780b75c90b2d41ea41679fcb358c892b1251b68d1927c80fbc0d9d148b25e836 lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow Cambia la regla por la siguiente definición:
allow perm=execute exe=/usr/bin/bash trust=1 : sha256hash=780b75c90b2d41ea41679fcb358c892b1251b68d1927c80fbc0d9d148b25e836
allow perm=execute exe=/usr/bin/bash trust=1 : sha256hash=780b75c90b2d41ea41679fcb358c892b1251b68d1927c80fbc0d9d148b25e836Copy to Clipboard Copied! Toggle word wrap Toggle overflow Inicie el servicio
fapolicyd:systemctl start fapolicyd
# systemctl start fapolicydCopy to Clipboard Copied! Toggle word wrap Toggle overflow
Pasos de verificación
Comprueba que tu binario personalizado puede ejecutarse ahora, por ejemplo:
/tmp/ls ls
$ /tmp/ls lsCopy to Clipboard Copied! Toggle word wrap Toggle overflow