Post em Destaque

Adeus pkg_install tools: pkg_info, pkg_add, pkg_version, pkg_delete, etc

É isso mesmo! Recentemente atualizei meu FreeBSD 10.0-CURRENT e ao fazer no /usr/src: # make delete-old Fui agraciado com a remoção completa do antigo formato pois agora o oficial passa à ser somente o PKGNG que ao meu ver é muito melhor.  🙂 Para aqueles que ainda não mudaram para o novo formato...

Leia mais...

Jail com VIMAGE carregando automaticamente no boot.

Postado por gondim | Categoria FreeBSD, Segurança, Software Livre, Tecnologia | Dia 09-08-2012

Tags:, ,

0

Pois é pessoal, depois de penar um pouco com jails aqui em meu ambiente de testes consegui fazer uma configuração bem legal usando o VIMAGE. O que matava usando o vimage era que a jail não carregava os serviços e configurações automaticamente no boot porque o script /etc/rc.d/jail não tem ainda um suporte oficial para vnet. Mas futucando na Internet achei um patch para isso e que funciona tanto no FreeBSD 8 quanto no FreeBSD 9. Bem eu testei no FreeBSD 9-PRERELEASE. Abaixo vou dar um exemplo de como fazer essa configuração:

Primeiro você precisa compilar o seu kernel com suporte ao VIMAGE. Adicione a seguinte linha ao seu kernel, compile e instale ele:

options VIMAGE

Vamos agora baixar e aplicar o patch para o /etc/rc.d/jail de acordo com o seu FreeBSD:

# cd /etc/rc.d
# patch < (local_onde_baixou_patch)/jail_rc9.patch

Após aplicar o patch o seu script /etc/rc.d/jail terá suporte ao vnet que precisamos e assim carregar automaticamente nossas jails no /etc/rc.conf.

Depois de iniciar com o seu novo kernel, vamos montar a estrutura de uma nova jail para vermos como isso vai funcionar. Darei o nome da minha jail de “mail”. Vamos dizer que eu quisesse montar um servidor de correio nessa jail.

# mkdir -p /usr/jail/mail

Para cada nova jail a estrutura estaria dentro de /usr/jail. Se você já compilou e instalou seu sistema FreeBSD, a coisa fica mais rápida fazendo assim:

# cd /usr/src
# make installworld DESTDIR=/usr/jail/mail
# make distribution DESTDIR=/usr/jail/mail

Agora vamos preparar o ambiente do servidor:

# mkdir -p /etc/jails/fstabs
# echo “/usr/src              /usr/jail/mail/usr/src            nullfs      rw     0     0” > /etc/jails/fstabs/mail
# echo “/usr/ports            /usr/jail/mail/usr/ports          nullfs      rw     0     0” >> /etc/jails/fstabs/mail

No nosso /etc/rc.conf ficará essa configuração:

hostname=”virtsrv.localdomain.net”
keymap=”br275.iso.acc.kbd”
cloned_interfaces=”bridge0 epair0″
ifconfig_bridge0=”inet 192.168.8.34 netmask 255.255.255.0 addm em0 up”
ifconfig_em0=”up”
ifconfig_epair0a=”up”
defaultrouter=”192.168.8.253″
sshd_enable=”YES”
# Set dumpdev to “AUTO” to enable crash dumps, “NO” to disable
dumpdev=”NO”

jail_enable=”YES”
jail_v2_enable=”YES”
jail_list=””
jail_set_hostname_allow=”YES”
jail_socket_unixiproute_only=”YES”
jail_sysvipc_allow=”YES”
jail_list=”$jail_list mail”
jail_mail_name=”mail”
jail_mail_hostname=”mail.teste.com.br”
jail_mail_devfs_enable=”YES”
jail_mail_rootdir=”/usr/jail/mail”
jail_mail_mount_enable=”YES”
jail_mail_fstab=”/etc/jails/fstabs/mail”
jail_mail_vnet_enable=”YES”

jail_mail_exec_prestart0=”mount -t devfs devfs /usr/jail/mail/dev”
jail_mail_exec_prestart1=”ifconfig bridge0 addm epair0a”
jail_mail_exec_earlypoststart0=”ifconfig epair0b vnet mail”
jail_mail_exec_afterstart0=”ifconfig lo0 127.0.0.1″
jail_mail_exec_afterstart1=”ifconfig epair0b 192.168.8.173 netmask 255.255.255.0 up”
jail_mail_exec_afterstart2=”route add default 192.168.8.253″
jail_mail_exec_afterstart3=”/bin/sh /etc/rc”
jail_mail_exec_poststop0=”ifconfig bridge0 deletem epair0a”

Na nossa configuração acima o IP do servidor das jails será o 192.168.8.34 e o IP que estamos dando para a jail será 192.168.8.173. Use os IPs que melhor atender a sua necessidade. 🙂

Antes de iniciar a nossa jail de exemplo precisamos prepará-la para uso:

Adicione as linhas abaixo em /usr/jail/mail/etc/rc.conf:

hostname=”mail.teste.com.br”
network_interfaces=””
sshd_enable=”YES”

Por último vamos criar um fstab fazio:

# touch /usr/jail/mail/etc/fstab
# mkdir /usr/jail/mail/usr/ports

Agora podemos iniciar nossa jail fazendo:

#/etc/rc.d/jail start mail

Após carregar a jail, podemos entrar nela via jexec e configurar o time zone com tzsetup, colocar senha no root e criar novos users para o sistema. Para fazer isso:

# jls
JID  IP Address      Hostname                      Path
–               mail.teste.com.br             /usr/jail/mail

# jexec 1 sh
# passwd root
# tzsetup
# adduser
# exit

Bem é isso aí pessoal.  :

Muitas coisas desse artigo foram baseadas nesse aqui.

 

Share Button

Write a comment

*