O SMACK LSM Module comporta-se estranhamente

0

Eu quero o seguinte:

  1. Eu quero usar o openssl para alterar as chaves. Então, eu criei o diretório " / etc / keys " que eu chamei de " keys ". Eu criei um arquivo " chave " com o mesmo acesso " chaves " e outro arquivo-chave " < em> forbiddenkey "com acesso" proibido "sob o diretório" etc / keys ".
  2. Eu fiz o comando openssl executar como " secure ".
  3. eu fiz as seguintes regras chaves seguras rw proibido proibido -
  4. Testei as regras conforme mostrado na figura abaixo e elas parecem funcionar.

  • Mas quando eu tentei realmente executar o comando não funcionou mesmo que o acesso WRITE tenha permissão para / etc / keys e / etc / keys / key

    openssl rand 32 > / etc / keys / key

  • A mensagem de erro é a seguinte

    -bash: /etc/keys/key: Permission denied
    

    A mensagem de auditoria é a seguinte

    Kernel do VirtualBox: [1274.037659] audit: type = 1400 audit (1500117397.021: 8): lsm = SMACK fn = ação smack_inode_getattr = negado subject="_" objeto="chaves" solicitado = r pid = 2574 comm="pool" caminho="/ etc / keys" dev="sda1" ino = 3932692

    É estranho que eu executei o openssl com execute "secure" como assunto, mas recebo na auditoria como "floor (_)". Alguém pode identificar o erro?

    Cumprimenta Satya

        
    por Satya 15.07.2017 / 13:42

    1 resposta

    1

    Existem dois motivos pelos quais isso falha.

    1. Escrever para / etc / keys / key é tentado pelo bash, não pelo openssl

      Seu comando "openssl rand 32 > / etc / keys / key" instrui o shell a abrir o arquivo / etc / keys / key para escrever, executar o comando openssl e redirecionar o stdout de openssl para a chave aberta / etc / keys / . Seu shell está sendo executado com o rótulo de chão ("_"), por isso não é possível abrir o arquivo. Se você pretende que o openssl escreva para / etc / keys / key, tente isto:

      openssl rand 32 -out / etc / keys / key

    2. Você precisa ativar o acesso de execução de "seguro" para "chaves"

      Isso ocorre porque haverá dois acessos de assunto "seguro" para objeto "chaves". Quando o openssl abre o arquivo / etc / keys / key para escrita, ele também deve ter acesso aos diretórios / etc / e / etc / keys /. O acesso aos diretórios é realizado pela permissão Smack "x". Portanto, você precisa estender a regra "secure keys rw" para "secure keys rwx".

    por 17.07.2017 / 17:30