Lista de bloqueio do Nebula: distribua-a, o farol não fará isso
Uma entrada na lista de bloqueio só vale em hosts que a carregaram. Compare distribuir a lista com girar a CA e depois verifique um par rejeitado e outro que funciona.
A aplicação da lista de bloqueio é uma propriedade do host que faz a verificação, não do certificado verificado. Uma máquina que nunca carregou a entrada continua aceitando a identidade, e nada no handshake avisa que dois pares discordam. A correção barata e a correção cara para uma credencial exposta diferem em alcance e em reversibilidade, então escolha com critério. As seções abaixo cobrem o que a entrada faz, onde precisa ser entregue, quando a rotação é a melhor resposta e como provar que uma das duas funcionou.
O que uma entrada da lista de bloqueio realmente faz
A configuração de PKI lista impressões digitais que um host deve rejeitar mesmo que o certificado esteja validamente assinado e não expirado. A aplicação acontece localmente, contra a lista que aquele host carregou quando o serviço iniciou. Nada da entrada viaja dentro do certificado, então um par não pode aprender a decisão a partir da credencial que lhe é mostrada. É por isso que um farol não tem papel aqui: faróis ajudam os pares a se encontrarem e retransmitem tráfego onde um caminho direto falha. Eles são uma camada de descoberta e retransmissão, não um canal de distribuição de configuração.
Atualizar uma máquina muda as decisões daquela máquina e deixa todos os outros pares exatamente como estavam. Um par que confia na autoridade de assinatura e nunca viu a entrada não tem motivo para recusar nada. Testar a revogação observando o farol, portanto, não prova nada, porque o componente que você observa nunca foi solicitado a aplicar a lista.
Identifique o certificado, não o dispositivo
Use a impressão digital da credencial que pretende rejeitar, porque um nome de host, um rótulo de dispositivo ou um endereço atual identifica uma máquina hoje e outra coisa no mês que vem. Nenhuma dessas strings aparece na lista de bloqueio, e nenhuma delas sobrevive a uma reinstalação. Imprima o certificado, leia a impressão digital e confirme que ela pertence à credencial que está sendo retirada, e não à sua substituta. Ler os dois arquivos importa quando uma substituta já foi emitida, já que os certificados antigo e novo podem compartilhar um nome e diferir em todos os outros campos.
Registre qual impressão digital foi bloqueada e quando, para que uma auditoria posterior separe uma mudança concluída de uma pretendida. Anote também o que a entrada não faz: ela não invalida a autoridade de assinatura e não impede que um certificado futuro daquela autoridade seja aceito. Bloquear um certificado de host e substituir uma autoridade comprometida são operações diferentes, com consequências diferentes.
nebula-cert print -path /etc/nebula/host.crt
pki:
blocklist:
- "a1b2c3d4e5f6"
Distribua-a como qualquer outra configuração
Trate a lista como configuração com um mecanismo de entrega, e não como um arquivo que alguém edita quando lembra. Envie a lista inteira em vez de um delta, para que um host que perdeu uma atualização anterior convirja em vez de acumular lacunas. A documentação de PKI do Nebula recomenda exatamente isso, e vale seguir o conselho ao pé da letra em vez de transformá-lo em um processo manual.
Confirme que o serviço em execução recarregou o conteúdo, não apenas que o arquivo em disco mudou. Acompanhe quais máquinas aplicaram a mudança e mantenha a lista pendente visível até que esteja vazia. Um laptop fechado por uma semana é um par que nunca aprendeu a decisão, e ele pode se reconectar de uma rede que ninguém esperava. Registre o método de entrega ao lado da impressão digital, porque a próxima revogação o reutiliza e é na primeira que o processo é depurado.
Lista de bloqueio ou rotação da autoridade
Uma entrada da lista de bloqueio é estreita: uma identidade para de funcionar e todo o resto continua. Girar a autoridade de assinatura é amplo: cada certificado que ela emitiu deixa de ser confiável, e cada host precisa de uma nova credencial e de uma nova âncora de confiança. A primeira é uma revogação direcionada e a segunda é uma migração, então exigem aprovações diferentes e janelas de manutenção diferentes. A tabela coloca as duas lado a lado em alcance, esforço e reversibilidade.
| Question | Blocklist entry | Authority rotation |
|---|---|---|
| What stops working | One identity | Every certificate from that authority |
| Fleet work | Push one file and confirm a reload | New credentials and a new trust anchor everywhere |
| Reversible | Yes, remove the line | No, the old authority stays distrusted |
| Fits | A lost or stolen device | A leaked authority key |
Um laptop perdido pede a lista de bloqueio, porque o raio de alcance é uma identidade e a mudança é reversível se você bloqueou a impressão digital errada. Uma chave de autoridade vazada pede rotação, porque a lista de bloqueio não ajuda com certificados que ainda não foram emitidos. Entre esses extremos, pergunte se a credencial exposta poderia ter assinado outra coisa, já que uma autoridade é mais do que um host.
Escreva a decisão antes de um incidente, porque escolher sob pressão tende a produzir a opção ampla por padrão. Qualquer que seja o caminho, o item de trabalho restante é idêntico: provar que a aplicação aconteceu nos hosts que importam. Registrar a impressão digital e a data naquele momento é o que torna a prova possível depois.
Verifique a rejeição e o restante
Conecte-se a partir da identidade bloqueada e confirme a falha, depois conecte-se de um par autorizado e confirme que ele ainda alcança o que precisa. Uma mudança que quebra todo mundo não é uma revogação bem-sucedida. Faça as duas a partir de sessões novas, porque o estado em cache pode esconder o resultado.
Verifique se uma sessão estabelecida termina após a mudança e anote o comportamento para sua versão e configuração, em vez de supor que editar um arquivo encerra algo. A opção disconnect_invalid cobre clientes cujos certificados estão expirados ou inválidos, então confirme como ela se aplica ao seu caso antes de contar com isso. Se o encerramento imediato é um requisito, teste isso especificamente e registre o que observou. Depois repita o teste após uma reinicialização, porque um host que aplica a lista só até a próxima reinicialização tem um problema de entrega que o primeiro teste ocultou. Um farol saudável informa que a descoberta funciona, não que algum par aplicou uma política.