Configurando um Servidor de Nomes no CL10 apenas respondendo algumas perguntas...
Publicado por Edson G. de Lima 09/10/2005
[ Hits: 4.574 ]
Este script foi feito para quem acredita que configurar um Servidor de Nomes é coisa difícil. Permite configurar um DNS com suporte para os principais servidores de um Domínio.
#!/bin/bash
#------------------------------------------------------
echo "Limpando a sua tela..."
sleep 2
clear
echo "Este script foi \"exaustivamente\" testado COM SUCESSO em uma instalação"
echo "rodando o CL10. Nesta versão, o Bind está instalado em modo chroot no"
echo "diretório /var/named/var/named"
echo
echo "Dentro deste script existe um LEIA-ME. Recomenda-se sua leitura antes de prosseguir."
echo
echo "Neste LEIA-ME existem algumas VARIÁVEIS referentes à localização dos arquivos do Bind."
echo "Certifique-se de que em sua \"Distro\" os arquivos estejam nestes mesmos locais."
echo "Caso estejam em locais diferentes, por favor, faça os ajustes necessários."
echo
echo "Este script poderá ser modificado, e seu código aproveitado/melhorado!"
echo "Caso queira entrar em contato: Xxoin arroba yahoo ponto com ponto br"
echo
echo "Em hipótese alguma, o autor poderá ser responsabilizado por qualquer coisa que"
echo "possa ocorrer de errado. Ainda que seja por falha provocada pelo script."
echo "Isto significa que ao fazer uso, você concorda em assumir toda a responsabilidade!"
echo
echo "Para evitar problemas, certifique-se de que o Bind com todas"
echo "as ferramentas que o acompanham estejam instalados."
echo
echo "FAÇA um BACKUP de todos os seus arquivos de configuração, especialmente os do BIND."
echo
echo "Deseja prosseguir?? s/n"
echo
read YN
if [ $YN = "s" ]; then
echo "OK, vamos prosseguir!"
echo
else
echo "OK, vamos parar!"
echo
echo "Saindo..."
echo
exit
fi
#
# Capturando as variáveis da rede:
# Pegando os dados para montar um Name-Server:
echo
echo "ATENÇÃO: --> Na hora de responder às perguntas, observe que:"
echo
echo "1) Sempre que aparecer um menu, faça a escolha numérica correspondente."
echo
echo "2) Hostname é apenas o nome do computador na rede; é diferente de FQDN."
echo "O FQDN inclui o hostname.domínio !!!"
echo
echo "Deseja montar um Name-Server nesta máquina? (s)sim | (n)não"
read YN
if [ $YN = "s" ]; then
echo
echo "Você respondeu [ sim ]. Parando o serviço NAMED..."
echo
service named stop
echo
echo "Serão necessários alguns dados sobre sua rede..."
echo
echo "Qual o Domínio a que esta máquina pertence. Ex teste.local"
read DM
echo
echo "Qual o IP da Rede? Coloque no formato 'addr.arpa'."
echo "Ex. Se sua rede for 10.1.1.0 ficará 1.1.10"
read REDE
echo
echo "Qual o hostname (nome) desta máquina? Ex. Xxoin"
echo "NÃO pode existir o caracter -ponto- (.) . NÃO pode ser apenas NS"
read HOSTNS
echo
echo "Qual o IP desta máquina?"
read IPNS
echo
echo "Crie um diretório temporário para armazenamento das variáveis."
echo "Exemplo: /tmp/dnstmp - Este diretório será excluído ao final da configuração"
read DIRTMP
else
echo
echo "Se sua intenção for montar um Servidor de DNS, utilize a letra s minúscula."
echo "s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s s!"
echo
exit
fi
#----------------------------------------------------------------------------------------
# --- LEIA-ME --- LEIA-ME --- LEIA-ME --- LEIA-ME --- LEIA-ME --- LEIA-ME --- LEIA-ME ---
# Talvez seja necessário você ajustar estas variáveis em conformidade com sua instalação:
# Definindo a localização dos arquivos do BIND:
# Todos os testes foram feitos utilizando o CL10. Nesta versão,
# o Bind está instalado em chroot no diretório /var/var/var/named.
# Isto significa que pode ocorrer de ser necessário que as variáveis abaixo
# precisem ser ajustadas conforme a sua realidaded.
# Diretório a ser a base no arquivo named.conf:
DIRNAMED=/var/named
# Diretório na árvore do diretório acima:
CHROOTNAMED=/var/named
# Local onde o Bind deverá procurar o named.conf:
CONF=$CHROOTNAMED/etc/named.conf
# Local onde será gravado o registro de seu Domínio:
ARQHOSTS=$CHROOTNAMED/var/named/$DM.hosts
# Local onde será gravado o registro reverso de seu Domínio:
ARQREV=$CHROOTNAMED/var/named/$REDE.rev
# Diretório onde ficarão os dois arquivos acima:
DIR_RR=/var/named/var/named
#----------------------------------------------------------------------------------------
#------------------------------------------------------------------
echo
echo "Vamos gravar as configurações no diretório temporário acima..."
echo
# Escrevendo a rede em forma addr.arpa:
if [ ! -d $DIRTMP ]; then
mkdir $DIRTMP
echo $REDE > $DIRTMP/net.tmp
echo $IPNS > $DIRTMP/ns.tmp
else
echo
echo "O diretório temporário solicitado já existe, portanto, não poderá ser removido..."
echo "Será necessário recomeçar! Saindo sem fazer nada..."
echo
exit
fi
# Descrevendo as funções:
# ---------------Abrindo função master:----------------------------
MASTER()
{
# Criando arquivo named.conf:
echo options \{ > $CONF
echo directory \"/$DIRNAMED\"\; >> $CONF
echo dump-file \"$CHROOTNAMED/dump/named_dump.db\"\; >> $CONF
echo statistics-file \"$CHROOTNAMED/dump/statistics.file\"\; >> $CONF
echo memstatistics-file \"$CHROOTNAMED/dump/named.memstats\"\; >> $CONF
echo listen-on \{ 127.0.0.1\; 0\/0\; \}\; >> $CONF
echo \}\; >> $CONF
echo zone \"0.0.127.in-addr.arpa\" \{ >> $CONF
echo type master\; >> $CONF
echo file \"$CHROOTNAMED/named.local\"\; >> $CONF
echo \}\; >> $CONF
echo zone \".\" \{ >> $CONF
echo type hint\; >> $CONF
echo file \"$CHROOTNAMED/named.ca\"\; >> $CONF
echo \}\; >> $CONF
echo zone \"$DM\" \{ >> $CONF
echo type master\; >> $CONF
echo file \"$CHROOTNAMED/$DM.hosts\"\; >> $CONF
echo \}\; >> $CONF
echo zone \"$REDE.in-addr.arpa\" \{ >> $CONF
echo type master\; >> $CONF
echo file \"$CHROOTNAMED/$REDE.rev\"\; >> $CONF
echo \}\; >> $CONF
# Criando arquivo domínio.hosts:
echo \$TTL 43200 > $ARQHOSTS
echo @ IN SOA $HOSTNS.$DM. root.$DM. \( >> $ARQHOSTS
echo 2005082301 \; serial >> $ARQHOSTS
echo 3600 \; refresh >> $ARQHOSTS
echo 900 \; retry >> $ARQHOSTS
echo 1209600 \; expire >> $ARQHOSTS
echo 43200 \; default ttl >> $ARQHOSTS
echo \) >> $ARQHOSTS
echo @ IN NS $HOSTNS.$DM. >> $ARQHOSTS
echo $HOSTNS IN A $IPNS >> $ARQHOSTS
# Criando arquivo de zona reversa:
echo \$TTL 43200 > $ARQREV
echo @ IN SOA $HOSTNS.$DM root.$DM \( >> $ARQREV
echo 2005082301 \; serial >> $ARQREV
echo 3600 \; refresh >> $ARQREV
echo 900 \; retry >> $ARQREV
echo 1209600 \; expire >> $ARQREV
echo 43200 \; default_ttl >> $ARQREV
echo \) >> $ARQREV
echo @ IN NS $HOSTNS.$DM. >> $ARQREV
echo $(cut -d. -f4 $DIRTMP/ns.tmp) IN PTR $HOSTNS.$DM. >> $ARQREV
echo
echo
echo "Atenção!"
echo "Atenção!!"
echo "Atenção!!!"
echo
echo "Registrando outros Servidores do Domínio..."
echo
echo
echo "Seu Domínio terá um Servidor de Nomes Secundário? s/n"
read YN
if [ $YN = "s" ]; then
echo "Qual o hostname (nome) do Servidor de Nomes Secundário?"
echo "Não pode existir o caracter -ponto- (.) . Também NÃO pode ser NS"
read HOSTNS02
echo "Qual é o IP do Servidor de Nomes Secundário?"
read IPNS02
echo $IPNS02 > $DIRTMP/02.tmp
# Editando arquivo domínio.hosts e rede.rev, referente ao NS02:
echo @ IN NS $HOSTNS02.$DM. >> $ARQHOSTS
echo $HOSTNS02 IN A $IPNS02 >> $ARQHOSTS
echo @ IN NS $HOSTNS02.$DM. >> $ARQREV
echo $(cut -d. -f4 $DIRTMP/02.tmp) IN PTR $HOSTNS02.$DM. >> $ARQREV
else
echo "Este DNS não está sendo configurado para trabalhar com um DNS_Slave..."
fi
echo
echo
echo "Seu Domínio terá um Servidor de Correio? s/n"
read YN
if [ $YN = "s" ]; then
echo "Qual o hostname (nome) do Servidor de Correio?"
echo "NÃO pode existir o caracter -ponto- (.) . NÃO pode ser apenas mail"
read HOSTMAIL
echo "Qual o IP do Servidor de Correio?"
read IPMAIL
echo $IPMAIL > $DIRTMP/mx.tmp
# Editando arquivo domínio.hosts e rede.rev, referente ao MailServer:"
echo @ IN MX 5 $HOSTMAIL.$DM. >> $ARQHOSTS
echo $HOSTMAIL IN A $IPMAIL >> $ARQHOSTS
echo mail IN CNAME $HOSTMAIL >> $ARQHOSTS
echo $(cut -d. -f4 $DIRTMP/mx.tmp) IN PTR $HOSTMAIL.$DM. >> $ARQREV
else
echo "Este DNS não está sendo configurado para trabalhar com um MailServer."
fi
echo
echo
echo "Seu Domínio terá um Servidor Web? s/n"
read YN
if [ $YN = "s" ]; then
echo "Qual o hostname (nome) do Servidor Web?"
echo "NÃO pode existir o caracter -ponto- (.) . NÂO pode ser apenas www"
read HOSTWEB
echo "Qual o IP do Servidor Web?"
read IPWEB
echo $IPWEB > $DIRTMP/wb.tmp
# Editando arquivo domínio.hosts e rede.rev, referente ao WebServer:
echo $HOSTWEB IN A $IPWEB >> $ARQHOSTS
echo www IN CNAME $HOSTWEB >> $ARQHOSTS
echo $(cut -d. -f4 $DIRTMP/wb.tmp) IN PTR $HOSTWEB.$DM. >> $ARQREV
else
echo "Este DNS não está sendo configurado para trabalhar com um WebServer."
fi
echo
echo
echo "Seu Domínio terá um Servidor de FTP? s/n"
read YN
if [ $YN = "s" ]; then
echo "Qual o hostname (nome) do Servidor de FTP?"
echo "Não pode existir o caracter -ponto- (.) . NÃO pode ser apenas ftp"
read HOSTFTP
echo "Qual é o IP do Servidor FTP?"
read IPFTP
echo $IPFTP > $DIRTMP/ft.tmp
# Editando arquivo domínio.hosts e rede.rev, referente ao Ftpserver:
echo $HOSTFTP IN A $IPFTP >> $ARQHOSTS
echo ftp IN CNAME $HOSTFTP >> $ARQHOSTS
echo $(cut -d. -f4 $DIRTMP/ft.tmp) IN PTR $HOSTFTP.$DM. >> $ARQREV
else
echo "Este DNS não está sendo configurado para trabalhar com um FtpServer."
fi
echo
}
#------------- Fechada a função master-------------------------------
#------------------- Abrindo função slave:----------------------------
SLAVE()
{
echo "Esta configuração requer o IP do Servidor Primário..."
echo "Digite o IP do Servidor de nomes principal:"
read MASTER
#Permitindo que o Servidor Primário grave os registros:
chown -R named $DIR_RR
chgrp -R named $DIR_RR
# Criando arquivo named.conf:
echo options \{ > $CONF
echo directory \"$DIRNAMED\"\; >> $CONF
echo dump-file \"$CHROOTNAMED/dump/named_dump.db\"\; >> $CONF
echo statistics-file \"$CHROOTNAMED/dump/statistics.file\"\; >> $CONF
echo memstatistics-file \"/$CHROOTNAMED/dump/named.memstats\"\; >> $CONF
echo listen-on \{ 127.0.0.1\; 0\/0\; \}\; >> $CONF
echo \}\; >> $CONF
echo zone \"0.0.127.in-addr.arpa\" \{ >> $CONF
echo type master\; >> $CONF
echo file \"$CHROOTNAMED/named.local\"\; >> $CONF
echo masters \{ $MASTER\; \}\; >> $CONF
echo \}\; >> $CONF
echo zone \".\" \{ >> $CONF
echo type hint\; >> $CONF
echo file \"$CHROOTNAMED/named.ca\"\; >> $CONF
echo masters \{ $MASTER\; \}\; >> $CONF
echo \}\; >> $CONF
echo zone \"$DM\" \{ >> $CONF
echo type slave\; >> $CONF
echo file \"$CHROOTNAMED/$DM.hosts\"\; >> $CONF
echo masters \{ $MASTER\; \}\; >> $CONF
echo \}\; >> $CONF
echo zone \"$REDE.in-addr.arpa\" \{ >> $CONF
echo type slave\; >> $CONF
echo file \"$CHROOTNAMED/$REDE.rev\"\; >> $CONF
echo masters \{ $MASTER\; \}\; >> $CONF
echo \}\; >> $CONF
}
#------------- Fechada a função slave -------------------------------
#-------------------- Abrindo função cache: --------------------------
CACHE()
{
# Criando arquivo named.conf:
echo options \{ > $CONF
echo directory \"$DIRNAMED\"\; >> $CONF
echo dump-file \"$CHROOTNAMED/dump/named_dump.db\"\; >> $CONF
echo statistics-file \"$CHROOTNAMED/dump/statistics.file\"\; >> $CONF
echo memstatistics-file \"$CHROOTNAMED/dump/named.memstats\"\; >> $CONF
echo listen-on \{ 127.0.0.1\; 0\/0\; \}\; >> $CONF
echo \}\; >> $CONF
echo zone \"0.0.127.in-addr.arpa\" \{ >> $CONF
echo type master\; >> $CONF
echo file \"$CHROOTNAMED/named.local\"\; >> $CONF
echo \}\; >> $CONF
echo zone \".\" \{ >> $CONF
echo type hint\; >> $CONF
echo file \"$CHROOTNAMED/named.ca\"\; >> $CONF
echo \}\; >> $CONF
}
#------------------- Fechada a função cache ---------------------------------
# Execução:
echo "Será um Servidor Master, Slave ou apenas para Cache? 1 | 2 | 3"
select NAME in "Master" "Slave" "Cache"; do
break
done
echo
echo "Aguarde"
echo "apenas"
echo "alguns"
echo "segundos"
echo "..."
sleep 2
echo
if [ $NAME = "Master" ]; then
MASTER
service named start
echo nameserver $IPNS > /etc/resolv.conf
service network restart
rm -Rf $DIRTMP
echo
grep named /var/log/messages | tail -20
echo
echo "Verifique se não há erros referentes aos arquivos e se"
echo "as Zonas foram levantadas corretamente."
elif [ $NAME = "Slave" ]; then
SLAVE
service named start
echo nameserver $IPNS >> /etc/resolv.conf
service network restart
rm -Rf $DIRTMP
echo
echo "Verifique se as Zonas foram levantadas corretamente."
grep named /var/log/messages | tail -20
echo
elif [ $NAME = "Cache" ]; then
CACHE
service named start
echo nameserver $IPNS > /etc/resolv.conf
service network restart
rm -Rf $DIRTMP
echo
echo "Verifique se as Zonas foram levantadas corretamente."
grep named /var/log/messages | tail -20
echo
else
echo
echo "Por favor, faça uma escolha numérica. Teremos que recomeçar!"
echo "1 2 3 - 1 2 3 - 1 2 3 - 1 2 3 - 1 2 3 - 1 2 3 - 1 2 3 - !!!!"
echo
fi
# ------------------------------------------
# Desenvolvido por Edson Gonçalves de Lima
# Campo Grande, MS, agosto de 2005.
# ------------------------------------------
Compactar com senha usando 7Zip
Criar gráficos, estatística da "Google-Scholar" usando wget
Script recolher log's servidor
mailnow - Envia mensagens pelo shell
Nenhum comentário foi encontrado.
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









