Criando chroot no CentOS 6.x
Dica publicada em Linux / Introdução
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:
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:
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:
- Ederson Reis
- Gestor de TI/Analista de Suporte
- E-mail - ecbr2003[at]gmail.com
- Skype - ecbr[at]hyperlinux.com.br
- Ederson Reis - Brasil « LinkedIn
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.