Pular para o conteúdo

Bind9 slave em chroot no Debian Lenny

Instalação e configuração do Bind9 slave em chroot no Debian Lenny GNU/Linux utilizando um script pronto. Fácil, rápido e simples!
Douglas Q. dos Santos douglas_dksh
Hits: 18.998 Categoria: Linux Subcategoria: Configuração
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Parte 2: Script de instalação e configuração automática do Bind9

Usando seu editor de textos predileto, salve o conteúdo abaixo num arquivo e dê o nome de bind9.sh. Em seguida siga as instruções da página anterior.

Conteúdo do script:

#!/bin/sh
#############################################
#Autor:Douglas Q. dos Santos
#Data:03/03/2010
#Email:douglashx@gmail.com
#Preparação de servidor DNS Slave
#############################################
#-- COMANDOS ------------------------------------
APTITUDE=$(which aptitude)
CAT=$(which cat)
CHMOD=$(which chmod)
CHOWN=$(which chown)
DATA=$(which date)
LN=$(which ln)
MKDIR=$(which mkdir)
MKNOD=$(which mknod)
MV=$(which mv)
SLEEP=$(which sleep)
CUT=$(which cut)
#------------------------------------------------

#-- CAMINHOS ------------------------------------
PATH_BIND="/var/lib/named"
#------------------------------------------------

#-- VARIÁVEIS -----------------------------------
echo -n "Forneça o nome do domínio a ser configurado (dominio.com.br): "
read DOMAIN
echo -n "Forneça a faixa de IP da rede valida (ip/mask): "
read NETWOTK_RANGE
echo -n "Forneça o endereço IP do servidor Master (ip): "
read NS1_IP

echo
#------------------------------------------------

#-- INSTALAÇÃO DO PACOTE ------------------------
echo "A instalação será iniciada em 5 segundos"
${SLEEP} 5

${APTITUDE} update
${APTITUDE} install bind9 dnsutils -y

/etc/init.d/bind9 stop
#------------------------------------------------

#-- ARVORE DE DIRETÓRIOS ------------------------
${MKDIR} -p ${PATH_BIND}/etc
${MKDIR} -p ${PATH_BIND}/dev
${MKDIR} -p ${PATH_BIND}/var/cache/bind/slave
${MKDIR} -p ${PATH_BIND}/var/run/bind/run
${MKNOD} ${PATH_BIND}/dev/null c 1 3
${MKNOD} ${PATH_BIND}/dev/random c 1 8

