Project

General

Profile

Tâche #31474

Scénario #30987: faire un POC MINTM Amon 2.8.1

Propager le certificat

Added by Benjamin Bohard over 2 years ago. Updated over 2 years ago.

Status:
Fermé
Priority:
Normal
Assigned To:
Start date:
11/09/2020
Due date:
% Done:

100%

Remaining (hours):
0.0

Related issues

Related to eole-workstation - Scénario #31724: Proposer le déploiement d'un certificat MITM aux clients Windows et Linux via le client EOLE Terminé (Sprint) 04/26/2021 10/15/2021

History

#1 Updated by Benjamin Bohard over 2 years ago

  • Status changed from Nouveau to En cours

#2 Updated by Benjamin Bohard over 2 years ago

La propagation du certificat utilisé par le squid met en jeu la communication entre les clients (postes Windows et GNU/Linux), le serveur Scribe (où réside le master salt auquel les clients sont associés) et le serveur Amon qui héberge le certificat (et potentiellement le créé). On peut distinguer deux solutions qui apportent chacune leurs difficultés

Transfert du certificat de l’Amon au Scribe (et vice et versa)

Actuellement, l’Amon n’est pas intégré à l’infrastructure salt du Scribe, ce qui, dans les deux sens de transfert, impose soit cette intégration, soit de sortir du système salt.

Création du certificat sur l’Amon

La création du certificat sur l’Amon permet de s’assurer de la cohérence du système avec une intégration aux procédures classiques type reconfigure.

On peut surveiller l’emplacement de ce certificat avec incron et déclencher soit un événement salt lorsqu’il est modifié (créé), soit envoyer le fichier via samba (l’Amon est logiquement intégré au domaine) ou ssh (nécessite l’initialisation de ce canal par un partage de clé, comme pour l’utilisation de salt).

Dans le cas d’un événement salt, le Scribe pourra y réagir et copier le certificat depuis l’Amon pour le rendre disponible aux clients.

Création du certificat sur le Scribe

La création du certificat sur le Scribe permet d’avoir ce fichier à disposition mais nécessite également le transfert de la clé privée et de s’assurer que le transfert des fichiers intervienne au bon moment et que les services les prennent bien en compte.

Transfert du certificat du Scribe aux clients

Selon le navigateur et le système d’exploitation, on dispose de différents moyens

Firefox

Firefox peut s’appuyer sur le contenu du fichier policies.json pour charger des certificats.
Les chemins peuvent être de type UNC.
https://github.com/mozilla/policy-templates/blob/master/README.md#certificates--install

{
  "policies": {
    "Certificates": {
      "Install": ["cert1.der", "/home/username/cert2.pem"]
    }
  }
}

Windows

Un module salt permet de manipuler le magasin de certificat utilisé, notamment, par edge.
https://docs.saltstack.com/en/3001/ref/modules/all/salt.modules.win_pki.html

#3 Updated by Emmanuel GARETTE over 2 years ago

L'action salt est bugger, donc il n'est pas possible aujourd'hui de l'utiliser.

root@scribe:~# salt '*' win_pki.import_cert name='salt://signingCA.cer'
PC-477555.dompedago.etb1.lan:
    Passed invalid arguments to win_pki.import_cert: 'NoneType' object is not iterable
[..]

Le problème se trouve a priori sur cette ligne (ca renvoi None plutôt que des valeurs) :

        ret["dnsnames"] = [name["Unicode"] for name in item["DnsNameList"]]

Si je vais directement la ligne powershell généré par l'action salt ca fonctionne :

Import-Certificate -FilePath C:\chain.cer -CertStoreLocation 'Cert:\LocalMachine\AuthRoot'

#4 Updated by Emmanuel GARETTE over 2 years ago

  • Status changed from En cours to Résolu
  • Assigned To set to Benjamin Bohard

#5 Updated by Emmanuel GARETTE over 2 years ago

  • % Done changed from 0 to 100

Pour le poste pcprofs-linux :

Sur l'Amon :

scp /etc/squid/chain.pem root@10.1.2.52:/usr/local/share/ca-certificates/

Sur le client :

update-ca-certificates

Et créer le fichier /usr/lib/firefox/distribution/policies.json avec :

{
"policies": {
"Certificates": {
    "ImportEnterpriseRoots": true,
    "Install": [
               "/usr/local/share/ca-certificates/chain.pem" 
               ]
         }
    }
}

#6 Updated by Fabrice Barconnière over 2 years ago

  • Status changed from Résolu to Fermé
  • Remaining (hours) set to 0.0

#7 Updated by Joël Cuissinat over 2 years ago

  • Related to Scénario #31724: Proposer le déploiement d'un certificat MITM aux clients Windows et Linux via le client EOLE added

Also available in: Atom PDF