05.07  
Inicio arrow Artigos arrow Administrando Jails no FreeBSD com ezjail
Principal
Inicio
Noticias
Artigos
Regras da Lista
Assinar a Lista
Histórico da Lista
Galeria de Imagens
Contador Usuários FUG
FUGs Estaduais
Downloads
Enquetes
FAQ
Resumo do Site
Links
Pesquisar
Contato
Sobre a FUG-BR
RSS
-
DOC-BR (FUG BR)
Introdução
Projeto DOC-BR
Handbook
FAQ Oficial
-
+ Noticias
Alertas de Seguranca
Alertas em Ports
BSD em Geral
DaemonNews (Ingles)
MyFreeBSD
Todas Categorias
-
Login
Nome de Usuário

Senha

Lembrar login
Esqueceu sua senha?
Sem conta? Crie uma


Administrando Jails no FreeBSD com ezjail PDF Imprimir E-mail
Por Luiz Gustavo dos Santos Costa   
14/09/2007
 O que é o ezjail ?

Ezjail é um framework de administração de jail(8) no FreeBSD, com ele você pode gerenciar sistemas enjaulados de forma bem fácil. Além disso ele tem a vantagem de organizar pra você todo o esquema de diretorio e ainda compartilha o sistema base entre as “maquinas” virtualizadas, fazendo com que isso você econimize espaço no disco, desta forma, uma nova jail zerada pode conter só 2mb de espaço. O que é o ezjail ?

Ezjail é um framework de administração de jail(8) no FreeBSD, com ele você pode gerenciar sistemas enjaulados de forma bem fácil. Além disso ele tem a vantagem de organizar pra você todo o esquema de diretório e ainda compartilha o sistema base entre as “maquinas” virtualizadas, fazendo com que isso você economize espaço no disco, desta forma, uma nova jail zerada pode conter só 2mb de espaço.

Algumas vantagens de utilizar ezjail:
  • Você salva espaço em disco, inodes e até memória, já que os binários provém de uma única copia para todas as Jails.
  • Você pode atualizar todas as Jails de uma única vez.
  • Se uma Jail for invadida, o invasor não conseguira introduzir um rootkit, pois o sistema básico fica montado como somente leitura na Jail.
  • O ezjail é totalmente escrito em sh, não é necessário instalar nenhum outro script ou linguagem no FreeBSD.

FONTE: http://erdgeist.org/arts/software/ezjail/

Estarei me baseando este tutorial em um FreeBSD 6.2 e que seus fontes (/usr/src) estejam atualizados, no meu caso eu atualizei todo o sistema para STABLE, mas você pode manter seu sistema em RELEASE sem problemas.

Instalando o ezjail

A instalação é feita através do ports, então, basta executar os comandos abaixo:

# cd /usr/ports/sysutils/ezjail
# make install clean


Usando o ezjail

Configure o arquivo de configuração do ezjail para suas necessidades, normalmente é interessante deixar o padrão, não descomentado nada.
# cd /usr/local/etc
# cp ezjail.conf.sample ezjail.conf


Talvez você queira alterar o caminho das suas Jails, o padrão é /usr/jails, para isso basta alterar a opção ezjail_jaildir=/usr/jails com o caminho que você desejar.

Coloque o ezjail na inicialização do sistema
# echo 'ezjail_enable="YES"' >> /etc/rc.conf

Feito isso é necessário criar o sistema base do ezjail, para isso, você deve utilizar a opção update do ezjail-admin.
 
Se você já estiver com o seu '/usr/src' compilado e certinho, faça um:
# ezjail-admin update -i

Com isso ele vai criar a estrutura básica das Jails no diretório /usr/jails, copiar toda a estrutura base do sistema do /usr/src para basejail e gerar algumas configs.

Viu como é fácil, ele já fez um monte de coisas que você teria que ler todo o man do jail para entender e fazer.

Você já estará pronto para criar suas jails.

Criando uma Jail com o ezjail

Para criar uma Jail é muito facil, basta usar a opção create, vamos à um exemplo:

Vamos criar uma Jail com IP 192.168.10.20, então vamos seguir os passos:

  • Crie um alias do ip desejado no sistema

# ifconfig rl0 192.168.10.20 netmask 255.255.255.0 alias 

Para ficar mais conviniente, coloque na inicialização do sistema:

# echo 'ifconfig_rl0_alias0="inet 192.168.10.20 netmask 255.255.255.0"' >> /etc/rc.conf

  • Agora crie a Jail através do ezjail

# ezjail-admin create nomedamaquina.dominio.com.br 192.168.10.20

Pronto !!! sua Jail esta criada, com 2 passos você criou uma Jail nova, para inicia-la, basta executar:
# /usr/local/etc/rc.d/ezjail.sh start nomedamaquina.dominio.com.br