#Ajustando permissões
${CHMOD} 666 ${PATH_BIND}/dev/null ${PATH_BIND}/dev/random
${CHOWN} -R bind:bind ${PATH_BIND}/var/*

${MV} /etc/bind ${PATH_BIND}/etc
${LN} -s ${PATH_BIND}/etc/bind /etc/bind
${CHOWN} -R bind:bind ${PATH_BIND}/etc/bind


#-- AJUSTANDO O ARQUIVO /etc/default/bind9 ------
${CAT} <<EOF > /etc/default/bind9
#/etc/default/bind9
RESOLVCONF=yes

# startup options for the server
#OPTIONS="-u bind"
OPTIONS="-u bind -t ${PATH_BIND}"
EOF
#------------------------------------------------


#-- AJUSTANDO O ARQUIVO /etc/resolv.conf --------
${CAT} <<EOF > /etc/resolv.conf
domain ${DOMAIN}
nameserver 127.0.0.1
EOF
#------------------------------------------------

#Extraindo o reverso do servidor Master
REV3=`echo ${NS1_IP} | cut -d '.' -f 3`
REV2=`echo ${NS1_IP} | cut -d '.' -f 2`
REV1=`echo ${NS1_IP} | cut -d '.' -f 1`
IP_REVERSE=${REV3}.${REV2}.${REV1}


#-- AJUSTANDO O ARQUIVO /srv/bind/etc/bind/named.conf.options ----
${MV} ${PATH_BIND}/etc/bind/named.conf.options ${PATH_BIND}/etc/bind/named.conf.options.orig
${CAT} <<EOF > ${PATH_BIND}/etc/bind/named.conf.options
options {
   directory "/var/cache/bind";

   // If there is a firewall between you and nameservers you want
   // to talk to, you might need to uncomment the query-source
   // directive below.  Previous versions of BIND always asked
   // questions using port 53, but BIND 8.1 and later use an unprivileged
   // port by default.

   // query-source address * port 53;

   // If your ISP provided one or more IP addresses for stable
   // nameservers, you probably want to use them as forwarders.
   // Uncomment the following block, and insert the addresses replacing
   // the all-0's placeholder.

   // forwarders {
   //      0.0.0.0;
   // };


   auth-nxdomain no;    # conform to RFC1035
   listen-on-v6 { any; };

   listen-on { 127.0.0.1/32; ${NETWOTK_RANGE}; };
   allow-query { any; };
   allow-recursion { 127.0.0.1/32; };
   allow-transfer { none; };
   version "Não Disponível";
};
EOF
#------------------------------------------------

#-- AJUSTANDO O ARQUIVO /srv/bind/etc/bind/named.conf.local -------------------
${MV} ${PATH_BIND}/etc/bind/named.conf ${PATH_BIND}/etc/bind/named.conf.orig
${CAT} <<EOF > ${PATH_BIND}/etc/bind/named.conf
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local


include "/etc/bind/named.conf.options";

// prime the server with knowledge of the root servers
zone "." {
   type hint;
   file "/etc/bind/db.root";
};

// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912

zone "localhost" {
   type master;
   file "/etc/bind/db.local";
};

zone "127.in-addr.arpa" {
   type master;
   file "/etc/bind/db.127";
};

zone "0.in-addr.arpa" {
   type master;
   file "/etc/bind/db.0";
};

zone "255.in-addr.arpa" {
   type master;
   file "/etc/bind/db.255";
};

zone "${DOMAIN}" {
   type slave;
   file "slave/db.${DOMAIN}";
   masters { ${NS1_IP}; };
   allow-transfer { none; };
   allow-update { none; };
};

zone "${IP_REVERSE}.in-addr.arpa" {
   type slave;
   file "slave/db.${IP_REVERSE}";
   masters { ${NS1_IP}; };
   allow-transfer { none; };
   allow-update { none; };
};


include "/etc/bind/named.conf.local";
EOF
#------------------------------------------------

#-- REINICIANDO OS SERVIÇOS ----------------------
/etc/init.d/bind9 stop
/etc/init.d/bind9 start
#------------------------------------------------

#-- MENSAGEM DE FINALIZAÇÃO ---------------------
echo
echo "INSTALAÇÃO FINALIZADA"
echo "Faca os ajustes necessários e reinicie o serviço *bind9*"
echo
#------------------------------------------------
exit 0
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Para facilitar sua vida, você pode fazer o download do script aqui.

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
   1. O que é Bind
   2. Script de instalação e configuração automática do Bind9

Apache em chroot + MySQL + PHP + mod_security + mod_evasive + vsftpd + Fail2ban + Debian Squeeze

Bonding para Heartbeat + Bonding para DRBD + OCFS2 + Debian Squeeze

Debian + Postfix + MySQL + PostfixAdmin + MailScanner + Webmail + Quotas

Debian Lenny com Kernel 2.6.28 + Layer7 + Firewall

IDS com Snort + Guardian + Debian Lenny

Controle sua banda de maneira simples e inteligente com CBQ

Configurando Nocat + Radius modo passive

ISPConfig 3.1 - Instalação no Debian 9

Servidor Debian 6 DHCP + Squid + IPtables

DNS e DNS reverso rapidamente no Linux

#1 Comentário enviado por hideoux em 09/03/2010 - 10:36h
Olá,

Muito interessante sua iniciativa do script! Muito obrigado. Isso com certeza vai ajudar muita gente!

Acabei de configurar meu primeiro bind (no Debian Lenny)... (Eu fiz na unha mesmo... até porque prefiro assim...)
peguei vários tutoriais (daqui do VOL e outros de fora).

Uma dúvida não relacionada ao seu artigo:
Seguindo a sugestão de
http://www.ubuntu-ac.org/archives/559/comment-page-1#comment-669
Adicionei o servidor DNS do Google.
Queria saber se para adicionar ainda outros servidores DNS, é no mesmo arquivo, da mesma forma...
E queria saber se você ou outro colega daqui do VOL tem outra sugestão de Servidor DNS...

Abraço,
Hideo
#2 Comentário enviado por douglas_dksh em 09/03/2010 - 10:44h
bom dia.

Os servidores do Google são ótimos na minha opinião.

A respeito de outros servidores DNS o que talvez te complique é a questão dos reversos do DNS.

Pois se você esta em uma rede EX: 200.196.160.0/24

o seu reverso vai ser 160.196.200

e em outra rede exemplo: 200.210.150.0/24

o seu reverso vai ser 150.210.200

Neste caso você não poderia colocar os dois endereços no mesmo arquivo de zona inversa.

Teria que criar um outro arquivo de zona inversa com os endereços da outra faixa.

E se tiver servidores de Email é bom configurar um SPF no seu DNS senão é bem provável que você tenha muitos problemas no envio de emails.

fora isso não vai dar problemas.

Douglas.
#3 Comentário enviado por jhonfelix em 02/06/2010 - 20:40h
Olá queria tirar uma duvida, tenho que montar um servidor de email para Internet, só queria saber se tenho que ter duas maquinas (dois Server) para montar o DNS.
Principal x Secundario.
#4 Comentário enviado por douglas_dksh em 03/06/2010 - 10:10h
Bom dia.


Cara por padrão quando vc vai registrar o dominio vc vai precisar de 2 dns.

mas vc pode ter 2 endereços publicos apontando para o mesmo server.

exemplo.
DNS1 = 200.200.200.1
DNS2= 200.200.200.2
SERVERINT=192.168.0.1

dai vc faz o nat desses endereços para o server na sua dmz.
exemplo para o dns.
e exemplo para smtp,pop,imap

iptables -t nat -A PREROUTING -d 200.200.200.1 -p udp --dport 53 -j DNAT --to 192.168.0.1 -m comment --comment "DNS1"
iptables -t nat -A PREROUTING -d 200.200.200.1 -p tcp --dport 53 -j DNAT --to 192.168.0.1 -m comment --comment "DNS1"

iptables -t nat -A PREROUTING -d 200.200.200.2 -p udp --dport 53 -j DNAT --to 192.168.0.1 -m comment --comment "DNS2"
iptables -t nat -A PREROUTING -d 200.200.200.2 -p tcp --dport 53 -j DNAT --to 192.168.0.1 -m comment --comment "DNS2"


iptables -t nat -A PREROUTING -d 200.200.200.1 -p tcp -m multiport --dport 25,110,143 -j DNAT --to 192.168.0.1 -m comment --comment "SMTP,POP3,IMAP4"

iptables -t nat -A PREROUTING -d 200.200.200.2 -p tcp -m multiport --dport 25,110,143 -j DNAT --to 192.168.0.1 -m comment --comment "SMTP,POP3,IMAP4"

Contribuir com comentário

Entre na sua conta para comentar.