A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

Informática Numaboa - Linux

BIND (DNS) na jaula

Qui

16

Mar

2006


01:00

(13 votos, média 4.23 de 5) 


2. Preparando a jaula

Uma "jaula" é um mecanismo que serve para limitar a capacidade de um processo acessar recursos fora de uma área muito limitada. Um servidor de nomes "fala" muito com o mundo exterior e este mundo exterior (a "Internet pública") já provou ser bastante hostil. Qualquer falha do BIND - as já conhecidas e as que ainda serão descobertas - podem ser exploradas por qualquer abelhudo mal intencionado. Pois bem, isolando este processo numa jaula, restringimos os estragos que eventualmente possam afetar o sistema.

Uma jaula é criada fazendo-se uma chamada do sistema a chroot() (o nome para "change root" - mudar a raiz) com um nome de diretório como parâmetro. Depois desta chamada, a raiz ou topo da árvore de diretórios deste processo muda de / para o diretório especificado e o processo não consegue mais sair desta área. O mais comum é confinar o servidor de nomes em /chroot/named, mas isto é apenas uma convenção: pode-se usar /jaula/named, jaula/nominado, /usr/local/named, etc.

É claro que a jaula não impede que o BIND seja detonado, mas o pior que pode acontecer é que apenas o servidor de nomes seja avariado e não todos os serviços da máquina.

Usuário e Grupo

Antes de mais nada é preciso criar um usuário e um grupo que serão os "donos" da jaula. Como exemplo, o grupo será domador e o usuário será roy. Escolhi estes nomes porque me lembrei da história do tigre que resolveu tirar seu domador do picadeiro e quase o matou. Isto aconteceu em Las Vegas, durante uma apresentação da dupla Siegfried & Roy.

# groupadd domador
# useradd -g domador -d /jaula/named -s /bin/true roy
# passwd -l roy

O comando passwd -l roy bloqueia a conta criada.

Os diretórios da jaula

# mkdir -p /jaula/named
# cd /jaula/named

O último comando nos coloca no diretório /jaula/named para que possamos criar a hierarquia de diretórios. O nome destes diretórios NÃO podem ser alterados porque precisam corresponder ao que o BIND procura.

# mkdir -p dev
# mkdir -p etc
# mkdir -p logs
# mkdir -p var/run
# mkdir -p conf/secondaries

Todos estes comandos podem ser reduzidos a uma única linha se você usar a sintaxe a seguir. O resultado obtido é o mesmo.

# mkdir -p /jaula/named/{dev,etc,logs,var/run,conf/secondaries}

Verifique se os diretórios foram criados corretamente:

/--- jaula ---
             |--- named ---
                          |--- conf ---
                                      |--- secondaries
                          |--- dev
                          |--- etc
                          |--- logs
                          |--- var ---
                                     |--- run

Os dispositivos (devices)

# mknod dev/null c 1 3
# mknod dev/zero c 1 5
# mknod dev/random c 1 8

Confira o resultado no diretório /jaula/named/dev. Tirando a data e a hora, você deve encontrar o seguinte:

crw-r--r--  1 root domador 1, 3 2006-02-10 16:16 null
crw-r--r--  1 root domador 1, 8 2006-02-10 16:16 random
crw-r--r--  1 root domador 1, 5 2006-02-10 16:16 zero

A hora local

Finalmente, é preciso copiar o arquivo do fuso horário para acertar a hora local:

# cp /etc/localtime etc

Informações adicionais