A imagem arranca, o serviço inicia e os clientes ligam-se. É o momento de parar e perguntar qual de duas operações muito diferentes acabou de acontecer. Ou a cópia restaura um gateway lógico que já existia, ou acrescenta um segundo gateway à frota. Ambas são legítimas e têm consequências diferentes para a identidade e o acesso. Uma máquina que arranca limpa não prova nenhuma das duas.

Três condições decidem a resposta, e são os três compartimentos de material que uma imagem pode transportar. Ordene-os antes de a imagem ser construída, não depois de ter sido implementada duas vezes.

Primeiro decida qual das duas operações está a executar

Um restauro mantém uma identidade de serviço. A instância antiga desapareceu, o nome e o certificado ficam, e os clientes continuam a confiar no mesmo ponto final. Uma adição cria uma segunda identidade que os clientes, os registos e a revogação têm todos de distinguir.

A distinção não é cosmética. Se dois anfitriões ativos apresentarem o mesmo certificado de gateway, um cliente não os consegue distinguir, e um registo de auditoria também não, e revogar esse certificado remove ambos de uma vez. Pode ser exatamente o que um desenho deliberado de alta disponibilidade pretende, e raramente é o que uma cópia apressada de imagem tem em mente.

Assim, a primeira decisão é uma frase, escrita antes de a imagem sair do anfitrião de construção: esta cópia restaura o gateway A, ou esta cópia torna-se o gateway B. Tudo o que vem depois é contabilidade face a essa frase. Se ninguém a conseguir escrever, a cópia não está pronta para ser construída.

Entradas reutilizáveis, identidade e autoridade, estado de implementação

O compartimento reutilizável é o fácil: pacotes, configuração revista que não contém segredos, modelos de serviço, definições de endurecimento. É aquilo em que uma imagem é realmente boa, e pode ser reproduzido sem limite.

O compartimento de identidade e autoridade é onde as cópias correm mal. A chave privada e o certificado de um gateway identificam esse gateway perante cada cliente. A chave de assinatura da autoridade de certificação é um objeto diferente com um poder diferente: emite identidades. Confiar num emissor não significa que cada novo gateway precise da capacidade de emitir, e enviar a chave de assinatura dentro de uma imagem concede essa capacidade a tudo o que consiga ler a imagem.

O compartimento do estado de implementação é aquele de que as pessoas se esquecem porque parece configuração. Os endereços de escuta, os conjuntos de endereços, as rotas empurradas, as definições do resolvedor e a integração local codificam todos suposições sobre o primeiro anfitrião. Um segundo nó que as copie pode atribuir a partir de um conjunto que outro gateway já possui, ou encaminhar clientes para um recurso que só existe ao lado do original.

O que um novo nó deve receber, e de quem

Um nó gerido de forma independente deve receber as suas próprias credenciais através do processo de inscrição aprovado, com a operação de assinatura a acontecer onde vive a chave de assinatura e não no novo anfitrião. Registe qual identidade pode ser retirada sem perturbar os outros nós; se a resposta for "todas", o desenho tem uma identidade que finge ser duas.

Os valores de rede merecem o mesmo tratamento. Escolha um conjunto, um endereço de escuta e um conjunto de rotas empurradas que não colidam com o gateway existente, e escreva-os nas entradas de aprovisionamento em vez de na imagem. A entrada é revista; a imagem não.

Existe um caso intermédio legítimo. Um desenho de recuperação ou replicação suportado pode manter deliberadamente uma identidade lógica de serviço entre anfitriões, com acesso controlado à cópia antiga e um plano de rotação. É uma decisão com um responsável, não um valor predefinido que acontece porque a imagem era conveniente.

openssl x509 -in /etc/openvpn/server/server.crt -noout -subject -issuer -dates
find /etc/openvpn -name '*.key' -o -name '*.pem' | head -20

O primeiro comando diz qual identidade o nó apresenta realmente e quem a assinou. O segundo é um inventário inicial, não uma prova: o material privado pode viver fora desse diretório, dentro de uma base de dados de aplicação ou numa camada de instantâneo que o sistema de ficheiros em execução já não mostra.

O que uma cópia da imagem transporta silenciosamente

Apagar um ficheiro da revisão mais recente de uma imagem não o remove de revisões anteriores, de caches de camadas ou de instantâneos tirados enquanto existia. Por isso as imagens que transportam credenciais têm de ser tratadas como objetos sensíveis durante toda a sua vida, e não apenas no momento em que são construídas.

Verifique o conteúdo da imagem e as entradas de aprovisionamento como perguntas separadas. A imagem responde a "o que está dentro deste artefacto", enquanto as entradas respondem a "no que se tornará esta instância no primeiro arranque". Uma imagem limpa com um script de arranque que obtém uma chave partilhada responde bem à primeira pergunta e mal à segunda.

Mantenha as imagens de recuperação que contêm segredos de forma legítima restritas às pessoas que delas precisam, e registe onde estão guardadas. A alternativa, uma imagem conveniente porque funciona sem qualquer aprovisionamento, é a mesma imagem que concede a identidade do gateway a quem a encontrar. Apenas uma dessas duas tarefas aparece num registo de construção.

Verificações de admissão antes da produção

Antes de o nó aceitar tráfego, confirme quatro coisas: a identidade que apresenta, os clientes que aceitará, os recursos a que lhe é permitido chegar e o caminho de retorno para os endereços que distribui.

systemctl status openvpn-server@lab --no-pager
ss -lunp 'sport = :1194'
ip -4 route show table all | grep -F '10.90.'

Depois verifique o caso negativo, que é o que apanha acidentes: tem o novo nó acesso de administrador ou de cliente que se destinava ao original? Uma configuração copiada pode transportar uma entrada extra de cliente, uma rota de gestão herdada ou uma diretiva push que fazia sentido no primeiro anfitrião.

Se uma imagem com segredos ativos já ultrapassou o seu limite aprovado, substitua as credenciais e contenha as cópias. Remover o ficheiro da última construção não é o mesmo que retirar a credencial que as cópias antigas ainda detêm, e a lacuna entre esses dois factos é exatamente a janela de que um atacante precisa.

Artigos relacionados