É isso mesmo, enjaulando, aprisionando. Hoje em dia, quando se fala em internet, qualquer prevenção é bem vinda no mundo cibernético, todos os anos empresas investem milhões em softwares e tecnologia de ponta para proteger a integridade de suas informações.
Contudo, ninguém está livre de possíveis ataques provenientes da internet. Sabendo-se disso, o
Bind9 será configurado para trabalhar em uma área reservada, fazendo com que diminua drasticamente qualquer tipo de ataque que possa ocorrer maiores danos.
Vamos fazer uma analogia: Imagine uma casa, certo? Essa casa possui muro, portão e cerca elétrica. Isso não quer dizer que não possa ser invadida, mas diminui as chances pelo fato de existir segurança.
Nesse artigo demostro como proteger o Bind9 através de um
chroot, tornando a sua "casa" um lugar mais seguro.
Fonte: Servidor
Linux Guia Prático!
Instalação
Primeiro instale o Bind9:
# apt-get install bind9
Desative-o com o comando:
# /etc/init.d/bind9 stop
Próximo passo será editar o arquivo:
# vim /etc/default/bind9
Deixe como no exemplo abaixo (essa configuração informa ao bind9 rodar em modo chroot):
# run resolvconf?
RESOLVCONF=yes
# startup options for the server
OPTIONS="-u bind -t /var/lib/bind"
Crie os diretórios e devices que serão utilizados pelo serviço do Bind9:
# mkdir -p /var/lib/bind/etc/
# mkdir /var/lib/bind/dev
# mkdir -p /var/lib/bind/var/cache/bin
# mkdir -p /var/lib/bind/var/run/bind/run
# mknod /var/lib/bind/dev/null c 1 3
# mknod /var/lib/bind/dev/random c 1 8
# chmod 666 /var/lib/bind/dev/null /var/lib/bind/dev/random
Ajuste as permissões para que o usuário do Bind9, o "bind", tenha permissão para alterar os arquivos.
# chown -R bind:bind /var/lib/bind/var/*
Migre os arquivos do diretório
/etc/bind para a pasta do chroot em
/var/lib/bind/etc e crie um link simbólico apontando para o diretório do chroot. E por fim, de permissão para o usuário "bind":
# mv /etc/bind /var/lib/bind/etc
# ln -s /var/lib/bind/etc/bind/ /etc/bind
# chown -R bind:bind /var/lib/bind/etc/bind
Edite o arquivo do rSylog para que continue gerando os logs do Bind9. Deixe-o como no exemplo abaixo:
# vim /etc/default/rsyslog
RSYSLOGD_OPTIONS="-a /var/lib/bind/dev/log"
Reinicie os serviços:
# /etc/init.d/bind9 restart
# /etc/init.d/rsyslog restart
Verifique se está funcionando com o comando abaixo, provavelmente o servidor retorná algo como o exemplo abaixo:
# rndc status
version: 9.8.4-rpz2+rl005.12-P1
CPUs found: 1
worker threads: 1
number of zones: 18
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running
Observe que ele está rodando:
server is up and running
Conclusão
Concluindo, todas essas alterações foram feitas no diretório
/etc/bind que é o padrão do Bind9. Mesmo com essas alterações, ele continuará trabalhando em
/etc/bind, por que foi criado um link simbólico (lembra?) apontando para o diretório
/var/lib/etc/bind/, entretanto, para o Bind9, é como se fosse no mesmo diretório, simplesmente pelo fato de ter sido criado um link simbólico.
Veja como ficaria no exemplo abaixo:
# ls -laF /etc/bind
Irá retornar:
lrwxrwxrwx 1 root root 22 Fev 9 22:01 /etc/bind -> /var/lib/bind/etc/bind/
L significa que é um link simbólico.
Destino do link simbólico criado:
/etc/bind →
/var/lib/bind/etc/bind/
Dessa forma, o Bind9 ficará menos vulnerável a ataques por que ele foi isolado do diretório raiz padrão do sistema.