Passo 05 · Delegar
Aponte-o para a máquina. Depois, leia o que você acabou de publicar.
A delegação em si são dois registros e cinco minutos. Configure os servidores de nomes no registrador, crie um registro de endereço para o host, espere a mudança se propagar até o registro, e confirme a partir de fora da sua própria rede, e não a partir da máquina que já conhece a resposta. O que merece os quarenta minutos restantes é tudo o que a delegação torna visível depois.
dig +short NS example.com @1.1.1.1 # the delegation as the world sees it, not your cache
dig +short A app.example.com # must return the VPS address before you deploy anything
dig +short CAA example.com # empty today; step 05 fills it in
dig +short DS example.com # non-empty only if DNSSEC is actually signed
Quanto a quem administra os servidores autoritativos, a resposta honesta não é a que o resto desta série costuma dar. O DNS autoritativo autogerenciado é o único componente em que fazer você mesmo é geralmente pior: ele exige dois ou mais servidores em redes separadas, precisa continuar funcionando durante exatamente a interrupção que tirou sua máquina principal do ar, exige cuidado constante para evitar ser explorado para amplificação, e, quando falha, tudo falha junto — incluindo a renovação de certificado que permitiria corrigir a situação. Também cria uma correlação que você estava tentando evitar, porque um servidor de nomes autogerenciado, compartilhado entre dois projetos, os liga publicamente em conjuntos de dados que qualquer pessoa pode consultar. Use um operador de DNS com uma rede anycast, escolhendo-o com base em exigir ou não um documento de identidade, e não pela lista de recursos, e mantenha um arquivo de zona exportado, para que mudar seja colar, e não uma escavação. Essa é uma tarefa diferente do resolvedor recursivo privado da série, que move o log do que você consulta para a sua própria máquina, e vale a pena fazer.
Agora, o vazamento que desfaz configurações cuidadosas mais do que qualquer outra coisa nesta página, porque opera silenciosamente, e depois que você já parou de prestar atenção. Todo certificado emitido por uma autoridade publicamente confiável é enviado a logs públicos de acréscimo apenas, e os navegadores rejeitam certificados que não constem deles. Os logs existem para que uma emissão indevida seja detectável, o que é genuinamente uma coisa boa, e eles são indexados por interfaces de busca gratuitas. A consequência é que todo hostname para o qual você já solicitou um certificado está a uma busca por palavra-chave de distância, para qualquer pessoa, permanentemente — incluindo staging., vpn., backup. e o nome administrativo que você presumiu que ninguém adivinharia.
# every certificate ever issued under the zone, and every hostname inside each one
curl -s 'https://crt.sh/?q=%25.example.com&output=json' | jq -r '.[].name_value' | sort -u
A mitigação é um único certificado wildcard para a zona, usado para todo hostname interno abaixo dela. A entrada do log passa então a registrar apenas que existe um certificado para a zona, e nada sobre o que vive dentro dela. O custo é que um wildcard exige o desafio baseado em DNS, em vez do mais simples baseado em arquivo, o que significa um token de API para o seu operador de DNS na máquina — dez minutos de configuração, contra uma lista pública permanente do seu esquema interno de nomenclatura. Emita um wildcard, mantenha-o no proxy reverso, e pare de solicitar certificados por hostname.
Dois registros terminam o trabalho. Um registro CAA declara quais autoridades certificadoras têm permissão para emitir certificados para o nome, de modo que uma emissão indevida por qualquer outra autoridade é recusada na origem, em vez de detectada depois. E o DNSSEC, se tanto o seu registro quanto o seu operador de DNS o suportarem, assina a delegação para que um resolvedor consiga distinguir uma resposta falsificada de uma verdadeira — é um interruptor na maioria dos operadores e um registro no registrador, e a única coisa com que se deve ter cuidado é que uma zona assinada cujas chaves são mal administradas falha de forma fechada, ou seja, completamente.
; in the zone — only this authority may issue, and tell us if anyone tries
example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 issuewild "letsencrypt.org"
example.com. IN CAA 0 iodef "mailto:abuse@example.com"
Por fim, a camada de correlação, que é onde dois compartimentos se tornam um só, sem que ninguém cometa nenhum erro. Conjuntos de dados de DNS passivo registram quais nomes resolveram para quais endereços, e quando; um endereço compartilhado, um conjunto de servidores de nomes compartilhado, ou um servidor de e-mail compartilhado já bastam para ligar dois projetos que não têm mais nada em comum. Se dois nomes precisam permanecer sem ligação entre si, eles precisam de servidores separados, conjuntos de servidores de nomes separados e roteamento de e-mail separado — e o mesmo vale para as pequenas coisas que ninguém leva em conta, como um identificador de analytics reutilizado nos dois sites, ou um favicon idêntico, ambos pesquisáveis em escala de internet por qualquer um que se importe em procurar.