Se dai a qualcuno una directory Nebula, di solito copia tutto, compreso il file che non dovrebbe mai lasciare la tua postazione. La confusione è comprensibile, perché i tre file nel blocco PKI di un host si somigliano e due sono certificati. Ognuno risponde a una domanda diversa, e solo due appartengono al nodo. Classificali per ruolo prima di copiare qualsiasi cosa.

Tre file, tre compiti diversi

Il certificato CA è un'ancora di fiducia: dice a un host a quali autorità credere quando un altro host presenta la propria identità. Il certificato host è la credenziale del nodo stesso, firmata da quell'autorità. La chiave host è la metà privata corrispondente, e appartiene esattamente a una macchina. Un nodo con il certificato CA e la propria coppia può unirsi all'overlay e dimostrare chi è. Un nodo con la chiave di qualcun altro può anche spacciarsi per quella persona, ed è il guasto che questa disposizione deve impedire.

Copiare una directory host funzionante su una seconda macchina non è quindi una scorciatoia. È un'identità duplicata con un esito prevedibile.

La chiave di firma non viaggia mai

La chiave di firma della CA non fa parte di alcuna configurazione host. Conia nuove identità, e chi la possiede può emettere un certificato per qualsiasi indirizzo overlay e qualsiasi gruppo. I peer hanno bisogno solo del certificato CA pubblico per verificare le firme, quindi la metà privata non ha alcun ruolo su un client. Conservala sulla macchina dove vengono emessi i certificati e tratta una copia accidentale come un incidente, non come una comodità.

Se più persone devono emettere certificati, offri loro un processo invece di una copia della chiave. Una chiave di firma condivisa su un portatile è un'autorità che nessuno può verificare o revocare.

Cosa contiene un certificato host

Un certificato host lega a una chiave molto più di un nome di file. Porta l'indirizzo del nodo nell'overlay, il suo nome e la sua appartenenza a un gruppo, tutto firmato perché un peer possa decidere se accettarlo. Per questo rinominare un host significa emettere un nuovo certificato e non modificare una riga di configurazione.

nebula-cert print -path host.crt mostra ciò che è stato effettivamente emesso. Leggilo prima di dare per scontato che il certificato porti l'indirizzo che intendevi.

Il ricaricamento non basta sempre

Alcune impostazioni PKI si ricaricano con un segnale, altre no. Un certificato il cui indirizzo overlay è cambiato è il caso classico che richiede un riavvio del processo invece di un ricaricamento.

Verifica quali percorsi il processo in esecuzione ha realmente aperto, non solo quali percorsi nomina il file di configurazione. Poi cambia una credenziale, verifica la connettività e i log, e solo dopo passa alla successiva. Un ricaricamento che sembra riuscire mentre il vecchio certificato resta in memoria produce una discrepanza che sembra un problema di instradamento. Riavviare costa poco; fare debug di un'identità che metà dell'overlay vede ancora alla vecchia maniera non costa poco.

Rimuovere un'identità richiede una lista di blocco

Sostituire una credenziale persa o esposta ha due metà. Il nuovo certificato ripristina l'accesso, e la vecchia identità deve smettere di essere accettata. Sono operazioni separate, e fare solo la prima lascia valida la credenziale compromessa.

La lista di blocco è un file che distribuisci agli host, non qualcosa che un lighthouse invia da solo. Pianifica come raggiunge ogni nodo, compresi quelli offline oggi, e annota quali impronte hai bloccato. Ruota la chiave sulla macchina emittente e conserva i dettagli del nuovo certificato insieme al record dell'host. Una revoca che esiste solo sulla macchina che hai modificato non è una revoca.

Articoli correlati