Tâche #31474
Scénario #30987: faire un POC MINTM Amon 2.8.1
Propager le certificat
100%
Related issues
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