Tâche #31474
Scénario #30987: faire un POC MINTM Amon 2.8.1
Propager le certificat
100%
Demandes liées
Historique
#1 Mis à jour par Benjamin Bohard il y a plus de 3 ans
- Statut changé de Nouveau à En cours
#2 Mis à jour par Benjamin Bohard il y a plus de 3 ans
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 Mis à jour par Emmanuel GARETTE il y a plus de 3 ans
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 Mis à jour par Emmanuel GARETTE il y a plus de 3 ans
- Statut changé de En cours à Résolu
- Assigné à mis à Benjamin Bohard
#5 Mis à jour par Emmanuel GARETTE il y a plus de 3 ans
- % réalisé changé de 0 à 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 Mis à jour par Fabrice Barconnière il y a plus de 3 ans
- Statut changé de Résolu à Fermé
- Restant à faire (heures) mis à 0.0
#7 Mis à jour par Joël Cuissinat il y a environ 3 ans
- Lié à Scénario #31724: Proposer le déploiement d'un certificat MITM aux clients Windows et Linux via le client EOLE ajouté