Existem diferenças notáveis entre as cadeias do LXC (Linux containers) e do FreeBSD em termos de segurança, estabilidade e desempenho?
À primeira vista, ambas as abordagens parecem muito semelhantes.
Existem diferenças notáveis entre as cadeias do LXC (Linux containers) e do FreeBSD em termos de segurança, estabilidade e desempenho?
À primeira vista, ambas as abordagens parecem muito semelhantes.
Respostas:
Não importa o nome sofisticado usado aqui, ambas são soluções para um problema específico: uma solução de segregação melhor do que o chroot clássico do Unix . Virtualização no nível do sistema operacional, contêineres, zonas ou mesmo "chroot with steroids" são nomes ou títulos comerciais que definem o mesmo conceito de separação do espaço do usuário, mas com recursos diferentes.
O Chroot foi introduzido em 18 de março de 1982, meses antes do lançamento do 4.2 BSD , como uma ferramenta para testar sua instalação e construção do sistema, mas hoje ainda possui suas falhas. Como o primeiro objetivo do chroot era apenas fornecer um caminho de nova raiz , outros aspectos do sistema que precisavam ser isolados ou controlados foram descobertos (rede, exibição de processo, taxa de transferência de E / S). É aqui que os primeiros contêineres (virtualização no nível do usuário) aparecem.
Ambas as tecnologias (FreeBSD Jails e LXC) fazem uso do isolamento do espaço do usuário para fornecer outra camada de segurança. Essa compartimentação garantirá que um determinado processo se comunique apenas com outros processos no mesmo contêiner no mesmo host e, se estiver usando algum recurso de rede para obter uma comunicação "fora do mundo", tudo será encaminhado para a interface / canal atribuído ao qual esse contêiner tem.
Recursos
Cadeias do FreeBSD:
allow.mount.zfs
para obter mais potência, e outras variáveis comochildren.max
definem cadeias máximas de filhos.vnet
, permitindo que cada prisão tenha sua própria pilha de rede, interfaces, tabelas de endereçamento e roteamento;nullfs
para ajudar a vincular pastas àquelas localizadas no servidor real e dentro de uma prisão;sysctl
).security.jail.allow.*
Os parâmetros limitarão as ações do usuário raiz dessa prisão.Contentores Linux (LXC):
Funcionalidade de migração ao vivo em desenvolvimento. É realmente difícil dizer quando estará pronto para uso na produção, pois o docker / lxc terá que lidar com a pausa do processo no espaço do usuário, capturar instantâneos, migrar e consolidar - ref1 , ref2 .A migração ao vivo está funcionando com contêineres básicos (nenhum dispositivo passa nem serviços de rede complexos nem configurações especiais de armazenamento).O Docker não usa mais o lxc. Agora eles têm uma lib específica chamada libcontainer que lida com a integração com o namespace de baixo nível do Kernel e os recursos do cgroups diretamente.
Nenhuma das tecnologias é uma panacéia de segurança, mas ambas são maneiras muito boas de isolar um ambiente que não requer virtualização completa devido à infraestrutura mista de sistemas operacionais. A segurança virá após muita documentação, leitura e implementação de ajustáveis do kernel, MAC e isolamentos que essas virtidades no nível do sistema operacional oferecem a você.
Veja também:
fonte
root
(e, portanto, localizados no local do sistema para contêineres).