Red Hat Training

A Red Hat training course is available for RHEL 8

4.2. Ajustando a política de compartilhamento de volumes NFS e CIFS usando booleans SELinux

Você pode mudar partes da política SELinux em tempo de execução utilizando booleans, mesmo sem qualquer conhecimento da política da SELinux. Isto permite mudanças, tais como permitir o acesso de serviços a volumes NFS, sem recarregar ou recompilar a política SELinux. O procedimento seguinte demonstra a listagem de booleans SELinux e sua configuração para alcançar as mudanças necessárias na política.

As montagens NFS no lado do cliente são etiquetadas com um contexto padrão definido por uma política para volumes NFS. Na RHEL, este contexto padrão usa o tipo nfs_t. Além disso, as montagens de Samba no lado do cliente são etiquetadas com um contexto padrão definido pela política. Este contexto padrão usa o tipo cifs_t. Você pode habilitar ou desabilitar booleans para controlar quais serviços estão autorizados a acessar os tipos nfs_t e cifs_t.

Para permitir que o serviço servidor HTTP Apache (httpd) acesse e compartilhe volumes NFS e CIFS, execute os seguintes passos:

Pré-requisitos

  • Opcionalmente, instale o pacote selinux-policy-devel para obter descrições mais claras e detalhadas das booleanas SELinux na saída do comando semanage boolean -l.

Procedimento

  1. Identificar as booleanas SELinux relevantes para NFS, CIFS, e Apache:

    # semanage boolean -l | grep 'nfs\|cifs' | grep httpd
    httpd_use_cifs                 (off  ,  off)  Allow httpd to access cifs file systems
    httpd_use_nfs                  (off  ,  off)  Allow httpd to access nfs file systems
  2. Liste o estado atual das booleanas:

    $ getsebool -a | grep 'nfs\|cifs' | grep httpd
    httpd_use_cifs --> off
    httpd_use_nfs --> off
  3. Habilitar as booleanas identificadas:

    # setsebool httpd_use_nfs on
    # setsebool httpd_use_cifs on
    Nota

    Use setsebool com a opção -P para fazer com que as mudanças sejam persistentes em todas as reinicializações. Um comando setsebool -P requer uma reconstrução de toda a política, e pode levar algum tempo, dependendo de sua configuração.

Etapas de verificação

  1. Verifique se as booleans estão em on:

    $ getsebool -a | grep 'nfs\|cifs' | grep httpd
    httpd_use_cifs --> on
    httpd_use_nfs --> on

Recursos adicionais

  • As páginas semanage-boolean(8), sepolicy-booleans(8), getsebool(8), setsebool(8), booleans(5), e booleans(8) man pages.