Criando chroot no CentOS 6.x

Publicado por Ederson Carlos em 12/02/2014

[ Hits: 5.710 ]

Blog: http://linuxplue.blogspot.com.br/

 


Criando chroot no CentOS 6.x



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:

# yumdownloader --destdir=/tmp centos-release

Ou, pode obtê-lo fazendo download:

wget http://mirror.centos.org/centos/6.5/os/x86_64/Packages/centos-release-6-5.el6.centos.11.1.x86_64.rpm

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.

# rpm -i --root=/var/centoschroot --nodeps /tmp/centos-release-6-5.el6.centos.11.1.i686.rpm

Para instalar novos pacotes através do yum, podemos utilizar o comando passando o parâmetro installroot, como o exemplo:

# yum --installroot=/var/centoschroot install -y bash rpm-build yum

Monte o diretório virtual do kernel do sistema original, dentro do sistema chroot, e o diretório de dispositivos:

# mount --bind /proc/ /var/centoschroot/proc

Para executarmos o jail, basta executarmos o comando:

# chroot /var/centoschroot


Atenciosamente:
Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Vantagem do Aptitude sobre o Apt-Get

Como criar imagem ISO a partir de um CD no Linux

Mapeando unidade de rede entre Windows e Linux

CrunchBang Statler

Ter computador é o suficiente para Inclusão Digital?

  

Comentários
[1] Comentário enviado por gpxlnx em 12/02/2014 - 23:16h

Parabens pelo artigo, muito interessante conhecer este método de chroot.

Contudo tenho algumas dúvidas referentes ao artigo,

no item

* rpm -i --root=/var/centoschroot --nodeps /tmp/centos-release-6-4.el6.centos.10.i686.rpm

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.

[2] Comentário enviado por ecbr em 13/02/2014 - 08:05h


[1] Comentário enviado por gpxlnx em 12/02/2014 - 23:16h:

Parabens pelo artigo, muito interessante conhecer este método de chroot.

Contudo tenho algumas dúvidas referentes ao artigo,

no item

* rpm -i --root=/var/centoschroot --nodeps /tmp/centos-release-6-4.el6.centos.10.i686.rpm

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,

wget http://mirror.centos.org/centos/6.5/os/x86_64/Packages/centos-release-6-5.el6.centos.11.1.x86_64.rpm

sendo assim vai dar certo na hora da mãos a obra.


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?

Agradeço vossa atenção.

[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

[5] Comentário enviado por izaias em 13/02/2014 - 11:50h

Ederson,

Veja se o link está correto, agora.

[6] Comentário enviado por ecbr em 13/02/2014 - 13:03h


[2] Comentário enviado por ecbr em 13/02/2014 - 08:05h:


[1] Comentário enviado por gpxlnx em 12/02/2014 - 23:16h:

Parabens pelo artigo, muito interessante conhecer este método de chroot.

Contudo tenho algumas dúvidas referentes ao artigo,

no item

* rpm -i --root=/var/centoschroot --nodeps /tmp/centos-release-6-4.el6.centos.10.i686.rpm

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,

wget http://mirror.centos.org/centos/6.5/os/x86_64/Packages/centos-release-6-5.el6.centos.11.1.x86_64.rpm

sendo assim vai dar certo na hora da mãos a obra.


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

Para:
# rpm -i --root=/var/centoschroot --nodeps /tmp/centos-release-6-5.el6.centos.11.1.x86_64.rpm

para ficar de acordo com o link para download.
wget http://mirror.centos.org/centos/6.5/os/x86_64/Packages/centos-release-6-5.el6.centos.11.1.x86_64.rpm

[7] Comentário enviado por izaias em 13/02/2014 - 14:00h

Ok. Corrigido.

[8] Comentário enviado por 70ny3m1LiAn0 em 13/05/2014 - 16:17h

Olá pessoal, aqui deu certo. Agora quero fazer com que meu usuários loguem por ssh e caiam direto na jaula. Como faço isso?

[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:

service sshd restart



Contribuir com comentário