restringe o acesso root para determinados arquivos ou sistemas de arquivos

1

Eu quero armazenar arquivos para meus usuários em sistemas de arquivos criptografados. Cada usuário teria seu próprio sistema de arquivos com sua própria chave. O usuário pode efetuar login no sistema e montar seu sistema de arquivos. Quando eles são montados, até mesmo a raiz não consegue acessá-los.

A configuração é:

  • LVM - > dm_crypt - > xfs.
  • quando o usuário efetua login, ele monta seu sistema de arquivos de forma que o proprietário seja ele
  • ele pode iniciar programas, eles terão o mesmo direito que o usuário, então eles podem ler os arquivos

No entanto, quero que o root não acesse nenhum sistema de arquivos montado por meus usuários. Primeiro pensei em escrever um módulo de kernel VFS (compilado com o kernel) e seqüestrar os comandos específicos do filesystm se a raiz quiser acessar o arquivo de um usuário diferente. O problema é que uma raiz pode fazer algo como:

# su -secureuser

e voila lê o sistema de arquivos montado.

Foi-me dito para procurar em voz alta capacidades de arquivo posix , PAM , SELinux , mas eu não sei disso, e estou claro, alcançar meu pedido não é conveniente, mesmo com essas coisas.

Aqui estão mais alguns, mas eles estão prestes a restringir o acesso root inteiro: link

Você tem alguma ideia? Obrigado pelas respostas! :)

    
por illEatYourPuppies 30.01.2013 / 20:59

3 respostas

3

Primeiro, você precisa perceber que, mesmo limitando a conta root, os administradores poderiam ter acesso ao servidor físico e alterar a configuração do servidor de um Live CD. Então você deve começar confiando em seus administradores.

Eu posso ver algumas soluções. Nenhum é simples, mas eles são factíveis. Aqui estão eles:

  • usam namespaces de ligação diferentes. Use o PAM para configurá-los. Você pode precisar desenvolver um módulo PAM.
  • SELinux (como mencionado por Michael Hampton), AppArmor ou algum outro "firewall de aplicativo" do kernel.
  • Linux Containers, um para cada usuário. Eu acho que esta é a solução mais fácil.
  • Máquinas virtuais (XEN, KVM), uma para cada usuário.
  • uma biblioteca LD_PRELOAD que verificará o acesso para operações do FS (open, getdents).
  • desenvolva um módulo do kernel que fará a filtragem (semelhante ao SELinux ...)

Por favor, note que você terá que limitar o acesso root separadamente, dependendo da solução escolhida. Você precisa limitar também o acesso ao dispositivo bruto.

    
por 31.01.2013 / 16:18
3

Você deve conseguir fazer isso usando SELinux Política MLS (Multi-Level Security) como base e adaptando-a às suas necessidades. Esta não é uma tarefa simples, e se você ainda não conhece o SELinux, você terá que aprender, ou encontrar alguém que faça isso.

Esta também não é uma política para uma operação de um homem, pois divide as funções de segurança normalmente fornecidas pelas três raízes (ou mais) e, portanto, você deve idealmente ter três (ou mais) pessoas que administram vários aspectos da sistema.

    
por 30.01.2013 / 21:29
1

No Unix / Linux, NÃO há como restringir o acesso root a um arquivo montado pelo usuário. Isso simplesmente não funciona.

    
por 30.01.2013 / 21:19