Como configurar o BIND como um servidor DNS de rede privada em CentOS 7

introdução

uma parte importante da Gestão da configuração e infra-estrutura do servidor inclui a manutenção de uma forma fácil de procurar interfaces de rede e endereços IP pelo nome, através da criação de um sistema de nomes de domínio apropriado (DNS). Usando nomes de domínio totalmente qualificados( FQDNs), em vez de endereços IP, para especificar endereços de Rede facilita a configuração de serviços e aplicações, e aumenta a manutenção de arquivos de configuração. Configurar o seu próprio DNS para a sua rede privada é uma ótima maneira de melhorar a gestão dos seus servidores.

neste tutorial, vamos ver como configurar um servidor DNS interno, usando o BIND name server software (BIND9) em CentOS 7, que pode ser usado pelos seus servidores privados virtuais (VPS) para resolver nomes privados de host e endereços IP privados. Isso fornece uma maneira central de gerenciar seus hostnames internos e endereços IP privados, o que é indispensável quando o seu ambiente se expande para mais do que alguns hosts.

a versão Ubuntu deste tutorial pode ser encontrada aqui.

pré-Requisitos

Para concluir este tutorial, você vai precisar do seguinte:

  • Alguns servidores que estão executando no mesmo datacenter privada e a rede activada
  • Um novo VPS para servir como servidor de DNS Primário, ns1
  • Opcional: Um novo VPS para servir como um servidor DNS Secundário, o ns2
  • acesso Root para todos os itens acima (etapas de 1 a 4 aqui)

Se você não estiver familiarizado com conceitos de DNS, é recomendável que você leia pelo menos as três primeiras partes da Introdução para a Gestão de DNS.

Exemplo Hosts

Para fins de exemplo, vamos supor o seguinte:

  • temos dois existente VPS chamado “host1” e “host2”
  • Ambos VPS existe no nyc3 datacenter
  • Ambos VPS rede privada habilitada (e estão no 10.128.0.0/16 sub-rede)
  • Ambos VPS estão de alguma forma relacionados com a nossa aplicação web que é executado no “example.com”

Com estes pressupostos, decidimos que faz sentido utilizar um esquema de nomenclatura que utiliza “nyc3.example.com” para se referir ao nosso sub-rede privada ou zona. Portanto, host1 privada do Nome de Domínio Totalmente Qualificado (FQDN) será “host1.nyc3.example.com”. Consulte a tabela a seguir os detalhes relevantes:

Host Papel FQDN Privado Endereço IP Privado
host1 Generic Host 1 host1.nyc3.example.com 10.128.100.101
host2 Generic Host 2 host2.nyc3.example.com 10.128.200.102

Nota: O programa de configuração existentes serão diferentes, mas o exemplo de nomes e endereços IP será usado para demonstrar como configurar um servidor DNS para fornecer um funcionamento interno de DNS. Você deve ser capaz de adaptar facilmente esta configuração para o seu próprio ambiente, substituindo os nomes de host e endereços IP privados com o seu próprio. Não é necessário usar o nome da região do datacenter em seu esquema de nomenclatura, mas nós o usamos aqui para denotar que esses hosts pertencem a uma rede particular do datacenter. Se você utilizar vários datacenters, você pode configurar um DNS interno dentro de cada datacenter respectivo.

nosso objetivo

no final deste tutorial, teremos um servidor DNS primário, ns1, e opcionalmente um servidor DNS secundário, ns2, que servirá como um backup.

Aqui está uma tabela com exemplos de nomes e endereços IP:

Host Papel FQDN Privado Endereço IP Privado
ns1 Servidor de DNS Primário ns1.nyc3.example.com 10.128.10.11
ns2 Servidor de DNS Secundário ns2.nyc3.example.com 10.128.20.12

Vamos começar pela instalação do nosso servidor de DNS Primário, ns1.

instalar o BIND nos servidores DNS

Nota: O texto realçado a vermelho é importante! Ele muitas vezes será usado para denotar algo que precisa ser substituído por suas próprias configurações ou que ele deve ser modificado ou adicionado a um arquivo de configuração. Por exemplo, se você ver algo como host1.nyc3.exemplo.com, substitua-o pelo FQDN do seu próprio servidor. Da mesma forma, se você ver o host1_ private_ip, substitua-o pelo endereço IP privado do seu próprio servidor.

