AppArmor: permite acesso total ao disco

0

Estou usando o AppArmor para:

  • desativar a rede para um processo específico.

Mas eu quero:

  • ativar ler e escrever onde quiser.

Eu só quero restringir o acesso à rede, não o acesso a arquivos. (Se você está curioso, o processo em questão é o jupyter, que executa alguns cadernos escritos pelo usuário para uma competição de hackers.)

Estou tentando editar /etc/apparmor.d/xxxxx para permitir isso:

# Last Modified: Mon May 21 23:47:47 2018
#include <tunables/global>

/home/ricardopdmcruz/.local/bin/jupyter {
  #include <abstractions/base>
  #include <abstractions/python>

  /** rwlkmix,

  /home/ricardopdmcruz/.local/bin/jupyter r,
  /usr/bin/python3.5 ix,

  # block ipv4 acces
  deny network inet,
  # ipv6 
  deny network inet6,
  # raw socket
  deny network raw,
}

Mas o processo (jupyter) ainda reclama que não pode ler ou escrever em algum lugar ... A ordem do arquivo de configuração é importante?

    
por rpmcruz 22.05.2018 / 00:20

1 resposta

0

Eu descobri qual era o problema.

O Jupyter (mesmo no modo shell) requer soquetes, e isso é desativado por minhas regras.

Acho que duas soluções seriam possíveis:

  1. desabilitar a internet externa, mas permitir soquetes
  2. use apenas o jupyter para converter de .ipynb para .py e, em seguida, use o AppArmor no interpretador python3. (Eu usei uma cópia do interpretador python3, não a versão do sistema, para não interferir no sistema).

Eu escolhi a solução # 2, porque eu não sabia como alcançar o # 1. Eu tentei remover "deny network raw" e manter "negar rede inet", mas isso também pareceu desativar sockets.

    
por rpmcruz 22.05.2018 / 23:48