Tag: domínio

  • Configuração de servidor DNS com BIND

    A escolha de um servidor de DNS pode trazer algumas vantagens. A Cloudflare, por exemplo, oferece publicamente os endereços de servidores de DNS 1.1.1.2, que filtra domínios com maior potencial de malware, e o 1.1.1.3, que adicionalmente filtra domínios de conteúdo adulto. O Pi-hole é um servidor de DNS instalável em dispositivos Raspberry Pi que bloqueia anúncios na sua rede.

    Ter um servidor de DNS pode resolver alguns problemas ou trazer algumas melhorias, como direcionar pra serviços internos e filtrar o que for desejado de forma flexível. Duas situações específicas tornam isso interessante no meu ambiente:

    • Mesmo quando um computador está na mesma rede que o servidor Nextcloud, o DNS resolve para o IP do proxy reverso, hospedado em uma VPS, de forma que tráfego sai da rede local, passa pela internet e retorna para o servidor na mesma rede local. Isso é lento e ineficiente comparado ao acesso direto via IP privado, o que pode ser chato para a transferência de muitos arquivos como pode ocorrer no meu script de backup com Rclone.
    • Eventualmente em ambientes de testes pode ser necessário fazer o acesso para configuração de uma plataforma interna através do nome de domínio a ser utilizado externamente, e o registro de DNS externo não pode ser alterado ou a aplicação ainda não pode ser exposta à internet.

    Em ambos os casos, um servidor de DNS com registros apontando para o IP privado da máquina na rede local resolveria o problema.

    Berkeley Internet Name Domain, conhecido como BIND é o servidor de DNS mais utilizado na internet, especialmente em ambientes tipo Unix, e tem uma configuração relativamente simples. A instalação em um servidor Debian 13 fica:

    # apt install bind9

    Para verificar que o serviço está em habilitado e em execução:

    $ systemctl status bind9

    Por padrão ele é configurado no modo recursivo, em que ele, quando ele não tem um registro de DNS, ele busca os registros de DNS em outros servidores e devolve a resposta. Você pode verificar isso com o comando do tipo:

    $ nslookup duckduckgo.com 127.0.0.1

    E ele vai retornar o endereço de IP do site. Essa é uma configuração não muito boa de se ter por padrão em um servidor exposto publicamente porque permite que o servidor seja utilizado de forma maliciosa em ataques de DDoS por amplificação de DNS. Configurações adicionais de firewall e limitação de taxa de requisições devem ser feitas.

    Alternativamente, ele pode ser utilizado apenas no modo autoritativo, de forma que ele só resolve os endereços que ele hospeda. Essa configuração pode ser feita no arquivo /etc/bind/named.conf.options, adicionando o seguinte:

    options {
        recursion no;
    };

    Uma boa configuração a se fazer também é adicionar a linha “allow-transfer { none; };” para evitar que qualquer servidor atue como secundário e possa baixar todas as configurações de zonas.

    options {
        recursion no;
        allow-transfer { none; };
    };

    Após reiniciar o serviço, verifique que ele não consegue mais resolver domínios sem zona configurada, com o nslookup obtendo resposta REFUSED ao tentar.

    Para adicionar uma zona autoritativa, basta incluí-la no /etc/bind/named.conf.local.

    zone "exemplo.com" {
            type master;
            file "/etc/bind/exemplo.com";
    };

    E configurá-la no arquivo especificado – neste caso, /etc/bind/exemplo.com.

    ; /etc/bind/exemplo.com
    ; Time to live: tempo máximo em que outros servidores devem manter essa zona em cache
    $TTL 3600
    
    ; @ - representa a própria zona de DNS
    ; IN - classe "Internet" - padrão para TCP/IP
    ; SOA - tipo de registro - Start of Authority
    ; ns0.exemplo.com. - MNAME - nameserver primário
    ; RNAME - administrator email address
    
    @       IN SOA  ns0.exemplo.com. oliveira.d.c.outlook.com. (
                    2026090603 ; serial: determina o número de versão da zona. nameservers secundários usam esse número pra determinar se a zona de dns foi alterada
                    7200       ; refresh: tempo em segundos em que o nameserver secundário deve verificar a zona no primário (este servidor)
                    540        ; retry: intervalo em que o secundário deve tentar caso tenha falha em alcançar o primário
                    604800     ; expire: caso o secundário não consiga alcançar o primério durante esse intervalo, a zona é excluida
                    3600       ; negative caching: TTL do cache de um registro negativo (NXDOMAIN)
                    )
    
    ; nameservers autoritativos
    @       IN NS   ns0.exemplo.com.
    ;@       IN NS   ns1.exemplo.com.
    
    ; sites
    @       IN   A        192.168.11.11
    zabbix  IN   A        192.168.11.10
    torre1  IN   A        192.168.11.9
    torre2  IN   CNAME    torre1.exemplo.com.
    www     IN   CNAME    exemplo.com.
    
    ; endereço dos nameservers
    ns0     IN   A        192.168.11.3
    ;ns1     IN   A        192.168.11.4

    Repare que os nameservers são resolvidos pela própria zona. Isso pode parecer problemático por ser uma dependência circular, mas isso funciona também em servidores de DNS externos, porque esse problema é resolvido pelo chamado “glue record”, um registro que é configurado na infraestrutura do domínio de topo, como .br ou .com, que traz esse mesmo vínculo entre o domínio do nameserver e o IP.

    Uma observação: alguns nomes de domínio na configuraçã da zona terminam com um ponto, outros não. A ausência do ponto indica que o nome é relativo à zona. Então www é www.exemplo.com, zabbix é zabbix.exemplo.com. O ponto ao final indica que aquele nome é completo, como no caso do registro CNAME acima.

    As configurações podem ser validadas da seguinte forma:

    $ named-checkzone exemplo.com /etc/bind/exemplo.com

    O comando deve retornar um “OK”.

    Normalmente, as zonas de DNS contam com 2 servidores de nome, um primário e um secundário. Essa redundância tem como objetivo impedir que o domínio fique indisponível caso haja algum problema ou manutenção em um dos servidores, e isso é um padrão por causa do quão crítico pra infraestrutura da internet esse tipo de serviço é.

    No caso abordado, para uma aplicação de um serviço de DNS interno, isso pode não ser tão crítico, então o servidor secundário foi comentado no arquivo de configuração da zona. No entanto, caso fosse necessário configurar um nameserver secundário, as únicas configurações necessárias são a declaração da zona de DNS no servidor secundário no arquivo /etc/bind/named.conf.local com o servidor primário apontado, e o servidor secundário precisa ser especificado na configuração do servidor primário.

    No servidor secundário:

    zone "exemplo.com" {
        type slave;
        masters { 192.168.11.3; };
        file "/var/cache/bind/exemplo.com";
    };

    No servidor primário a linha allow-transfer deve ser adicionada para permitir que o sevidor secundário tenha acesso à configuração dessa zona específica:

    zone "exemplo.com" {
            type master;
            file "/etc/bind/exemplo.com";
            allow-transfer { 192.168.11.4; };
    };

  • Criação de um domínio com Active Directory no Windows Server

    Active Directory Domain Services é um serviço proprietário desenvolvido pela Microsoft usado para gerenciamento centralizado de um domínio de rede em ambientes corporativos, controlando a autorização e autenticação de usuários e computadores, atribuindo e impondo políticas de segurança e instalando ou atualizando softwares.

    Felizmente eu tinha um snapshot da máquina virtual anterior à criação do meu domínio e pude refazer os passos pra colocar umas imagens, porque eu sou uma negação em PowerShell.

    O sistema usado foi o Windows Server 2025 Standard. Antes de instalar o AD DS e criar o domínio, é necessário configurar o sistema com um endereço de IP fixo. Para isso, vá em

    Control Panel > Network and Internet > Network and Sharing Center > Change adapter settings

    Clique com o botão direito no adaptador de rede e clique em Propriedades. Selecione “Internet Protocol Version 4” e clique em Propriedades.

    Configure um endereço de IP estático fora da faixa do DHCP e use o mesmo IP ou 127.0.0.1 para servidor de DNS – que será configurado mais à frente.

    No Server Manager, vá em “Add roles and features”. No Wizard, selecione “Role-based or feature-based installation” e prossiga.

    Na próxima etapa, selecione o seu servidor e prossiga. Em seguida, você vai ver uma lista do que pode ser instalado. Selecione “Active Directory Domain Services” e “DNS Server”.

    O servidor precisará atuar também como servidor de DNS para que clientes possam encontrar e participar do domínio. Esse papel poderia ser delegado a outro servidor de DNS que você tenha configurado no mesmo domínio.

    Na etapa de confirmação, mantenha desmarcada a opção de reiniciar o servidor após instalação, já que só faremos isso após promover o servidor a controlador do domínio.

    Após a instalação, um sinal de atenção vai aparecer nas notificações do Server Manager, onde vai aparecer a opção de promover o servidor a controlador de domínio.

    Isso vai abrir um novo Wizard. Na primeira etapa, selecione “Add a new forest” e determine o seu domínio. Em um caso ideal, você tem nome de domínio público, como exemplo.com, e pode configurar com um subdomínio do tipo ad.exemplo.com. Alternativamente, você pode usar um como privado. Apenas tenha cuidado com possíveis conflitos com domínios externos, escolha algo como exemplo.interno.

    Sobre o nível funcional da floresta e domínio no próximo passo: isso é sobre compatibilidade de funcionalidades e protocolos. Caso não tenha outros controladores de domínio com versões antigas do Windows Server atuando, prossiga com o padrão (mais recente).

    Determine sua senha para o modo de restauração (DSRM). Isso é como o modo de segurança nas versões do Windows Home ou Pro, mas específica para controladores de domínio. Isso porque a autenticação através do AD é desabilitada no modo de restauração, então essa é a senha que você usa pra logar no Administrator.

    Pule a etapa de delegação de DNS, já que estamos configurando nosso servidor de DNS junto com o domínio.

    O nome de domínio NetBIOS é determinado automaticamente a partir do seu nome de domínio totalmente qualificado (FQDN).

    Após isso, siga com as opções padrões até o fim da instalação, onde seu servidor será reiniciado e promovido a controlador de domínio.

    Para que outros computadores possam encontrar o seu domínio e participar dele, você deve alterar as configurações de DHCP do seu roteador para usar seu Windows Server como servidor de DNS.

    Você pode gerenciar usuários e grupos do domínio com dsa.msc, políticas de grupo com gpmc.msc, e o servidor de DNS com dnsmgmt.msc.

    Sugestão de segurança: Princípio do menor privilégio.
    Por padrão, só administradores podem incluir ou remover computadores do domínio. Pra resolver isso você pode criar um usuário ou grupo e delegar as permissões do contêiner Computers em “Active Directory Users and Computers” (dsa.msc).