Contextos de SELinux con acciones NFS

Estoy tratando de configurar un recurso compartido NFS entre 2 servidores CentOS (filesrv y websrv) para una carpeta que necesita ser legible y escribible por el proceso de Apache. Tengo problemas con el lado escribible de esto, que he reducido a la configuración de SELinux: Apache puede escribir en el recurso compartido si me setenforce 0 en el cliente NFS.

La línea relevante en el archivo de exportación para el servidor NFS es:

/data/files/sitefiles websrv(rw,sync,no_root_squash)

El contexto de SELinux para la carpeta compartida en el servidor NFS es:

system_u:object_r:httpd_sys_rw_content_t:s0

La entrada en mi fstab en el cliente NFS es:

filesrv:/data/files/sitefiles /var/www/html/webroot/files nfs context="system_u:object_r:httpd_sys_rw_content_t:s0" 0 0

Por lo que puedo decir, esto debe montar el recurso compartido NFS con el contexto httpd_sys_rw_content_t , pero cuando lo compruebo, es en realidad:

system_u:object_r:httpd_sys_content_t:s0

¿Qué podría estar haciendo que aplicara el contexto más estricto a la parte?

La solución simple debería ser usar el booleano httpd_use_nfs SELinux para permitir que su servidor web muestre y escriba contenido almacenado en un recurso compartido NFS:

 setsebool -P httpd_use_nfs=1 

Este problema se producía porque estaba montando múltiples comparticiones NFS desde el mismo servidor, no todos los que tenían el mismo contexto.

Según la documentación de RedHat en montajes múltiples de NFS , necesité agregar nosharecache a mi línea del fstab para los montajes. El contexto SELinux correcto se aplica entonces sobre una base de montaje por montaje.

La línea de trabajo en mi fstab es la siguiente:

 filesrv:/data/files/sitefiles /var/www/html/webroot/files nfs nosharecache,context="system_u:object_r:httpd_sys_rw_content_t:s0" 0 0