multimico / cluster

This repository contains all relevant information for our multimico edge cluster
Creative Commons Zero v1.0 Universal
0 stars 0 forks source link

ssh mit CA absichern #11

Open phish108 opened 3 years ago

phish108 commented 3 years ago

Ziel:

Referenzen:

Später können wir auf HashiCorp Vault umstellen. Das ist etwas flexibler und erlaubt komplexe Zugriffsregeln für verschiedenen Schlüssel und Zertifikatssysteme.

phish108 commented 3 years ago

Mit lxc file pull $HOSTNAME/pfad/zu/einer/datei . kann eine Datei von einem Host geladen werden selbst wenn der Host nicht läuft.

Mit lxc file push $UrsprungsDatei $HOSTNAME/pfad/zur/ziel/datei kann eine Datei auf einen Host geladen werden, selbst wenn der Host nicht läuft.

Die SSH Host Keys werden beim ersten Start des Hostsystems erstellt. Wir brauchen den public Host Key, den eine SSH CA signieren muss.

Die Logik wäre:

  1. Host initialisieren
  2. CA key und Konfiguration via cloud_init in den Host einfügen
  3. Host starten
  4. warten
  5. (optional) Host stoppen
  6. Host Key via lxc file pull extrahieren
  7. Host Key mit der CA signieren
  8. Host Key-Zertifikat mit lxc file push auf dem Host installieren.
  9. Zertifikat als Hostkey ersetzen
  10. Host starten bzw. SSH reload falls Host nicht gestoppt wurde.

Alternativ und etwas einfacher:

  1. Host initialisieren
  2. Hostkeys generieren
  3. Hostkeys mit der CA signieren
  4. CA, Hostkeys und Konfiguration via cloud_init in den Host einfügen
  5. Host starten

Bei der zweiten Logik muss der private Schlüssel ausserhalb des Hosts (wenn auch temporär) gespeichert werden. In diesem Fall liegt der private Schlüssel nur auf dem Hardware Host, der so oder so auf diesen Schlüssel zugreifen kann.

phish108 commented 2 years ago

Letztendlich ist die zweite Option hinreichend, weil der Private Schlüssel immer auf dem Hrdware-Host liegt. Die Routine muss aber auf diesem Host beschränkt bleiben, damit der private Schlüssel nicht durch dritte Parteien angefangen werden kann.