Os seus próprios servidores de nomes oferecem o máximo controlo e flexibilidade sobre as entradas DNS e são, por isso, ideais para projectos web ambiciosos, agências e empresas. Neste guia, mostrar-lhe-ei passo a passo como configurar os seus próprios servidores de nomes e ligá-los aos seus domínios - tecnicamente bem fundamentado mas fácil de compreender.
Pontos centrais
- Controlo total através de zonas DNS, TTL e registos
- Servidores de marca reforçar a aparência profissional
- Registos de cola são essenciais para subdomínios dentro de domínios próprios
- Infraestrutura do servidora alta disponibilidade requer, idealmente, dois sistemas separados geograficamente
- Monitorização Assegura um funcionamento permanentemente fiável
O que são servidores de nomes e quando é que vale a pena ter a sua própria configuração?
Os servidores de nomes resolvem os nomes de domínio em endereços IP e encaminham os pedidos para os servidores corretos. A maioria dos pacotes de alojamento já inclui servidores DNS como padrão - no entanto, estes limitam frequentemente as opções de configuração. Assim que pretender gerir de forma flexível os registos SPF, DKIM ou SRV, por exemplo, o servidores de nomes próprios razoável.
O próprio utilizador define a rapidez com que as consultas DNS são respondidas, o tempo que as entradas permanecem válidas e pode gerir os seus próprios subdomínios de forma totalmente automática através de APIs. Esta autonomia é uma verdadeira vantagem para as configurações de programadores ou agências - por exemplo, ao implementar ambientes de clientes isolados ou projectos de infra-estruturas complexos.
Para saber mais sobre os aspectos técnicos básicos, consulte Explicação da função e do papel dos servidores de nomes.
Também pode utilizar os seus próprios servidores de nomes para configurar funções mais sofisticadas, como o DNSSEC, para assinar criptograficamente as suas entradas de DNS. Isto torna mais difícil adulterar a resolução dos seus domínios e aumenta a segurança de todo o seu sítio Web. Para projectos com elevados requisitos de segurança ou em que a proteção da marca - por exemplo, por bancos ou grandes sítios de comércio eletrónico - desempenha um papel importante, a integração do DNSSEC nos seus próprios servidores de nomes é frequentemente um fator decisivo.
Também vale a pena ter uma configuração separada se quiser realizar constelações especiais, como uma rede internaque está ligado a locais externos através de VPN. Estes cenários requerem frequentemente configurações complexas de reescrita ou divisão de DNS, para as quais a maioria das soluções padrão dos fornecedores deixa pouca margem de manobra.
Requisitos técnicos para a instalação
Para operar os seus próprios servidores de nomes, necessita de, pelo menos, dois servidores independentes com endereços IP fixos públicos. Idealmente, estes deveriam estar geograficamente distribuídos ou repartidos por centros de dados separados, de modo a obter uma fiabilidade real.
Também é necessário ter acesso root aos servidores para configurar software como o BIND9 ou o PowerDNS - estes programas tratam da gestão da zona DNS de forma centralizada. Muitos utilizadores recorrem a uma combinação de servidor dedicado e instância virtual, por exemplo, através de Proxmox ou KVM para obter o máximo desempenho e flexibilidade ao mesmo tempo.
Em alternativa, pode utilizar tecnologias de contentores como o LXC - especialmente no ambiente DevOps, esta revela-se uma solução simples com um elevado nível de isolamento. Para uma maior segurança, recomendamos a operação dos servidores de nomes em ambientes isolados (por exemplo, DMZ) e a imposição de acesso restrito através de firewalls. Isso deve Porto 53 deve estar aberto tanto para TCP como para UDP, uma vez que o DNS funciona em ambos os protocolos.
É particularmente importante para a segurança da sua infraestrutura de servidores de nomes manter sempre o software atualizado e instalar regularmente actualizações de segurança. Certifique-se também de que apenas os serviços necessários estão a ser executados. Os pacotes e processos desnecessários podem ser potenciais superfícies de ataque.
Software adequado: BIND9, PowerDNS ou NSD?
Recomendo as seguintes ferramentas, consoante a sua prioridade seja o desempenho, a segurança ou a flexibilidade:
| Software | Caraterísticas | Adequado para |
|---|---|---|
| BIND9 | Estabelecido, flexível e alargado | Soluções standard com muitas personalizações |
| PowerDNS | Capacidade de API, baseado em SQL, alto desempenho | Agências e gestão de API |
| NSD + Não ligado | Leve, estável, focado | Configurações mínimas com foco na segurança |
Interfaces de gestão, tais como Webmin ou ISPConfig facilitam o arranque se não tiver uma experiência aprofundada em CLI. Para o BIND9, por exemplo, pode utilizar o Webmin para criar e gerir zonas utilizando uma GUI sem ter de se familiarizar com a interface named.conf- ou ficheiros de zona.
A principal vantagem do PowerDNS é o facto de poder ser integrado em bases de dados relacionais (por exemplo, MySQL ou PostgreSQL). Isto permite que as entradas de DNS sejam altamente automatizadas e pode realizar funções convenientes, como o aprovisionamento automático de subdomínios através de uma interface Web ou API. Se combinar isto com uma estrutura de equilíbrio de carga, o PowerDNS também pode processar volumes muito grandes de pedidos e é, por isso, adequado para projectos de elevado tráfego.
Se, por outro lado, utilizar o NSD em combinação com o Unbound, beneficia de uma variante particularmente segura e leve. Esta solução é particularmente interessante se não pretender utilizar grandes bases de dados e der especial importância à minimização das superfícies de ataque. O NSD assume a função de autoridade (ou seja, responde aos pedidos das suas zonas), enquanto o Unbound pode servir de cache ou resolvedor recursivo para os pedidos da sua rede interna.
Estruturar e manter zonas DNS
Depois de instalar o software, cria zonas DNS para cada domínio que pretende gerir. É aqui que define todas as entradas DNS de forma centralizada. Recomendo que defina um modelo estruturado ou utilize a automatização baseada na API para vários projectos.
Registos típicos que deve gerir:
- A-Record - Atribuição ao endereço IPv4
- Registo AAAA - Destino IPv6
- Registo MX - Definir servidor de correio eletrónico
- Registos TXT, SPF, DKIM - Autenticação
- CNAME ou SRV - Expedição e serviços
Também pode controlar completamente os valores TTL. Este controlo é particularmente útil para endereços IP que mudam frequentemente ou para ambientes de teste. Preste atenção a isso ao criar suas zonas, Números de série assim que fizer alterações nas entradas de DNS. Esta é a única forma de os servidores de nomes secundários (slaves) reconhecerem que as actualizações estão disponíveis durante as transferências de zona.
Em ambientes complexos, também pode ser útil criar zonas separadas por cliente ou por projeto. Isto simplifica a manutenção e evita a substituição acidental de entradas externas. Lembre-se também da DNS inverso (registo PTR): Especialmente para servidores de correio eletrónico e comunicações de confiança, é crucial que o seu IP resolva de volta ao seu domínio.
O registo das suas consultas e alterações de DNS oferece um valor acrescentado adicional. Se o seu servidor DNS estiver a ser executado em BIND9, por exemplo, pode utilizar as entradas de registo e as definições de depuração para controlar quem consultou que entrada e quando, ou quando as zonas foram actualizadas. Isto permite-lhe reagir muito mais rapidamente a problemas como entradas incorrectas ou ataques ao seu servidor DNS.
Armazenamento de registos de cola - o passo decisivo
Se utilizar subdomínios do seu domínio principal para os servidores de nomes, por exemplo, ns1.yourdomain.com, precisa do chamado Registos de cola. Estes ligam o nome do anfitrião do seu servidor de nomes ao endereço IP diretamente no registo - caso contrário, a resolução andaria em círculos.
Exemplo de entrada:
- ns1.yourdomain.com → 192.0.2.1
- ns2.yourdomain.com → 192.0.2.2
Estas entradas são introduzidas diretamente na área de administração do seu fornecedor de serviços de registo de domínios - aí encontrará frequentemente o item "Child hosts" ou "Hostnames". O seu servidor de nomes só funcionará de forma fiável depois de estes dados terem sido introduzidos corretamente e aceites pelo registo.
Na prática, é aconselhável configurar os registos glue antes de transferir efetivamente o domínio. Isto ajudá-lo-á a evitar interrupções ou períodos de inatividade durante os quais o seu domínio não pode ser resolvido temporariamente. Assim que os glue records estiverem implementados, os servidores de nomes poderão sincronizar-se corretamente. Também deve criar um registo escavação- ou nslookup-teste com estas novas entradas NS para garantir que tudo está armazenado corretamente.
Registo junto do agente de registo e ligação do domínio
Agora pode ligar o seu domínio aos novos servidores de nomes. Para tal, inicie sessão no seu fornecedor de serviços de registo e substitua as entradas DNS anteriores na secção "Gerir servidores de nomes".
Introduzir diretamente os novos servidores - por exemplo:
- ns1.yourdomain.com - 192.0.2.1
- ns2.yourdomain.com - 192.0.2.2
A transição demora entre 4 e 48 horas. Um efeito imediato também pode ser acelerado com valores TTL curtos, se necessário.
Vou mostrar-lhe uma forma alternativa de redirecionar o DNS neste Introdução ao reencaminhamento de DNS.
Quando tudo estiver a funcionar, vale a pena verificar a resolução a partir de locais externos. Pode pedir a amigos ou colegas de outros países para testarem o seu domínio ou pode utilizar ferramentas que efectuam consultas a vários servidores DNS em todo o mundo. Desta forma, pode ter a certeza de que os seus servidores de nomes também estão a funcionar corretamente a nível global.
Configurar testes e monitorização
Aconselho-o vivamente a verificar o funcionamento da sua configuração - utilize ferramentas como escavação ou nslookup. Isto permite-lhe testar diariamente se as entradas são resolvidas corretamente e se o servidor de nomes pode ser acedido a partir da Internet.
Também recomendo a criação de uma solução de monitorização - seja através do Nagios, do Icinga ou de soluções em linha como o UptimeRobot. Isto permite-lhe reconhecer as falhas numa fase inicial e reagir proactivamente. Para sistemas de produção críticos, a implementação de alertas por correio eletrónico é particularmente útil.
Após a instalação básica bem sucedida, é também aconselhável automatizar as verificações regulares das zonas. No caso do BIND, é possível, por exemplo named-checkzone e named-checkconf em scripts que são executados automaticamente. Isto irá notificá-lo, por exemplo, se houver um erro de sintaxe num ficheiro de zona. Além disso, não se esqueça de se certificar de que as transferências de zona funcionam corretamente nos slaves. Um erro comum é um número de série desatualizado ou uma firewall que não permite a passagem de transferências AXFR (porta TCP 53).
Em paisagens maiores, também vale a pena utilizar o Consultas e Taxas de consulta para reconhecer picos de carga. Se as métricas mostrarem picos invulgares durante um longo período de tempo, isso pode indicar tentativas de ataque ou simplesmente um aumento acentuado na utilização dos seus serviços.
Evitar erros típicos
Muitos problemas podem ser evitados imediatamente se prestar atenção a alguns pontos desde o início:
- Erro de sintaxe em ficheiros de zona utilizando ferramentas como named-checkzone
- Definir corretamente os registos de colacaso contrário, as consultas DNS serão interrompidas
- Porto 53 manter aberto em TCP e UDP - em grupos de firewall e segurança
- Utilizar pelo menos dois servidores de nomes idênticos com zonas replicadas
A maioria das avarias é causada por pequenos detalhes de configuração que seriam notados através de testes - por isso, planeie tempo suficiente para uma configuração limpa. Tenha especial cuidado para garantir que os novos valores são aplicados em todo o lado quando alterar os parâmetros DNS (por exemplo, encurtamento do TTL). Por vezes, as validações de cache demoram mais tempo do que o esperado, especialmente se a sua configuração for distribuída globalmente.
Além disso, alguns administradores esquecem-se de que a segurança do DNS não é apenas abrangida pelo DNSSEC: A segurança robusta da rede e do servidor é igualmente importante. Os servidores DNS podem ser vulneráveis a ataques DDoS. Por conseguinte, utilize a limitação da taxa e, possivelmente, políticas de resposta do DNS para evitar abusos. O BIND9 ou o PowerDNS, em particular, têm opções que podem limitar ou filtrar as respostas a consultas potencialmente maliciosas.
Alternativa: Gestão de DNS externo em vez do seu próprio servidor de nomes?
Não tem necessariamente de ser você a gerir os servidores de nomes. Alguns hosters oferecem funções DNS alargadas - incluindo gestão de API, configuração SPF/DKIM e GeoDNS, por exemplo. Isto é muitas vezes suficiente para projectos web simples ou lojas online.
No entanto, assim que gerir vários domínios, necessitar de diretrizes de segurança individuais ou subdomínios dinâmicos, uma infraestrutura separada é uma vantagem. Nestes casos servidores de nomes próprios através da flexibilidade e do controlo.
Se não tem a certeza dos princípios básicos, isto ajudá-lo-á Introdução ao DNS com explicações.
A gestão de DNS externo permite-lhe poupar muito trabalho, mas está dependente da segurança, das actualizações e da fiabilidade do fornecedor. Mesmo os casos de utilização especiais, como a implementação automática de grandes quantidades de domínios, nem sempre podem ser perfeitamente integrados no fluxo de trabalho se um fornecedor prescrever determinados ajustes ou limites. Para as agências ou empresas que necessitam de um contacto direto com o cliente e de alterações rápidas de configuração, as soluções externas são, portanto, muitas vezes apenas parcialmente satisfatórias.
Resumo e perspectivas
Servidores de nomes próprios valem a pena para quem quer mais controlo, desempenho e autonomia sobre a sua infraestrutura web. A configuração é tecnicamente exigente, mas pode ser resolvida com ferramentas de código aberto e ferramentas de administração modernas, como o Webmin. Os aspectos mais importantes são: funcionamento de dois servidores para redundância, registos corretos de cola e monitorização permanente.
Se gere muitos projectos, pretende separar vários ambientes de clientes ou valoriza as suas próprias estratégias de segurança, então a sua própria pilha de servidores de nomes é indispensável. No final, é crucial uma implementação bem pensada, centrada na disponibilidade, acessibilidade e manutenção do sistema. Certifique-se também de que efectua verificações de segurança regulares e actualiza consistentemente o seu software DNS para evitar vulnerabilidades de segurança. Desta forma, terá muito provavelmente uma solução de DNS estável e robusta para todos os seus projectos Web a longo prazo.
Se planear expandir a sua configuração após algum tempo, pode adicionar localizações adicionais e, assim, criar um GeoDNS que distribui os pedidos com base na localização do utilizador. Isto permite tempos de resposta mais curtos e pode distribuir melhor a carga. Desta forma, pode escalar a sua infraestrutura de servidores de nomes até projectos globais e manter sempre o controlo total sobre todas as entradas DNS.


