Configurando um Servidor de Nomes no CL10 apenas respondendo algumas perguntas...
Publicado por Edson G. de Lima 09/10/2005
[ Hits: 4.378 ]
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. # ------------------------------------------
Atualizar KDE para a versão 3.5.4
NFS server/client com iptables
Função que indica o estado do funcionamento do script
Nenhum comentário foi encontrado.
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Melhorando a precisão de valores flutuantes em python[AJUDA] (9)
GLPI - Configuração de destinatário com conta Microsoft Exchange (0)
Vou voltar moderar conteúdos de Dicas e Artigos (3)
OpenVPN no MACBOOK conecta mas não pinga pastas de rede compartilhada ... (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta