Projet

Général

Profil

Scribe AD » Historique » Version 43

« Précédent - Version 43/91 (diff) - Suivant » - Version actuelle
Gérald Schwartzmann, 15/01/2018 11:16


Travaux des options 1 à 5

Option 1 : Scribe membre de l'AD Seth (eole-ad)

Option 2 : Scribe AD

Option 3 :

Option 4 :

Option 5 :

Scribe membre de l'AD Seth (eole-ad)

Installer un Seth DC avec un Scribe membre (les comptes sont créés sur l'AD)" + intégration de LSC pour la synchronisation #22659

Actions

Utilisation d'un Scribe 2.6.2

  • Utilisation de l'infra etb1 avec des postes joints au domaine NT de Scribe
  • Configuration du serveur Amon
  • Installation d'Eole-AD sur le serveur Scribe en production
  • Modification du mot de passe admin dans l'EAD 2 de Scribe
  • Retrait des postes du domaine NT
  • Jonction de poste Windows au domaine AD de Seth

Problèmes rencontrés

  • Configuration du serveur Amon pour la prise en charge d'un sous-domaine DNS
  • Incompatibilité de LSC avec Java 8 et 9
  • La variable ad_server n'était pas initialisée pour la jonction au domaine, jonction au domaine de l'AD impossible #22704
  • Problème de résolution des zones forward sur Amon #22707
  • La demande de modification des mots au redémarrage du poste Windows ne fonctionne pas sur AD
  • ClientScribe empêche l'accès aux partages GUEST
  • Les postes n'exécutent plus les scripts ou exécutables présent sur les partages Scribe s'ils n'ont pas l'attribut +x

Pistes de travail

  • Changement à faire sur le module Amon
    • Développement sur la partie DNS pour la prise en charge de sous-zones #22731
  • Changement à faire sur le module Scribe
    • Faire fonctionner LSC avec Java 9 ou backporter le paquet Java 7 et modifier la dépendance du paquet eole-ad #22730
    • Réaliser un classicupgrade après avoir instancié le module Seth mais avant d'installer eole-ad. La jonction au domaine du module Scribe est à faire en dernier.
      • Ceci pour éviter la réinitialisation des MDP, la sortie des machines du domaine NT et la jonction au nouveau domaine.
  • EAD 2
    • Faire fonctionner le changement de mot de passe à l'ouverture de session
  • ClientScribe
    • Permettre l'accès aux partages GUEST (clé de registre ESU à vérifier)

Scribe AD

Actions

Migration du Scribe NT vers Scribe AD

Procédure classicupgrade

La procédure classicupgrade nécessite des interventions complémentaires (pouvant être scriptées).

En partant d’un Scribe fonctionnel instancié avec import de comptes et un poste joint au domaine.

stopper et désactiver les services de samba en mode NT (smbd, nmbd, winbind),
systemctl stop nmbd
systemctl stop smbd
systemctl stop winbind
systemctl disable nmbd
systemctl disable smbd
systemctl disable winbind
mettre à jour la version de samba (Optionnel pour des raison de tests)

A faire uniquement si vous voulez tester avec la version samba 4.7

cat >>/etc/apt/source.list.d/samba.list<<EOF
deb [ arch=amd64 ] http://test-eole.ac-dijon.fr/samba samba-4.7
EOF
Maj-Auto
CreoleCat -t smb.conf
installer les outils nécessaires :
apt-get install krb5-user ldb-tools
patcher nsswitch.conf.default, ldap.conf
--- distrib/nsswitch.conf.default    2017-05-15 11:18:44.000000000 +0200
+++ modif/nsswitch.conf.default    2018-01-09 15:12:53.260292570 +0100
@@ -7,8 +7,8 @@
 ########################################################
 # /etc/nsswitch.conf

-%set %%active_winbind = %%getVar('activer_winbind', 'non') == 'oui'
-%set %%active_ldap =  %%getVar('ldap_nss', 'non') == 'oui'
+%set %%active_winbind = True
+%set %%active_ldap =  False

 passwd:         compat %slurp
 %if %%active_ldap
--- distrib/ldap.conf    2017-04-05 12:25:55.000000000 +0200
+++ modif/ldap.conf    2018-01-10 14:39:19.008000000 +0100
@@ -13,7 +13,7 @@

 %if %%active_ldap == 'oui'
 host %%adresse_ip_ldap
-base %%ldap_base_dn
+base DC=etb1,DC=lan
 port %%ldap_port
 timelimit 10
 bind_time_limit 10
@@ -23,8 +23,8 @@
 pam_login_attribute uid
 pam_password md5
 nss_map_attribute gecos displayName
-nss_base_passwd %%ldap_base_dn?sub
-nss_base_group %%ldap_base_dn?sub
+nss_base_passwd DC=etb1,DC=lan?sub
+nss_base_group DC=etb1,DC=lan?sub
 #fixe #1809
 nss_initgroups_ignoreusers root
  %if %%ldap_tls == 'oui'
déplacer la configuration samba actuelle dans un répertoire de travail
mv /etc/samba/ /etc/samba.PDC/
renommer le fichier de configuration smb.conf de ce répertoire de travail,
mv /etc/samba.PDC/smb.conf /etc/samba.PDC/smb.PDC.conf
copier les bases de données de samba dans un sous-répertoire du répertoire de travail
mkdir /etc/samba.PDC/dbdir/
cp -p /var/lib/samba/private/secrets.tdb /etc/samba.PDC/dbdir/
cp -p /var/lib/samba/private/schannel_store.tdb /etc/samba.PDC/dbdir/
cp -p /var/lib/samba/private/passdb.tdb /etc/samba.PDC/dbdir/
#cp -p /var/lib/samba/var/lock/gencache_notrans.tdb /etc/samba.PDC/dbdir/
cp -p /var/lib/samba/group_mapping.tdb /etc/samba.PDC/dbdir/
cp -p /var/lib/samba/account_policy.tdb /etc/samba.PDC/dbdir/
lancer la commande samba-tool domain classicupgrade
realm=$(CreoleGet nom_domaine_local)

Pour samba 4.3.11 :

samba-tool domain classicupgrade --dbdir=/etc/samba.PDC/dbdir --use-xattrs=yes --realm=${realm^^} --dns-backend=SAMBA_INTERNAL /etc/samba.PDC/smb.PDC.conf

Pour samba 4.7 (on enlève l’option pour xattrs) :

samba-tool domain classicupgrade --dbdir=/etc/samba.PDC/dbdir --realm=${realm^^} --dns-backend=SAMBA_INTERNAL /etc/samba.PDC/smb.PDC.conf

créer le patch smb.conf à partir du nouveau fichier créer par samba-tool (bien renseigner le forwarder dns)
[global]
  realm = ETB1.LAN
  workgroup = DOMPEDAGO
  netbios name = SCRIBE

  # disable netbios legacy protocol, only port 445 !
  disable netbios = yes
  smb ports = 445

  vfs objects = acl_xattr
  map acl inherit = Yes
  store dos attributes = Yes
  winbind separator = /

  server role = active directory domain controller
  dns forwarder = 192.168.232.2

  # active TLS (pour LDAPS et la maj des mot de passe !
  tls enabled = yes
  tls keyfile = /var/lib/samba/private/tls/key.pem
  tls certfile = /var/lib/samba/private/tls/cert.pem
  tls cafile = /var/lib/samba/private/tls/ca.pem

[netlogon]
  comment = Network Logon Service
  path = /home/sysvol/ac-test.fr/scripts
  read only = No
  guest ok = yes

[sysvol]
  comment = Sysvol Service
  path = /home/sysvol
  read only = No
  guest ok = yes

[homes]
  path = "/home/a/%u" 
  comment = Home Directories
  read only = no
  root preexec = /usr/share/eole/sbin/create_adhome.sh "%u" "/home/a/" 
  invalid users = nobody guest

installer le script pour la création du home
#!/bin/bash
login=${1}
homebasedir=${2}
userdir="${homebasedir}/${login}" 
[ -d "${userdir}" ] && exit 0
mkdir -p "${userdir}" 
setfacl -Rbk "${userdir}" 
chmod 700 "${userdir}" 
setfacl -m u:${login}:rwx "${userdir}" 
setfacl -dm u:${login}:rwx "${userdir}" 
stopper et désactiver le service slapd
systemctl stop slapd
systemctl disable slapd
créer le compte reader
cat /root/.reader
samba-tool user create reader
modifier les variables

Le base DN est maintenant du type DC=etb1,DC=lan.

Le compte reader est maintenant du type CN=reader,CN=Users,DC=etb1,DC=lan.

modifier les scripts de posttemplate 02-annuaire et 04-fichier et 00-annuaire en pretemplate

exit 0 ajouté en tête des fichiers pour ne pas faire les traitements.

activer et démarrer le service samba-ad-dc
systemctl enable samba-ad-dc
systemctl start samba-ad-dc
reconfigure
stopper le service nmbd

Le service nmbd est démarré automatiquement par creole

systemctl stop nmbd

Points à traiter

service nmbd

Le service nmbd est géré par creole et sa désactivation manuelle n’est pas suffisante

variables creole

Les variables concernant l’annuaire sont verrouillées (même après import du fichier de configuration : valeurs par défaut).

Il n’est pas possible de modifier, hors des patchs, les valeurs pour le base DN, le protocole (ldaps), etc.

mise à jour samba

Conflit avec eole-fichier-common-pkg pour la fourniture du fichier smbd.service

configuration de samba

Vérifier que le fichier de configuration est adéquate pour un contrôleur de domaine avec des partages.

création des homes

Le client cherche à se connecter sur un partage nommé <REALM>\<user>.

Les clients doivent pouvoir remonter leur ancien home (<user>).

Pistes de travail pour la migration de l'annuaire

Proposition de méthode pour arriver a un Scribe AD en utilisant malgré-tout une
partie du travail déjà fait par l'équipe samba dans sa procédure
classicupgrade.

La procédure proprement dite n'est pas suffisante pour nous et l'utilisation
brute de l'outil samba non plus, cet outil réalise le provisionning AD et les
initialisations des fichiers db, hors pour bien faire nous avons besoin que samba ai
connaissance des schemas complémentaires du scribe (radius, eole, ent ...).
avant la migration des comptes. Pour lui ajouter les dit schémas il faut que
les fichiers db soient initialisées, donc l'utilisation de l'outil est
impossible. Par chance il utilise la lib python samaba, ce qui nous ouvre des
possibilités. Sans oublié que l'outil samba crée la configuration pour samba
a partir de l'ancienne et cette fonctionnalités ne nous ai pas vraiment utile.

Donc l'idée est de recréer une procédure de migration complête pour nos
besoins.

Il faut donc refaire le provisionning de l'AD ce qui est fait dans Seth donc
nous pouvons utiliser cette base de travail

Migrer les shemas complémentaires actuels au format lisible par samba4.

Créer un script de migration des comptes qui ajoute les schemas, utilise la
lib python samba4 pour migrer les comptes et ensuite mettre à jour les comptes
avec les attributs supplémentaires de l'ancien annuaire.

Remplacement du Client Scribe :

Le portage des règles Esu en policies AD va être compliqué et aléatoire. Il existe beaucoup de manières d'implémenter ces règles (fichier INI, fichier XML, Register.pol, ...). Il va falloir tester règle par règle comment c'est généré via RSAT.

Si on veut générer les règles depuis Gaspacho il va falloir :

  1. connaitre le format de chaque règle ;
  2. créer des parsers pour chaque format ;
  3. écrire les fichiers ".gasp" pour que les règles soient prise en compte dans Gaspacho ;
  4. créer les GPO suivant les groupes gaspacho + associer les différents critères de sélection (utilisateur/machine) ;
  5. lancer les différents parsers quand on applique les règles Gaspacho ;

L'exécution de script de démarrage est pris en compte par le système de GPO. Cela peut être des scripts "machines" (au démarrage ou arrêt du serveur) ou "utilisateurs" (à l'ouverture ou fermeture de la session).

Il faut un mécanisme pour générer les scripts comme c'était fait sous Scribe.
De plus nous n'avons pas réussi a lancer un Script diffuser via le partage netlogon. Il va falloir trouver un moyen de les diffuser.

C'est un fichier XML par GPO possiblement générable.

Il y a plusieurs pistes possible mais aucune n'ont été testé avec succès.

Nécessite l'exécution de commande a distance.

tableau_options_seth.png Voir (31 ko) Benjamin Bohard, 18/01/2018 10:10