O chroot funciona da seguinte forma:
Todo serviço (bind, FTP, etc) que estiver rodando sobre uma cadeia de
chroot é incapaz de enxergar qualquer diretório fora de sua
cadeia, por exemplo se o bind estiver rodando no diretório
/var/named/jaula, para o bind esse diretório será considerado
o "/" (raiz) do servidor.
O objetivo do chroot é limitar o acesso de algum usuário
"malicioso" ou invasor ao diretório principal do servidor, pois caso
o invasor consiga atacar o servidor de nomes com sucesso, os únicos
arquivos que ele terá acesso são os arquivos utilizados pelo bind,
que por sua vez estarão no diretório do chroot.
Configuração
Para criar uma cadeia de chroot não será necessário utilizar
nenhum aplicativo, basta seguir as instruções abaixo e iniciar o bind,
lembrando, que este artigo não mostrará como configurar o bind e sim,
apenas como criar a jaula para o serviço. Vamos aos passos!
1 - Iremos criar o diretório que servirá como jaula:
# mkdir /var/named/jaula
2 - Agora iremos criar os diretórios utilizados pelo named dentro da jaula:
# cd /var/named/jaula
# mkdir -p etc
# mkdir -p var/log/named
# mkdir -p var/run
# mkdir -p dev
# mkdir -p var/named
3 - Estes são os arquivos utilizados pelo named:
# mknod null c 1 3
# mknod random c 1 8
# chmod 666 null
# chmod 666 random
4 - Devemos agora copiar os arquivos utilizados pelo named para
dentro da jaula (lembre-se você precisa estar dentro da jaula):
# cp /var/named/* var/named
5 - Note que os diretórios dentro da jaula pertencem ao root, é necessário
alterar o dono para o usuário named:
# chown named.named var/named
# chown named.named var/run
# chown named.named var/log/named
# chown named.named var/run/named
6 - Agora precisamos habilitar a execução do chroot, edite o arquivo
/etc/sysconfig/named, deixando "chroot = yes".
7 - Para finalizar, iremos fazer com que o daemon ao startar o processo
localize os arquivos de configuração do named dentro da jaula, para isso
precisamos editar o arquivo /etc/init.d/named. Nas linhas que
indicarem o PATH onde os arquivos de configuração estão, é preciso
alterar para o novo destino que ficara assim:
-f /var/named/jaula/etc/named.conf
-f /var/named/jaula/etc/named.conf
8. Pronto, agora bastar iniciar o named e seu serviço de DNS estará
rodando sobre uma cadeia de chroot, "a salvo" de penetras:
# /etc/init.d/named start
Conclusão
Bom, tendo feito esses procedimentos o serviço de DNS estará mais
protegido contra o ataque de possíveis invasores, porém isso não significa
que sua máquina está totalmente à salvo, lembre-se de que o chroot
é apenas mais um dos muitos métodos utilizados para minimizar os danos
provocados por um invasor.
Todo cuidado é pouco!