Iniciando namespace isolado dentro do namespace da rede

1

Consegui criar dois namespaces de rede (ns1 e ns2) e conectá-los via conexão veth. Eles podem pingar uns aos outros bem, e até mesmo um ssh em outro (desde que eu comecei sshd).

O que eu gostaria de fazer agora é iniciar um processo dentro do ns1 (digamos vi) que não pode ser visto ou pelo menos não pode ser modificado / morto a partir do ns2. Isso é possível?

Eu tentei usar

unshare -p vi

no ns1, mas ainda é eliminável do ns2. Eu posso entender que ele pode ser eliminado do namespace da rede global / padrão, já que é derivado dele, mas o ns2 não deve ser capaz de matar um processo dentro do ns1. Pelo menos é o que eu quero alcançar. Qualquer ajuda seria apreciada.

    
por Luka 22.02.2016 / 14:25

2 respostas

0

Há algumas coisas que você precisa entender sobre namespaces linux.

  1. Cada tipo de namespace isola apenas uma coisa específica. Os namespaces de rede, por exemplo, isolam apenas a rede.
  2. Muitos tipos de namespace têm um relacionamento de herança de algum tipo (namespaces de rede são incomuns por estarem totalmente isolados)

Se você quiser impedir que os usuários processem a visualização um do outro, a ferramenta para o trabalho será um "namespace pid".

Eu aconselho você a olhar para algo como lxc, que usa os diferentes tipos de espaço para nome junto com cgroups para produzir ambientes isolados.

    
por 20.06.2016 / 01:26
0

Os namespaces de rede do Linux são diferentes dos namespaces do Linux PID, precisamos diferenciá-los claramente porque eles isolam conjuntos completamente diferentes de recursos do sistema / SO.

Agora, os processos são chamados de se inscrever ou sociata com namespaces, como um namespace de rede específico e outro namespace PID específico. Um processo é sempre associado a muitos namespaces, mas apenas com exatamente um de cada tipo (rede, montagem, PID, usuário, ...)

Quando você fala sobre "processos de eliminação", isso não se aplica a namespaces de rede, porque os namespaces de rede fornecem isolamento de pilhas de IP, interfaces de rede, configuração de endereço, configuração de rota e assim por diante .

Então, quando se trata de "ver" e matar processos, isso é uma questão de direitos de acesso e espaços PID, então isso está relacionado a Espaços de nomes de PID em vez disso. "Ver" também pode estar relacionado a montar namespaces quando se trata de vê-los em /proc .

    
por 12.06.2018 / 22:28