Jaulas com debootstrap e schroot

Neste artigo apresento duas ferramentas que tornam a criação de jaulas bem mais fácil e flexível, isso sem comprometer a segurança.

[ Hits: 30.794 ]

Por: Laudivan Freire de Almeida em 17/08/2009


Introdução



Jaulas para programas com chroot é um recurso bem conhecido do pessoal aqui do Viva o Linux. Útil para diversas coisas, a jaula, como o próprio nome diz, permite executar um programa em um ambiente limitado (enjaulado), o que é ótimo para segurança da informação e para rodar aplicativos em um ambiente Unix diferente sem ser necessário o uso de virtualização (ie rodar programas 32bits em um Linux 64). Eu mesmo gosto de testar serviços (Apache, MySQL etc) em uma jaula sem ter que sair instalando pacotes em meu notebook, quando não quero mais apenas preciso remover o diretório onde está o sistema enjaulado para ficar tudo como antes.

O grande problema é que criar uma jaula nem sempre é uma tarefa trivial, muito menos se usarmos o chroot, administrá-la. O chroot, por exemplo, só pode ser executado pelo usuário root. O que fazer em um ambiente onde preciso que um usuário execute um aplicativo enjaulado?

Bom, vamos parar de imaginar as possibilidades, estou aqui para apresentar a dupla debootstrap e schroot. Tenho certeza que aqueles que não os conhecem vão achá-los muito úteis.

O debootstrap prepara um ambiente Debian básico. Na prática, ele baixa os pacotes necessários para a instalação básica do Debian e os instala no diretório (alvo) que você escolheu.

Já o schroot permite entrar de forma segura em ambiente chrootado, uma jaula.

Bom, deu para notar que o artigo foi feito por uma usuário Debian, por isso, antes de tudo, vamos "apetêguetar" os pacotes com:

# apt-get install schroot debootstrap

Preparando um ambiente Debian para a jaula

Como falei na introdução, o debootstrap prepara um ambiente Debian básico.

O seu funcionamento é bastante simples, bastando uma rápida consulta às manpages para já conseguir fazer o que quer.

Aqui vou apresentar a sintaxe e algumas opções que achei bastante úteis.

A sintaxe do debootstrap é:

debootstrap [OPTION...] SUITE TARGET [MIRROR]

Considerações:
  • SUITE diz respeito àqueles codinomes das versões Debian: woody, etch, sarge, lenny, squeeze, stable, testing...
  • experimental não é uma versão, logo não terá uma distribuição Debian completo para testar;
  • Se você quiser testar no Ubuntu os codinomes são diferentes, por exemplo: hardy ou jaunty;
  • O comando deve ser executado com permissões de superusuário;
  • TARGET é o diretório alvo (onde você vai instalar a sua jaula. Aqui no meu notebook, por exemplo, estou usando /home/squeeze32bits);
  • MIRROR é a url de onde ele irá baixar os pacotes. O legal é que os pacotes (Packages.gz) podem estar em um diretório, em um servidor web, ftp, ou ssh. Bastando apenas formar a url conforme o local onde estarão os pacotes.

Por exemplo, se eu quiser baixar os arquivos de um cd-rom montado baixa formatar o comando assim:

# debootstrap --variant=minbase squeeze /caminho/para/a_sua_jaula file://media/cdrom/debian

Algumas opções úteis são:
  • --arch=arquitetura - faz o debootstrap baixar os pacotes para uma arquitetura específica;
  • --verbose - produz mas informação sobre o download;
  • --variant=minbase|buildd|fakechroot|scratchbox - permite escolher um perfil para a instalação determinando assim quais os pacotes serão baixados. O padrão instala uma distribuição Debian padrão.

Aqui em meu notebook tenho alguns programas que só foram distribuídos em 32 bits, mas minha instalação é um Debian squeeze Amd64, então usarei o seguinte comando:

# debootstrap --verbose --variant=minbase --arch=i386 squeeze /var/chroot/squeeze32bits http://ftp.br.debian.org/debian

Assim que terminado, vamos para o enjaulamento! ;-)

    Próxima página

Páginas do artigo
   1. Introdução
   2. Conhecendo o schroot
   3. O arquivo /etc/schroot/schroot.conf
   4. Schroot - Opções de comando e definindo uma jaula
   5. Executando jaulas
Outros artigos deste autor

NetProfiler - Um solução para quem passeia por várias redes

Leitura recomendada

Aprisionamento Tecnológico

Compilando e instalando programas com o apt-build

Baixando e instalando o Ubuntu 6.10

Como criar pacotes "task" para o APT

Babytrans, o Babylon for Linux

  
Comentários
[1] Comentário enviado por gnucleber em 20/08/2009 - 11:33h

Parabéns Laudivan, otimo artigo!!!

[2] Comentário enviado por eldteixe em 18/08/2018 - 22:42h

Que aula....muito obrigado.

[3] Comentário enviado por eldteixe em 18/08/2018 - 22:43h

Pelo que entendi....o Schroot seria o precursor do DOCK.....rrrrsssss.....


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts