Geef je iemand een Nebula-map, dan kopieert hij meestal alles, inclusief het bestand dat je werkstation nooit mag verlaten. De verwarring is begrijpelijk, want de drie bestanden in het PKI-blok van een host lijken op elkaar en twee ervan zijn certificaten. Elk beantwoordt een andere vraag, en slechts twee horen op de node. Sorteer ze op rol voordat je iets kopieert.

Drie bestanden, drie verschillende taken

Het CA-certificaat is een vertrouwensanker: het vertelt een host welke autoriteiten te vertrouwen wanneer een andere host zijn identiteit presenteert. Het hostcertificaat is de eigen referentie van de node, ondertekend door die autoriteit. De hostsleutel is de bijbehorende privéhelft, en die hoort bij precies één machine. Een node met het CA-certificaat en zijn eigen paar kan tot de overlay toetreden en bewijzen wie hij is. Een node met de sleutel van iemand anders kan zich ook als die persoon voordoen, en dat is de fout die deze opzet moet voorkomen.

Een werkende hostmap naar een tweede machine kopiëren is dus geen snelweg. Het is een dubbele identiteit met een voorspelbare uitkomst.

De ondertekeningssleutel reist nooit

De CA-ondertekeningssleutel maakt deel uit van geen enkele hostconfiguratie. Hij smeedt nieuwe identiteiten, en wie hem heeft kan een certificaat maken voor elk overlay-adres en elke groep. Peers hebben alleen het publieke CA-certificaat nodig om handtekeningen te verifiëren, dus de privéhelft heeft op een client helemaal geen rol. Bewaar hem op de machine waar certificaten worden uitgegeven, en behandel een per ongeluk gemaakte kopie als een incident, niet als gemak.

Als meerdere mensen certificaten moeten uitgeven, geef ze een proces in plaats van een kopie van de sleutel. Een gedeelde ondertekeningssleutel op een laptop is een autoriteit die niemand kan controleren of intrekken.

Wat er in een hostcertificaat zit

Een hostcertificaat bindt meer dan een bestandsnaam aan een sleutel. Het draagt het overlay-adres van de node, de naam en het groepslidmaatschap, alles ondertekend zodat een peer kan beslissen of hij het accepteert. Daarom betekent het hernoemen van een host dat er een nieuw certificaat wordt uitgegeven, niet dat een configuratieregel wordt aangepast.

nebula-cert print -path host.crt laat zien wat er daadwerkelijk is uitgegeven. Lees het voordat je aanneemt dat het certificaat het adres draagt dat je bedoelde.

Herladen is niet altijd genoeg

Sommige PKI-instellingen worden herladen op een signaal, andere niet. Een certificaat waarvan het overlay-adres is gewijzigd is het klassieke geval dat een herstart van het proces vereist in plaats van een herlaad.

Controleer welke paden het lopende proces werkelijk heeft geopend, niet alleen welke paden het configuratiebestand noemt. Wijzig dan één referentie, verifieer de verbinding en de logboeken, en pas daarna de volgende. Een herlaad die succesvol lijkt terwijl het oude certificaat in het geheugen blijft, levert een mismatch op die op een routeringsprobleem lijkt. Herstarten is goedkoop; een identiteit debuggen die de helft van de overlay nog op de oude manier ziet, is dat niet.

Een identiteit verwijderen vereist een blokkeerlijst

Het vervangen van een verloren of blootgestelde referentie heeft twee helften. Het nieuwe certificaat herstelt de toegang, en de oude identiteit moet niet meer worden geaccepteerd. Dat zijn aparte handelingen, en alleen de eerste doen laat de gecompromitteerde referentie geldig.

De blokkeerlijst is een bestand dat je naar hosts verspreidt, niet iets wat een lighthouse zelf verstuurt. Plan hoe hij elke node bereikt, ook de nodes die vandaag offline zijn, en leg vast welke vingerafdrukken je hebt geblokkeerd. Roteer de sleutel op de uitgevende machine en bewaar de gegevens van het nieuwe certificaat bij het hostrecord. Een intrekking die alleen bestaat op de machine die je hebt bewerkt, is geen intrekking.

Gerelateerde artikelen