Differences

This shows you the differences between two versions of the page.

Link to this comparison view

instalacao_e_configuracao_do_bind_master_no_debian_wheezy_pt_br [2019/08/08 15:24] (current)
Line 1: Line 1:
 +====== Instalação e Configuração do Bind Master no Debian Wheezy ======
  
 +E ai galera, aqui eu vou disponibilizar um script para configuração do Bind 9 trabalhando como Master no Debian Wheezy, aqui vocês precisam mudar o domínio e os endereços ips antes de rodar o script.
 +
 +**OBS:** A View Externa eu setei os endereços ips como 200.200.200.* caso precise trabalhar com o DNS para a Web mude os ips para os seus ips externos.
 +
 +<sxh bash>
 +#!/bin/sh
 +#=============================================================================#
 +# NOTA DE LICENCA                                                             #
 +#                                                                             #
 +# Este trabalho esta licenciado sob uma Licenca Creative Commons Atribuicao-  #
 +# Compartilhamento pela mesma Licenca 3.0 Brasil. Para ver uma copia desta    #
 +# licenca, visite http://creativecommons.org/licenses/by/3.0/br/              #
 +# ou envie uma carta para Creative Commons, 171 Second Street, Suite 300,     #
 +# San Francisco, California 94105, USA.                                       #
 +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
 +# Criado por :                                              #
 +#    Douglas Quintiliano dos Santos | douglas.q.santos@gmail.com 19/05/2013   #
 +# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #
 +#                                                                             #
 +# Funcao: Script para realizar configuração de servidores DNS MASTER     
 +# No Debian Wheezy
 +#                                                                             #
 +#=============================================================================#
 +### COMANDOS ##
 +APTITUDE="/usr/bin/aptitude"
 +CAT="/bin/cat"
 +CHMOD="/bin/chmod"
 +CHOWN="/bin/chown"
 +DATA="/bin/date"
 +CP="/bin/cp"
 +LN="/bin/ln"
 +MV="/bin/mv"
 +MKDIR="/bin/mkdir"
 +MKNOD="/bin/mknod"
 +SLEEP="/bin/sleep"
 +CUT="/bin/cut"
 +CP="/bin/cp"
 +IP=$(ifconfig eth0 | awk '/inet end/ {print $3}')
 +PACOTES_BIND="bind9 dnsutils"
 +PATH_BIND="/var/lib/named"
 +
 +#MUDAR OS VALORES ABAIXO DE ACORDO COM A SUA NECESSIDADE
 +#DEFININDO O DOMINIO
 +DOMINIO="douglas.lan"
 +#DEFININDO A REDE
 +REDE="192.168.0.0/24"
 +#DEFININDO O IP DO NS1
 +NS1_IP=${IP}
 +#DEFININDO O IP DO MX
 +MX_IP=${IP}
 +#DEFININDO O IP DO WWW
 +WWW_IP=${IP}
 +#DEFININDO O IP DO NS2 QUE VAI RECEBER A VIEW INTERNA
 +NS2_IP=192.168.0.84
 +#DEFININDO O IP DO NS2 QUE VAI RECEBER A VIEW EXTERNA
 +NS2_IP2=192.168.0.85
 +
 +### INSTALACAO DO PACOTE ###
 +${APTITUDE} update
 +${APTITUDE} install ${PACOTES_BIND} -y
 +
 +### Parar o serviço para podermos configurá-lo
 +/etc/init.d/bind9 stop
 +
 +
 +### ARVORE DE DIRETORIOS ###
 +${MKDIR} -p ${PATH_BIND}/etc
 +${MKDIR} -p ${PATH_BIND}/dev
 +${MKDIR} -p ${PATH_BIND}/var/log
 +${MKDIR} -p ${PATH_BIND}/var/cache/bind
 +${MKDIR} -p ${PATH_BIND}/var/cache/bind/dynamic
 +${MKDIR} -p ${PATH_BIND}/var/run/bind/run
 +
 +### CRIANDO OS DISPOSITIVOS NECESSARIOS ###
 +${MKNOD} ${PATH_BIND}/dev/null c 1 3
 +${MKNOD} ${PATH_BIND}/dev/random c 1 8
 +${MKNOD} ${PATH_BIND}/dev/zero c 1 5
 +
 +### AJUSTANDO AS PERMISSOES ###
 +${CHMOD} 666 ${PATH_BIND}/dev/null
 +${CHMOD} 666 ${PATH_BIND}/dev/random
 +${CHMOD} 666 ${PATH_BIND}/dev/zero
 +${CHOWN} -R bind:bind ${PATH_BIND}/var/*
 +
 +### AJUSTANDO A LOCALIZACAO DOS ARQUIVOS
 +${MV} /etc/bind ${PATH_BIND}/etc
 +${LN} -sf ${PATH_BIND}/etc/bind /etc/bind
 +${CP} /etc/localtime ${PATH_BIND}/etc
 +
 +### AJUSTANDO AS PERMISSOES NOVAMENTE
 +${CHOWN} -R bind:bind ${PATH_BIND}/etc/bind
 +${CHOWN} -R bind:bind ${PATH_BIND}/var/cache/bind/dynamic
 +${CHMOD} -R 775 ${PATH_BIND}/var/cache/bind/dynamic
 +
 +
 +
 +### AJUSTANDO O ARQUIVO /etc/default/bind9 ###
 +${CAT} <<EOF > /etc/default/bind9
 +#/etc/default/bind9
 +RESOLVCONF=yes
 +OPTIONS="-u bind -t ${PATH_BIND}"
 +EOF
 +
 +
 +### AJUSTANDO O ARQUIVO /etc/resolv.conf ###
 +${CAT} <<EOF > /etc/resolv.conf
 +domain ${DOMINIO}
 +nameserver ${NS1_IP}
 +EOF
 +
 +#ESTRAINDO O REVERSO DO NS1
 +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 ###
 +${CP} ${PATH_BIND}/etc/bind/named.conf.options ${PATH_BIND}/etc/bind/named.conf.options.bkp
 +${CAT} <<EOF > ${PATH_BIND}/etc/bind/named.conf.options
 +options {
 +  directory "/var/cache/bind";
 +  managed-keys-directory "/var/cache/bind/dynamic";
 +  auth-nxdomain no;
 +  listen-on-v6 { any; };
 +  listen-on { 127.0.0.1/32; ${REDE}; };
 +  allow-query { any; };
 +  recursion no;
 +  version "Nao Disponivel";
 +  ### DNSSEC ###
 +  dnssec-enable no;
 +  dnssec-validation no;
 +  dnssec-lookaside auto;
 +};
 +
 +#Controles
 +include "/etc/bind/rndc.key";
 +controls {
 +        inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { rndc-key; };
 +};
 +
 +#LOGS
 +logging {
 +  channel xfer-log {
 +  file "/var/log/named.log";
 +  print-category yes;
 +  print-severity yes;
 +  print-time yes;
 +  severity info;
 +  };
 +
 +  category xfer-in { xfer-log; };
 +  category xfer-out { xfer-log; };
 +  category notify { xfer-log; };
 +
 +  channel update-debug {
 +  file "/var/log/named-update-debug.log";
 +  severity  debug 3;
 +  print-category yes;
 +  print-severity yes;
 +  print-time      yes;
 +  };
 +
 +  channel security-info    {
 +  file "/var/log/named-auth-info.log";
 +  severity  info;
 +  print-category yes;
 +  print-severity yes;
 +  print-time      yes;
 +  };
 +
 +  category update { update-debug; };
 +  category security { security-info; };
 +};
 +
 +#Controle de ancoras de DNSSEC
 +include "/etc/bind/bind.keys";
 +EOF
 +
 +### AJUSTANDO O ARQUIVO ${PATH_BIND}/etc/bind/named.conf.local ###
 +${CP} ${PATH_BIND}/etc/bind/named.conf ${PATH_BIND}/etc/bind/named.conf.bkp
 +${CAT} <<EOF > ${PATH_BIND}/etc/bind/named.conf
 +include "/etc/bind/named.conf.options";
 +include "/etc/bind/named.conf.local";
 +include "/etc/bind/named.conf.internal-zones";
 +include "/etc/bind/named.conf.external-zones";
 +EOF
 +
 +
 +
 +### AJUSTANDO O ARQUIVO DE ZONAS INTERNAS ###
 +${CAT} << EOF > ${PATH_BIND}/etc/bind/named.conf.internal-zones
 +#Definindo quem vão ser os nossos hosts internos, ex: a nossa rede e a maquina local
 +acl "internal_hosts" {
 + ${REDE};
 + 127.0.0.1/32;
 +};
 +
 +#Definindo qual vai ser o ip do servidor slave que vai poder receber a replicação da view internal
 +acl "internal_slave" {
 + ${NS2_IP};
 +};
 +
 +#Definição da View interna
 +view "internal" {
 +
 +#Definindo quais clientes vão poder consultar essa view
 + match-clients {
 + !${NS2_IP2};
 + internal_hosts;
 + };
 +
 +#O nossos clientes da view interna vão poder efetuar consultas recursivas
 + recursion yes;
 +
 +#Para qual servidor vai ser liberado a transferencia dessa view.
 + allow-transfer {
 + internal_slave;
 + };
 +
 +#Quem o bind vai notificar em caso de alterações de zona.
 + also-notify {
 + ${NS2_IP};
 + };
 +
 +#Zonas hint aonde temos as definições dos root masters
 + zone "." {
 + type hint;
 + file "/etc/bind/db.root";
 + };
 +
 +#Zonas internas
 + 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";
 + };
 +
 +### CONFIGURAÇÕES DO DOMINIO INTERNO
 + zone "${DOMINIO}" {
 + type master;
 + file "db.${DOMINIO}.internal";
 + };
 +
 + zone "${IP_REVERSE}.in-addr.arpa" {
 + type master;
 + file "db.${IP_REVERSE}";
 + };
 +
 +};
 +EOF
 +
 +### AJUSTANDO O ARQUIVO DE ZONAS EXTERNAS ###
 +${CAT} << EOF > ${PATH_BIND}/etc/bind/named.conf.external-zones
 +#Definindo os clientes locais o nome dessa acl tem que ser diferente da acl da view interna
 +acl "rede_local" {
 + ${REDE};
 + 127.0.0.1/32;
 +};
 +
 +#Defindo o ip do servidor slave para a view externa
 +acl "external_slave" {
 + ${NS2_IP2};
 +};
 +
 +#Definição da View externa
 +view "external" {
 +
 + #Definição dos clientes que vão poder consultar essa view
 + match-clients {
 + external_slave;
 + !rede_local;
 + any;
 + };
 +
 + #Os clientes dessa view não vão poder efetuar consultas recursivas
 + recursion no;
 +
 + #Para qual servidor vai ser liberada a transferencia dessa view
 + allow-transfer {
 + external_slave;
 + };
 +
 + #Quem o bind vai notificar quando for efetuada alguma alteração nas zonas
 + also-notify {
 + ${NS2_IP2};
 + };
 +
 + #A minha zona de teste.
 + zone "${DOMINIO}" {
 + type master;
 + file "db.${DOMINIO}.external";
 + };
 +};
 +EOF
 +
 +
 +
 +### AJUSTANDO O ARQUIVO DE ZONA INTERNA
 +${CAT} <<EOF > ${PATH_BIND}/var/cache/bind/db.${DOMINIO}.internal
 +`echo '$TTL 86400'`
 +@ IN SOA  dns.${DOMINIO}. root.dns.${DOMINIO}. (
 +                        `date +%Y%m%d`01  ; Serial
 +                        3600       ; Refresh
 +                        1800        ; Retry
 +                        1209600      ; Expire
 +                        3600 )     ; Minimum
 +
 +;
 +@   IN  NS   ${DOMINIO}.
 +${DOMINIO}. IN TXT "v=spf1 a mx ip4:${REDE} -all"
 +mail.${DOMINIO} IN TXT "v=spf1 a -all"
 +
 +@               IN  NS   ns1.${DOMINIO}.
 +@               IN  NS   ns2.${DOMINIO}.
 +@               IN  MX   0 mail.${DOMINIO}.
 +
 +;NAME SERVERS
 +@               IN  A    ${NS1_IP}
 +ns1             IN  A    ${NS1_IP}
 +ns2             IN  A    ${NS2_IP}
 +dns             IN  A    ${NS1_IP}
 +
 +;MAIL SERVERS
 +mail            IN  A    ${MX_IP}
 +imap            IN  CNAME mail
 +pop             IN  CNAME mail
 +smtp            IN  CNAME mail
 +webmail         IN  CNAME mail
 +
 +;WEB SERVERS
 +www             IN  A    ${WWW_IP}
 +ftp             IN  CNAME www
 +mailadmin       IN  CNAME www
 +EOF
 +
 +
 +#Retirando os endereços finais para  o arquivo reverso------------------------
 +REV_NS1=$(echo ${NS1_IP} | cut -d '.' -f 4)
 +REV_NS2=$(echo ${NS2_IP} | cut -d '.' -f 4)
 +REV_MX=$(echo ${MX_IP} | cut -d '.' -f 4)
 +REV_WWW=$(echo ${WWW_IP} | cut -d '.' -f 4)
 +
 +
 +
 +### AJUSTANDO O ARQUIVO /var/lib/named/var/cache/bind/db.0.168.192###
 +${CAT} <<EOF > ${PATH_BIND}/var/cache/bind/db.${IP_REVERSE}
 +`echo '$TTL 86400'`
 +@ IN SOA  dns.${DOMINIO}. root.dns.${DOMINIO}. (
 +                        `date +%Y%m%d`01  ; Serial
 +                        3600       ; Refresh
 +                        1800        ; Retry
 +                        604800      ; Expire
 +                        3600 )     ; Minimum
 +
 +;
 +@   IN  NS   ${DOMINIO}.
 +@               IN  NS   ns1.${DOMINIO}.
 +@               IN  NS   ns2.${DOMINIO}.
 +@               IN  MX   0 mail.${DOMINIO}.
 +
 +;NAME SERVERS
 +${REV_NS1}      IN  PTR    ${DOMINIO}.
 +${REV_NS1}      IN  PTR    ns1.${DOMINIO}.
 +${REV_NS2}      IN  PTR    ns2.${DOMINIO}.
 +${REV_NS1}      IN  PTR    dns.${DOMINIO}.
 +
 +;MAIL SERVERS
 +${REV_MX}       IN  PTR    mail.${DOMINIO}.
 +
 +;WEB SERVERS
 +${REV_WWW}      IN  PTR    adm.${DOMINIO}.
 +${REV_WWW}      IN  PTR    www.${DOMINIO}.
 +EOF
 +
 +
 +### AJUSTANDO O ARQUIVO DE ZONA INTERNA
 +${CAT} <<EOF > ${PATH_BIND}/var/cache/bind/db.${DOMINIO}.external
 +`echo '$TTL 86400'`
 +@ IN SOA  dns.${DOMINIO}. root.dns.${DOMINIO}. (
 +                        `date +%Y%m%d`01  ; Serial
 +                        3600       ; Refresh
 +                        1800        ; Retry
 +                        1209600      ; Expire
 +                        3600 )     ; Minimum
 +
 +;
 +@   IN  NS   ${DOMINIO}.
 +${DOMINIO}. IN TXT "v=spf1 a mx ip4:${REDE} -all"
 +mail.${DOMINIO} IN TXT "v=spf1 a -all"
 +
 +@               IN  NS   ns1.${DOMINIO}.
 +@               IN  NS   ns2.${DOMINIO}.
 +@               IN  MX   0 mail.${DOMINIO}.
 +
 +;NAME SERVERS
 +@               IN  A    200.200.200.1
 +ns1             IN  A    200.200.200.1
 +ns2             IN  A    200.200.200.2
 +dns             IN  A    200.200.200.1
 +
 +;MAIL SERVERS
 +mail            IN  A    200.200.200.3
 +imap            IN  CNAME mail
 +pop             IN  CNAME mail
 +smtp            IN  CNAME mail
 +webmail         IN  CNAME mail
 +
 +;WEB SERVERS
 +www             IN  A    200.200.200.4
 +ftp             IN  CNAME www
 +mailadmin       IN  CNAME www
 +EOF
 +
 +
 +
 +### REINCIANDO O BIND9 ###
 +/etc/init.d/bind9 start
 +</sxh>
Print/export
QR Code
QR Code instalacao_e_configuracao_do_bind_master_no_debian_wheezy_pt_br (generated for current page)