Para acessa-la pela maquina BASE, faça assim:
# jail /usr/jails/nomedamaquina.dominio.com.br nomedamaquina.dominio.com.br 192.168.10.20 /bin/csh

Muito fácil não ?!

Outra característica muito legal do ezjail é usar imagens criptografas ou não para criar sua Jail, com isso você pode limitar uso de espaço na jail, veja um exemplo de como ficaria uma Jail com 200MB:

# ezjail-admin create -i -c bde -s 200M nomedamaquina.dominio.com.br 192.168.10.20

Ele vai pedir a senha de criptografia e vai criar uma imagem de 200M para instalar a Jail.

Para acessar, faça do método normal, a única diferença é que ele vai pedir a senha de criptografia.

Dica:

Nosso amigo Alex Moura, frequentador da FUG nos lembrou muito bem que não a necessidade de fazer o “xunxo” que descrevi abaixo, conforme ele comentou na FUG o ezjail já faz o update do Ports, conforme ele mesmo descreve:

Instalar uma árvore de ports para as jails (na basejail) com:

# ezjail-admin install -p

Atualizar a árvore de ports para as jails (pode ser feito com as jails em execução):

# ezjail-admin update -P


Pra poder manter o ports entre o sistema BASE e as jails em comum, você pode fazer o seguinte: mover o /usr/ports do FreeBSD para /usr/jails/basejail/usr/ports e criar um link simbólico de volta no FreeBSD:

# cd /usr/ports
# mkdir /usr/jails/basejail/usr/ports
# mv * /usr/jails/basejail/usr/ports
# cd /usr
# rmdir ports
# ln -s /usr/jails/basejail/usr/ports

Dessa forma, todas as Jails vão ter o ports em comum, sendo assim, basta um portsnap fetch update no FreeBSD BASE para que todas as Jails fiquem com seu ports atualizado.

FAQ

P: Como faço para iniciar as Jails ?

R: com o comando # /usr/local/etc/rc.d/ezjail.sh start, sem o nome da maquina no final ele inicializará todas.

P: Como faço para desabilitar uma Jail ?

R: com o parâmetro -r norun do comando # ezjail-admin config -r norun nomedajail, para voltar a habilitar, faça # ezjail-admin -r run nomedajail

P: Removi um Jail mas o arquivos continuaram no /usr/jails, é um BUG ?

R: Não, é segurança, imagine que você fez por “cagada”, basta voltar a Jail com o create com o parâmetro -x que diz que a estrutura já existe, mas se tiver certeza que quer apagar a Jail mesmo, coloque um -w no delete.

É isso pessoal !!

Qualquer coisa, estamos ai !

Luiz Gustavo - Este endereço de e-mail está sendo protegido de spam, você precisa de Javascript habilitado para vê-lo
http://wiki.luizgustavo.pro.br

Comentários
ezjail suporta ports sem "xunxos".
Por Alex Moura em 15/09/2007 17:51:39
Para instalar e manter atualizada a árvore de ports no basejail, usando o ezjail: 
 
Instalar e extrair os ports na basejail: 
ezjail-admin install -p 
 
Atualizar os ports na basejail (pode ser feito com as jails em funcionamento): 
ezjail-admin update -P
Instalando e mantendo a árvore de ports
Por Alex Moura em 15/09/2007 18:11:02
Para instalar e manter atualizada a árvore de ports no basejail, usando o ezjail: 
 
Instalar e extrair os ports na basejail: 
ezjail-admin install -p 
 
Atualizar os ports na basejail (pode ser feito com as jails em funcionamento): 
ezjail-admin update -P
Instalando e mantendo a árvore de ports
Por Luiz Gustavo em 16/09/2007 11:44:43
Nossa, valeu Alex pela dica, fica pra galera e um aprendizado: 
 
Quem come depressa, come cru e quente ;)


Comente!*
Nome:
E-mail
Homepage
Título:
Comentário:

Código:* Code

Última Atualização ( 17/09/2007 )
 
< Anterior   Próximo >
FUG-BR - Espalhando BSD
Dicas Rápidas:

make fetch: apenas baixa os fontes
make checksum: verifica integridade dos fontes
make extract: descompacta os pacotes
make configure: roda o ./configure do fonte
make depends: compila/instala dependencias
make: compila
make install: instala
make clean: limpa
make install clean: compila, instala e limpa
make deinstall: desinstala o port

 

 




Wallpapers
Sua Opiniao
Online:
Nós temos 15 visitantes online


Devil Store - Sua loja BSD
FreeBSD Brasil LTDA

FUG-BR: Desde 1999, espalhando BSD pelo Brasil.