Como faço para encontrar / listar todos os arquivos no sistema de arquivos com um certo “fcontext” do SELinux?

2

Estou tendo problemas para encontrar informações sobre qual comando, presumivelmente do setools , devo usar para localizar todos os arquivos no meu sistema de arquivos que são rotulados pelo SELinux com um determinado contexto de arquivo ( fcontext ).

No momento, posso manualmente listar os arquivos junto com seus respectivos fcontext s do arquivo /etc/selinux/targeted/contexts/files e, em seguida, grep o específico fcontext que gostaria de veja.

[root@FedPadSSD files]# cat file_contexts |grep ifconfig_exec_t
/bin/ip --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ip        --      system_u:object_r:ifconfig_exec_t:s0
/sbin/tc        --      system_u:object_r:ifconfig_exec_t:s0
/usr/bin/ip     --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ip    --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/tc    --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ethtool   --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ifconfig  --      system_u:object_r:ifconfig_exec_t:s0
/sbin/iwconfig  --      system_u:object_r:ifconfig_exec_t:s0
/sbin/mii-tool  --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ethtool       --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ifconfig      --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/iwconfig      --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/mii-tool      --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_configure     --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_interface     --      system_u:object_r:ifconfig_exec_t:s0
/sbin/ipx_internal_net  --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_configure --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_interface --      system_u:object_r:ifconfig_exec_t:s0
/usr/sbin/ipx_internal_net      --      system_u:object_r:ifconfig_exec_t:s0

O problema com isso é que, na maioria das vezes, há algo errado ou ausente / incompleto quando você o faz manualmente no banco de dados do SELinux (por falta de um melhor palavra). Então, eu me pergunto se algo já existe no pacote setools , ou pacotes relacionados, que realiza isso sem ter que se preocupar com os arquivos de configuração do sistema.

    
por ILMostro_7 13.12.2014 / 00:52

4 respostas

0

No momento no RHEL7.1 - não tenho certeza se isso sempre esteve lá e eu perdi - eu posso executar o seguinte para obter uma lista de todos os filecontext e apenas enviar a saída para grep :

# semanage fcontext -l |grep ifconfig_exec_t
/bin/ip                                            regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ethtool                                      regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ifconfig                                     regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ip                                           regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ipx_configure                                regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ipx_interface                                regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/ipx_internal_net                             regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/iw                                           regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/iwconfig                                     regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/mii-tool                                     regular file       system_u:object_r:ifconfig_exec_t:s0 
/sbin/tc                                           regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/bin/ip                                        regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ethtool                                  regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ifconfig                                 regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ip                                       regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ipx_configure                            regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ipx_interface                            regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/ipx_internal_net                         regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/iw                                       regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/iwconfig                                 regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/mii-tool                                 regular file       system_u:object_r:ifconfig_exec_t:s0 
/usr/sbin/tc                                       regular file       system_u:object_r:ifconfig_exec_t:s0
    
por 28.07.2015 / 11:44
3

semanage fcontext -l | grep whatever_exec_t é provavelmente a melhor maneira de encontrar regras de rotulagem para contexto específico.

Se você deseja pesquisar contextos de arquivo atuais em vez de regras de rotulagem, pode usar ls -Z , mas o identificador de formato find e -context <glob> para %Z é compatível com o SELinux-aware -printf . Observe que toda a cadeia de contexto é comparada com <glob> , portanto, use curingas quando corresponder apenas ao tipo. Exemplo no meu Centos 7.3:

#find / -xdev -type f -context '*ifconfig_exec_t*' -printf '%-50Z%p\n'
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/ip
unconfined_u:object_r:ifconfig_exec_t:s0          /usr/sbin/ifconfig
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/ethtool
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/iw
unconfined_u:object_r:ifconfig_exec_t:s0          /usr/sbin/mii-tool
system_u:object_r:ifconfig_exec_t:s0              /usr/sbin/tc
    
por 18.01.2017 / 14:54
1

Se sua distro empacota a página ifconfig_selinux man (o Fedora tem isso em selinux-policy-devel ), te dirá:

   The following file types are defined for ifconfig:

   ifconfig_exec_t

   - Set files with the ifconfig_exec_t type, if you want to transition an
   executable to the ifconfig_t domain.

   Paths:
        /bin/ip,    /sbin/ip,    /sbin/tc,    /usr/bin/ip,   /usr/sbin/ip,
        /usr/sbin/tc,   /sbin/ethtool,   /sbin/ifconfig,   /sbin/iwconfig,
        /sbin/mii-tool,       /usr/sbin/ethtool,       /usr/sbin/ifconfig,
        /usr/sbin/iwconfig,    /usr/sbin/mii-tool,    /sbin/ipx_configure,
        /sbin/ipx_interface, /sbin/ipx_internal_net, /usr/sbin/ipx_config‐
        ure, /usr/sbin/ipx_interface, /usr/sbin/ipx_internal_net

Você também pode usar sesearch -all -t ifconfig_exec_t para ver quais transições operam em arquivos com um destino ifconfig_exec_t, o que pode ajudá-lo a encontrar arquivos com esse contexto.

    
por 14.12.2014 / 04:09
0

O comando find permite pesquisar por contexto de segurança.

Por exemplo, vamos procurar todos os arquivos do tipo "unlabeled_t".

find / -type f -context *unlabeled_t*

A primeira parte, "find / -type f", nos diz para pesquisar todos os arquivos regulares no sistema.

"- context * unlabeled_t *" filtra para nos mostrar todos os arquivos do tipo unlabeled_t. Nós temos que criar um caractere curinga, o começo e o fim, porque não nos importamos com o usuário / papel no começo, ou o contexto MLS / MCS no final.

    
por 03.03.2017 / 21:52