em ambos os servidores DNS, ns1 e ns2, instalar o BIND com yum:

  • sudo yum install bind bind-utils

confirmar a linha de comandos ao introduzir y.

Agora que o BIND está instalado, vamos configurar o servidor DNS primário.

Configure Primary DNS Server

BIND’s configuration consists of multiple files, which are included from the main configuration file, named.conf. Estes nomes de arquivos começam com” nomeado ” porque esse é o nome do processo que se liga executa. Vamos começar com a configuração do arquivo de opções.

Configure Bind

BIND’s process is known as named. Como tal, muitos dos arquivos se referem a “nomeado”em vez de “BIND”.

On ns1, open the named.conf file for editing:

acima do existenteoptions block, create a new ACL block called “trusted”. É aqui que vamos definir a lista de clientes que vamos permitir consultas DNS recursivas de (i.e. seus servidores que estão no mesmo datacenter que o ns1). Usando o nosso exemplo de endereços IP privados, adicionaremos ns1, ns2, host1 e host2 à nossa lista de clientes de confiança:

/etc/nomeado.conf – 1 of 4
acl "trusted" { 10.128.10.11; # ns1 - can be set to localhost 10.128.20.12; # ns2 10.128.100.101; # host1 10.128.200.102; # host2};

Now that we have our list of trusted DNS clients, we will want to edit the options block. Adicione o endereço IP privado do ns1 ao listen-on port 53 directive, e comente olisten-on-v6 line:

/etc / named.conf – 2 of 4
options { listen-on port 53 { 127.0.0.1; 10.128.10.11; };# listen-on-v6 port 53 { ::1; };...

Below those entries, change the allow-transfer directive to from “none” to ns2’s private IP address. Also, change allow-query directive from” localhost “to”trusted”:

/etc/named.conf-3 de 4

no final do ficheiro, adicione a seguinte linha:

/etc/nomeado.conf-4 of 4
include "/etc/named/named.conf.local";

now save and exit named.conf. A configuração acima especifica que apenas os seus próprios servidores (Os “confiáveis”) serão capazes de consultar o seu servidor de DNS.

em seguida, vamos configurar o arquivo local, para especificar as nossas zonas de DNS.

Configure o ficheiro Local

On ns1, abra o named.conf.local ficheiro para edição:

o ficheiro deve estar vazio. Aqui, vamos especificar as nossas zonas para a frente e para trás.

adicione a zona dianteira com as seguintes linhas (substitua o nome da zona pelo seu próprio):

/etc/nomeado/nomeado.conf.local-1 de 2
zone "nyc3.example.com" { type master; file "/etc/named/zones/db.nyc3.example.com"; # zone file path};

assumindo que a nossa sub-rede privada é 10.128.0.0/16, adicione a zona inversa com as seguintes linhas (note que o nosso nome de zona inversa começa com” 128.10″, que é a inversão de octetos de”10.128″):

/etc/nomeado/nomeado.conf.local — 2 de 2
zone "128.10.in-addr.arpa" { type master; file "/etc/named/zones/db.10.128"; # 10.128.0.0/16 subnet };

Se os seus servidores abrangem várias sub-redes privadas, mas estão no mesmo datacenter, certifique-se de especificar uma zona adicional e arquivo de zona para cada distintas sub-rede. Quando terminar de adicionar todas as zonas desejadas, salve e saia do ficheiro named.conf.local.

Agora que as nossas zonas estão especificadas em BIND, precisamos criar os correspondentes ficheiros forward e reverse zone.

criar um ficheiro de zona para a frente

o ficheiro de zona para a frente é onde definimos registos de DNS para pesquisas de DNS para a frente. Isto é, quando o DNS recebe uma consulta de nome,” host1.nyc3.example.com ” por exemplo, ele vai olhar no arquivo da zona para a frente para resolver o endereço IP privado correspondente do host1.

vamos criar o directório onde os nossos ficheiros da zona irão residir. De acordo com o nosso nome.conf.configuração local, essa localização deve ser /etc/named/zones:

  • sudo chmod 755 /etc/named
  • sudo mkdir /etc/named/zones

Now let’s edit our forward zone file:

  • sudo vi /etc/named/zones/db.nyc3.example.com

First, you will want to add the SOA record. Substituir o FQDN NS1 seleccionado com o seu próprio FQDN, e depois substituir o segundo “nyc3.example.com” com o teu próprio domínio. Sempre que editar um ficheiro zone, deverá aumentar o valor da série antes de reiniciar onamed processo–iremos incrementá-lo para “3”. Deve ser parecido com isto:

/ etc / named / zones / db.nyc3.exemplo.com-1 de 3

Depois disso, adicione os seus registos do servidor de nomes pelas seguintes linhas (substitua os nomes pelos seus). Observe que a segunda coluna especifica que estas são “NS” registros:

/etc/named/zonas/db.nyc3.exemplo.com 2 dos 3
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.

em Seguida, adicionar registos para os hosts que pertencem a esta zona. Isto inclui qualquer servidor cujo nome queremos terminar com”. nyc3.example.com ” (substitua os nomes e endereços IP privados). Usando os nossos nomes de exemplo e endereços IP privados, vamos adicionar um registro para ns1, ns2, host1, e host2 como tal:

/etc/named/zones / db.nyc3.example. com-3 of 3

Save and exit the db.nyc3.example.com file.

O nosso último exemplo de ficheiro forward zone parece — se com o seguinte:

/etc/named/zones/db.nyc3.exemplo.com-complete

Agora vamos passar para o(s) ficheiro (s) da zona inversa.

Create Reverse Zone File (s)

Reverse zone file are where we defined DNS PTR records for reverse DNS lookups. Isto é, quando o DNS recebe uma consulta por endereço IP, “10.128.100.101”, por exemplo, ele vai procurar no(S) arquivo (s) de zona reversa para resolver o FQDN correspondente, “host1.nyc3.example.com” neste caso.

On ns1, for each reverse zone specified in the named.conf.local file, create a reverse zone file.

Editar o arquivo de zona reversa, que corresponde à zona de reverse(s) definidos no named.conf.local:

  • sudo vi /etc/named/zones/db.10.128

da mesma forma como zona de forward arquivo, substitua o destaque ns1 FQDN com o seu próprio FQDN, em seguida, substituir o segundo “nyc3.example.com” com o seu próprio domínio. Sempre que editar um ficheiro zone, deverá aumentar o valor da série antes de reiniciar onamed processo–iremos incrementá-lo para “3”. Deve ser parecido com isto:

/ etc / named / zones / db.10.128 – 1 de 3

Depois disso, adicione os seus registos do servidor de nomes com as seguintes linhas (substitua os nomes pelos seus). Note – se que a segunda coluna especifica que se trata de registos “NS”:

/etc/nomed/zones/db.10.128 – 2 of 3
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.

em seguida, adicionar PTR registos de todos os seus servidores cujos endereços IP estão na sub-rede do ficheiro zone que está a editar. No nosso exemplo, isto inclui todos os nossos anfitriões porque estão todos na sub-rede 10.128.0.0 / 16. Note que a primeira coluna consiste nos dois últimos octetos dos endereços IP privados dos seus servidores em ordem inversa. Certifique-se de substituir nomes e endereços IP privados para corresponder aos seus servidores:

/etc/nomeado/zones/db.10.128-3 de 3

gravar e sair do ficheiro de zona inversa (repita esta secção se necessitar de adicionar mais ficheiros de zona inversa).

O nosso último exemplo de ficheiro de zona inversa parece ser o seguinte:

/etc/nomeado/zones / db.10.128 — completo

Verifique a Configuração do BIND Sintaxe

Execute o seguinte comando para verificar a sintaxe do named.conf* arquivos

  • sudo named-checkconf

Se o seu nome de arquivos de configuração tem nenhum erro de sintaxe, você retornará ao prompt do shell e ver nenhuma mensagem de erro. Se houver problemas com os seus ficheiros de configuração, reveja a mensagem de erro e a secção do servidor DNS primário de configuração, então tente named-checkconf novamente.

O comando named-checkzone pode ser usado para verificar a exatidão dos arquivos da sua zona. Seu primeiro argumento especifica um nome de zona, e o segundo argumento especifica o arquivo de zona correspondente, que são ambos definidos em named.conf.local.

por exemplo, para verificar o “nyc3.example.com” configuração da zona avançada, execute o seguinte comando (altere os nomes para corresponder à sua zona avançada e Ficheiro):

  • sudo named-checkzone nyc3.example.com /etc/named/zones/db.nyc3.example.com

E para verificar a “128.10.in-addr.arpa” zona reversa de configuração, execute o seguinte comando (alterar os números para corresponder à sua zona reversa e arquivo):

  • sudo named-checkzone 128.10.in-addr.arpa /etc/named/zones/db.10.128

Quando todos os seus configuração e arquivos de zona sem erros neles, você deve estar pronto para reiniciar o serviço de ligação.

Iniciar BIND

Iniciar o BIND:

  • sudo systemctl start named

Agora você vai desejar ativá-lo, por isso, vai iniciar no boot:

  • sudo systemctl enable named

O servidor de DNS primário está agora configurado e pronto para responder a consultas de DNS. Passemos à criação do servidor DNS secundário.

configurar o servidor DNS secundário

na maioria dos ambientes, é uma boa ideia configurar um servidor DNS secundário que irá responder a pedidos se o primário ficar indisponível. Felizmente, o servidor DNS secundário é muito mais fácil de configurar.

On ns2, edite onamed.conf ficheiro:

Nota: Se preferir ignorar estas instruções, poderá copiar o id

named.conf

e modificá-lo para ouvir o endereço IP privado do ns2, e não permitir transferências.

acima do existente options bloco, criar um novo bloco ACL chamado “trusted”. É aqui que vamos definir a lista de clientes que vamos permitir consultas DNS recursivas (ou seja, seus servidores que estão no mesmo datacenter que o ns1). Usando o nosso exemplo de endereços IP privados, adicionaremos ns1, ns2, host1 e host2 à nossa lista de clientes de confiança:

/etc/nomeado.conf – 1 of 4
acl "trusted" { 10.128.10.11; # ns1 - can be set to localhost 10.128.20.12; # ns2 10.128.100.101; # host1 10.128.200.102; # host2};

Now that we have our list of trusted DNS clients, we will want to edit the options block. Adicione o endereço IP privado do ns1 ao listen-on port 53 directive, e comente olisten-on-v6 line:

/etc / named.conf – 2 of 4
options { listen-on port 53 { 127.0.0.1; 10.128.20.12; };# listen-on-v6 port 53 { ::1; };...

Change allow-query directive from” localhost “to”trusted”:

/etc/named.conf-3 of 4
...options {... allow-query { trusted; }; # allows queries from "trusted" clients...

no final do ficheiro, adicione a seguinte linha:

/etc/nomeado.conf-4 of 4
include "/etc/named/named.conf.local";

now save and exit named.conf. A configuração acima especifica que apenas os seus próprios servidores (Os “confiáveis”) serão capazes de consultar o seu servidor de DNS.

em seguida, vamos configurar o arquivo local, para especificar as nossas zonas de DNS.

Save and exit named.conf.

agora edita onamed.conf.local ficheiro:

  • sudo chmod 755 /etc/named
  • sudo vi /etc/named/named.conf.local

Define zonas de escravos que correspondem às zonas principais do servidor DNS primário. Note que o tipo é “slave”, o arquivo não contém um caminho, e há um masters diretiva que deve ser definido para o IP privado do servidor DNS primário. Se você definiu várias zonas inversas no servidor DNS primário, certifique-se de adicioná-las todas aqui:

/etc/nomeado/nomeado.conf.local

agora gravar e sair named.conf.local.

Execute o seguinte comando para verificar a validade de seus arquivos de configuração:

  • sudo named-checkconf

uma Vez que se verifica, iniciar o BIND:

  • sudo systemctl start named

Ativar LIGAR para iniciar na inicialização:

sudo systemctl enable named

Agora você tem servidores DNS primário e secundário para o nome da rede privada e de resolução de endereços IP. Agora você deve configurar seus servidores para usar seus servidores DNS privados.

configurar os clientes de DNS

Antes de todos os seus servidores na ACL “confiável” poderem consultar os seus servidores de DNS, você deve configurar cada um deles para usar o ns1 e o ns2 como servidores de nomes. Este processo varia dependendo do SO, mas para a maioria das distribuições Linux envolve adicionar seus servidores de nome para o arquivo /etc/resolv.conf.

clientes CentOS

em CentOS, RedHat e Fedora Linux VPS, basta editar oresolv.conf ficheiro:

  • sudo vi /etc/resolv.conf

depois adicione as seguintes linhas ao topo do ficheiro (substitua o seu domínio privado e os endereços IP privados ns1 e ns2):

/etc / resolv.conf
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address

agora gravar e sair. O seu cliente está agora configurado para usar os seus servidores DNS.

Ubuntu Clientes

No Ubuntu e Debian Linux VPS, você pode editar o head arquivo, que é anexado ao resolv.conf na inicialização:

  • sudo vi /etc/resolvconf/resolv.conf.d/head

adicione as seguintes linhas ao ficheiro (substitua o seu domínio privado e os endereços IP privados ns1 e ns2):

/etc/resolvconf / resolv.conf.d/head
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address

Agora executar o resolvconf para gerar um novo resolv.conf arquivo:

  • sudo resolvconf -u

O cliente agora está configurado para usar os servidores de DNS.

Test Clients

Use nslookup—included in the “bind-utils” package—to test if your clients can query your name servers. Você deve ser capaz de fazer isso em todos os clientes que você configurou e estão no ACL “confiável”.

Forward Lookup

Por exemplo, podemos realizar uma pesquisa direta para obter o endereço IP do host1.nyc3.example.com executando o seguinte comando:

  • nslookup host1

Consultar “host1” se expande “host1.nyc3.example.com porque de search opção é definida para o privado subdomínio, e consultas de DNS vai tentar olhar para o subdomínio antes de olhar para o host em outro lugar. A saída do comando acima será parecido com o seguinte:

Output:
Server: 10.128.10.11Address: 10.128.10.11#53Name: host1.nyc3.example.comAddress: 10.128.100.101

de Pesquisa Inversa

Para testar o inverso de pesquisa, consulta o servidor DNS com o host1 do endereço IP privado:

  • nslookup 10.128.100.101

Você deve ver uma saída semelhante à seguinte:

Output:
Server: 10.128.10.11Address: 10.128.10.11#5311.10.128.10.in-addr.arpa name = host1.nyc3.example.com.

Se todos os endereços IP e nomes de resolver para os valores corretos, o que significa que os seus arquivos de zona estão configurados corretamente. Se você receber valores inesperados, certifique – se de rever os arquivos da zona em seu servidor DNS primário (e.g. db.nyc3.example.comand).Parabéns! Seus servidores internos de DNS estão agora configurados corretamente! Agora vamos cobrir a manutenção dos seus registos da zona.

mantendo Registos DNS

Agora que você tem um DNS interno de trabalho, você precisa manter os seus registos DNS para que eles reflitam com precisão o seu ambiente de servidor.

adicionar a máquina ao DNS

sempre que adicionar uma máquina ao seu ambiente (no mesmo datacenter), irá querer adicioná-la ao DNS. Aqui está uma lista de passos que você precisa tomar:

servidor de nomes Primário

  • Encaminhar arquivo de zona: Adicionar Um registo “a” para o novo host, incrementar o valor de “Série”
  • arquivo de zona Reversa: Adicionar um “PTR” registro para o novo host, incrementar o valor de “Série”
  • Adicione o seu novo host do endereço IP privado para o “confiável” ACL (named.conf.options

em Seguida, recarregar o BIND:

  • sudo systemctl reload named

servidor de nomes Secundário

  • Adicione o seu novo host do endereço IP privado para o “confiável” ACL (named.conf.options

em Seguida, recarregar BIND:

  • sudo systemctl reload named

Configure a nova máquina para usar o seu DNS

  • Configure resolv.conf para usar os servidores de DNS
  • Teste usando nslookup

Remover o Host de DNS

Se você remover um host de seu ambiente ou quer apenas tirar do DNS, remova todas as coisas que foram adicionadas quando você adicionou o servidor de DNS (por exemplo, o inverso dos passos acima).

conclusão

Agora você pode se referir às interfaces de rede privadas dos seus servidores pelo nome, em vez de pelo endereço IP. Isso torna a configuração de serviços e aplicativos mais fácil porque você não precisa mais lembrar os endereços IP privados, e os arquivos serão mais fáceis de ler e entender. Além disso, agora você pode mudar suas configurações para apontar para um novo servidor em um único lugar, seu servidor DNS primário, em vez de ter que editar uma variedade de arquivos de configuração distribuídos, o que facilita a manutenção.

Uma vez que você tenha seus DNS internos configurados, e seus arquivos de configuração estão usando FQDNs privados para especificar conexões de rede, é fundamental que seus servidores DNS sejam mantidos corretamente. Se ambos ficarem indisponíveis, os seus serviços e aplicações que dependem deles deixarão de funcionar correctamente. É por isso que é recomendado configurar seu DNS com pelo menos um servidor secundário, e para manter backups de trabalho de todos eles.

Related Posts

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *