Projet

Général

Profil

Tâche #30893

Scénario #24151: Les certificats de Samba sont des certificats non géré

Étude des options de configuration de TLS pour Samba

Ajouté par Benjamin Bohard il y a plus de 3 ans. Mis à jour il y a plus de 3 ans.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Début:
20/10/2020
Echéance:
% réalisé:

100%

Restant à faire (heures):
0.0

Historique

#2 Mis à jour par Benjamin Bohard il y a plus de 3 ans

Le certificat est utilisé pour les contrôleurs de domaine uniquement, soit sur un Seth en mode contrôleur de domaine, le conteneur addc du Scribe (avec addc local) et le conteneur domaine de l’amonecole.

On peut utiliser les fragments de code placés dans /usr/share/eole/certs avec plus ou moins d’adaptation selon le contexte :
- si on déclare les conteneurs sur Seth, on peut mutualiser le code pour Seth et amonecole.
- il faut traiter le cas du Scribe à part parce que le conteneur n’est pas géré de la même manière et le paquet installé n’est pas le même.

#3 Mis à jour par Benjamin Bohard il y a plus de 3 ans

Points problématiques :
- dans la configuration samba, il faut fournir le chemin d’un fichier contenant les certificats intermédiaires si ils existent, ou une valeur vide ;
- la fonction InstallSSLFiles ne prévoit pas la gestion des certificats intermédiaires ;
- la fonction gen_certif ne prévoit pas la copie des certificats du système.

Le premier point nécessiterait une condition dans le template sur l’existence du fichier contenant les certificats intérmédiaires. Ce fichier ne sera jamais créé dans le cas d’un certificat auto-signé (pas d’intermédiaires). Ce fichier doit être créé avant la templatisation des smb-ad.conf dans le cas d’un certificat avec racine publique.

Scénarios possibles de mise en place des certificats :

Cas du certificat auto-signé

  1. templatisation de smb-ad.conf avec l’option tls cafile vide et les chemins de la clé et du certificat dans /var/lib/samba/private/tls/private et /var/lib/samba/private/tls/certs respectivement,
  2. génération des certificats et clé avant posttemplate,
  3. copie du certificat et de la clé dans les emplacements renseignés dans la configuration de samba à l’aide de la fonction InstallSSLFiles

Cas du certificat à racine publique

  1. copie du certificat sur le serveur,
  2. génération du fichier de certificats intermédaires si nécessaire, à l’aide des fonctions de creole/cert.py, avant la templatisation de smb-ad.conf,
  3. templatisation de smb-ad.conf avec l’option tls cafile adaptée selon la présence ou non du fichier de certificats intermédiaires,
  4. copie du certificat et de la clé dans les emplacements renseignés dans la configuration de samba à l’aide de la fonction InstallSSLFiles.

#4 Mis à jour par Benjamin Bohard il y a plus de 3 ans

  • Statut changé de Nouveau à En cours

#5 Mis à jour par Benjamin Bohard il y a plus de 3 ans

Le certificat du serveur étant utilisé, il faut s’assurer qu’il est valide pour les différents noms de domaine.
Il faut ajouter le nom du contrôleur de domaine lorsque celui-ci est différent du nom de machine.
Il est possible d’utiliser la variable ssl_subjectaltname et de documenter ce nouvel usage.
Sinon, il faut modifier le template certif-eole.tmpl pour introduire le nom du contrôleur de domaine si besoin.

#6 Mis à jour par Benjamin Bohard il y a plus de 3 ans

Dans le cas du conteneur addc, la procédure ne peut pas être celle identifiée auparavant puisque les différents éléments nécessaires (certificats, chaîne de certification) ne sont pas forcément disponibles.

  1. création du conteneur addc en preservice avec les certificats créés par samba (le certificat de la machine n’est pas disponible dans le cas autosigné),
  2. procédure normale de création des certificats (avant run_parts posttemplate),
  3. copie des certificat et clé écrasant ceux créés par samba,
  4. génération du fichier des certificats intermédiaires si besoin,
  5. templatisation à nouveau du fichier de configuration smb.conf pour le conteneur addc pour tenir compte de ce fichier des certificats intermédiaires,
  6. redémarrage du service samba-ad-dc dans le conteneur.

#7 Mis à jour par Benjamin Bohard il y a plus de 3 ans

  • Statut changé de En cours à Résolu

#8 Mis à jour par Emmanuel GARETTE il y a plus de 3 ans

  • Assigné à mis à Benjamin Bohard
  • % réalisé changé de 0 à 100

#9 Mis à jour par Daniel Dehennin il y a plus de 3 ans

  • Statut changé de Résolu à Fermé
  • Restant à faire (heures) mis à 0.0

Formats disponibles : Atom PDF