Um servidor ubuntu hospeda 3 aplicativos, todos em domínios separados.
Cada aplicativo tem seus próprios desenvolvedores.
Os desenvolvedores de aplicativos pertencem ao grupo "sftp" do linux.
chroot
permite acesso por sftp de senha a cada desenvolvedor de aplicativos.
/home/app1/prod
/home/app2/prod
/home/app3/prod
No sshd_config
Match Group sftp
PasswordAuthentication yes
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
Nossa preocupação é uma vulnerabilidade de programação em um aplicativo, causando problemas nos outros 2 aplicativos.
Devemos usar o contêiner lxc em vez do chroot? Por quê? A alteração nos contêineres lxc será transparente para os desenvolvedores de aplicativos?
chroot
faz é alterar o diretório raiz de um processo. Não oferece isolamento ou qualquer outra coisa.Respostas:
O Linux Containers (LXC) é um método de virtualização no nível do sistema operacional para executar várias instalações isoladas do servidor (contêineres) em um único host de controle. O LXC não fornece uma máquina virtual, mas sim um ambiente virtual que possui seu próprio processo e espaço de rede. É semelhante a um chroot, mas oferece muito mais isolamento.
Os contêineres Linux têm vários recursos / vantagens:
Vantagens:
Melhor isolamento em comparação com um chroot (prisão de chroot). Baixa sobrecarga. O LXC usa recursos mínimos em termos de RAM e espaço no disco rígido sem a sobrecarga de instalar um sistema operacional convidado em uma máquina virtual (VMWare / VirtualBox / KVM).
Aplicativos e serviços (servidores) executados na velocidade nativa.
Há suporte para contêineres Linux na libvirt.
Os contêineres Linux funcionam bem com btrfs.
Mas há também uma desvantagem:
Contêineres Linux executam processos Linux em um kernel Linux. Isso significa que você pode executar o Linux (contêiner Fedora em um host Ubuntu), mas não outros sistemas operacionais (não BSD / OSX / Windows).
Não há interfaces gráficas (GUI) para configurar ou gerenciar os contêineres.
Há uma escassez de documentação sobre como instalar e configurar um contêiner. A configuração de um contêiner requer um conhecimento e habilidade técnicos modestos (e uma grande dose de paciência).
fonte