De forma simples, o chroot é um ambiente isolado (enjaulado) dentro da sua máquina real, é um sistema dentro de outro, que compartilham processos. Um exemplo de uso é o Apache, sempre é bom colocar o Apache trabalhando em chroot.
Objetivos:
Entender o que é um sistema enjaulado.
Criar um chroot.
Conformidade com a norma: no que diz respeito ao isolamento de sistemas sensíveis, a norma ABNT NBR ISO/IEC 27002:2005 diz, no item 11.6.2, que sistemas sensíveis devem ter um ambiente computacional dedicado (isolado).
Segue abaixo, como criar um ambiente seguro no CentOS 6.x com poucos passos. A partir deste ambiente, você pode instalar e configurar qualquer serviço que queira enjaular. Mãos à obra:
Vamos criar o diretório destino:
# mkdir -p /var/centoschroot/var/lib/rpm
Agora, vamos iniciar a base de dados do yum:
# rpm --root /var/centoschroot --initdb
Instale, primeiro, o pacote yum-utils para ter o comando yumdownloader disponível:
# yum install yum-utils
O próximo passo, é obter o pacote RPM base do sistema. Se você tiver instalado o programa yumdownloader, você pode utilizá-lo para obter este pacote:
Eu adicionei os links para o pacote mais recente de cada distribuição, se você precisar de outra versão, a organização dos diretórios é bem intuitiva e pode, ser obtidos seguindo o mesmo caminho.
o correto não seria, rpm -i --root=/var/centoschroot --nodeps /tmp/centos-release-6-5.el6.centos.10.i686.rpm de acordo com o contexto?
Ao criar o ambiente chroot seguindo estes passos ainda assim comandos como ifconfig e ps não executam corretamente, não existe outra conf. necessária a ser feita?
Até o presente momento tudo parece funcionar contudo tais problemas insistem em ocorrer.
o correto não seria, rpm -i --root=/var/centoschroot --nodeps /tmp/centos-release-6-5.el6.centos.10.i686.rpm de acordo com o contexto?
Ao criar o ambiente chroot seguindo estes passos ainda assim comandos como ifconfig e ps não executam corretamente, não existe outra conf. necessária a ser feita?
Até o presente momento tudo parece funcionar contudo tais problemas insistem em ocorrer.
Amigo, vc esta certo, obrigado pelo alerta, eu mesmo nao tinha percebido, peço a moderação que por favor ajuste isso já que eu não posso editar, em contra partida o link disponibilizado esta correto,
Este método é muito bom, eu tenho alguns servidores funcionando nesse método e um deles esta o apache em uma chroot, postfix com todo o aparato em outra chroot, o bind em outra chroot, coloquei todos os serviço critico preso em chroot.
[3] Comentário enviado por gpxlnx em 13/02/2014 - 10:46h
Mais uma vez parabéns pelo excelente artigo.
Não ficou mto claro para mim, então venho por meio deste lhe incomodar novamente.
Para cada serviço então, você está criando um chroot separo?
E instalando através deste comando yum --installroot=/var/centoschroot install -y postfix?
Depois de instalado é só configurar o serviço e o mesmo estará funcionando na máquina com mesmo ip, porem enjaulado, estou correto em presumir isto?
[4] Comentário enviado por ecbr em 13/02/2014 - 11:09h
[3] Comentário enviado por gpxlnx em 13/02/2014 - 10:46h:
Mais uma vez parabéns pelo excelente artigo.
Não ficou mto claro para mim, então venho por meio deste lhe incomodar novamente.
Para cada serviço então, você está criando um chroot separo?
E instalando através deste comando yum --installroot=/var/centoschroot install -y postfix?
Depois de instalado é só configurar o serviço e o mesmo estará funcionando na máquina com mesmo ip, porem enjaulado, estou correto em presumir isto?
Agradeço vossa atenção.
vamos la.
pergunto, vc criou a chroot correto com os procedimentos acima, blz.... blz...
a parti do momento que vc criou a chroot, vc vai entrar nela com o comando abaixo: como no tutorial....
Para executarmos o jail, basta executarmos o comando:
# chroot /var/centoschroot
uma vez dentro da chroot, vc pode usar o comando "yum install postfix" para instalar o postfix, e também pode instalar o que vc quiser dentro da chroot.
sugestão: assim que eu crio minhas chroots eu instala imediatamente os seguinte pacotes net-tools e system-config-services para ficar mais fácil de trabalhar.
lembrando, não esqueça de montar esse 2 diretorio proc e dev dentro da chroot.
# mount --bind /proc/ /var/centoschroot/proc
# mount --bind /dev /var/centoschroot/dev
o correto não seria, rpm -i --root=/var/centoschroot --nodeps /tmp/centos-release-6-5.el6.centos.10.i686.rpm de acordo com o contexto?
Ao criar o ambiente chroot seguindo estes passos ainda assim comandos como ifconfig e ps não executam corretamente, não existe outra conf. necessária a ser feita?
Até o presente momento tudo parece funcionar contudo tais problemas insistem em ocorrer.
Amigo, vc esta certo, obrigado pelo alerta, eu mesmo nao tinha percebido, peço a moderação que por favor ajuste isso já que eu não posso editar, em contra partida o link disponibilizado esta correto,
Este método é muito bom, eu tenho alguns servidores funcionando nesse método e um deles esta o apache em uma chroot, postfix com todo o aparato em outra chroot, o bind em outra chroot, coloquei todos os serviço critico preso em chroot.
Mudem, de:
# rpm -i --root=/var/centoschroot --nodeps /tmp/centos-release-6-4.el6.centos.10.i686.rpm
[9] Comentário enviado por lucasleite em 11/11/2014 - 11:41h
tonyemiliano, para os usuários que logarem pelo ssh caírem diretamente na jaula, basta configurar o arquivo /etc/ssh/sshd_config:
Match Group <nome_do_grupo>
ChrootDirectory <diretório_jaula>
Com a configuração acima, todos os usuários pertencentes ao grupo especificado, quando logarem via ssh entrarão na jaula. Depois basta reiniciar o serviso sshd: