Scribe AD » Historique » Version 32
« Précédent -
Version 32/91
(diff) -
Suivant » -
Version actuelle
Benjamin Bohard, 12/01/2018 09:06
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 : <pre> samba-tool domain classicupgrade --dbdir=/etc/samba.PDC/dbdir --use-xattrs=yes --realm=${realm^^} --dns-backend=SAMBA_INTERNAL /etc/samba.PDC/smb.PDC.conf </pre> Pour samba 4.7 (on enlève l’option pour xattrs) : <pre> samba-tool domain classicupgrade --dbdir=/etc/samba.PDC/dbdir --realm=${realm^^} --dns-backend=SAMBA_INTERNAL /etc/samba.PDC/smb.PDC.conf </pre> h5. créer le patch smb.conf à partir du nouveau fichier créer par samba-tool (bien renseigner le forwarder dns) <pre> [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 </pre> h5. installer le script pour la création du home <pre> #!/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}" </pre> h5. stopper et désactiver le service slapd <pre> systemctl stop slapd systemctl disable slapd </pre> h5. créer le compte reader <pre> cat /root/.reader samba-tool user create reader </pre> h5. 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. h5. 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. h5. activer et démarrer le service samba-ad-dc <pre> systemctl enable samba-ad-dc systemctl start samba-ad-dc </pre> h5. reconfigure h5. stopper le service nmbd Le service nmbd est démarré automatiquement par creole <pre> systemctl stop nmbd </pre> h4. Points à traiter h5. service nmbd Le service nmbd est géré par creole et sa désactivation manuelle n’est pas suffisante h5. 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. h5. mise à jour samba Conflit avec eole-fichier-common-pkg pour la fourniture du fichier smbd.service h5. configuration de samba Vérifier que le fichier de configuration est adéquate pour un contrôleur de domaine avec des partages. h5. création des homes Le client cherche à se connecter sur un partage nommé <REALM>\<user>. Les clients doivent pouvoir remonter leur ancien home (<user>). h2. 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. h3. Remplacement du Client Scribe : * application de policies : https://dev-eole.ac-dijon.fr/issues/22666 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 : # connaitre le format de chaque règle ; # créer des parsers pour chaque format ; # écrire les fichiers ".gasp" pour que les règles soient prise en compte dans Gaspacho ; # créer les GPO suivant les groupes gaspacho + associer les différents critères de sélection (utilisateur/machine) ; # lancer les différents parsers quand on applique les règles Gaspacho ; * exécuter des scripts au démarrage de la machine/connexion des utilisateurs : https://dev-eole.ac-dijon.fr/issues/22665 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. * mappage des partages : https://dev-eole.ac-dijon.fr/issues/22667 C'est un fichier XML par GPO possiblement générable. * pouvoir lancer des commandes à distance : https://dev-eole.ac-dijon.fr/issues/22665 Il y a plusieurs pistes possible mais aucune n'ont été testé avec succès. * observation des postes : https://dev-eole.ac-dijon.fr/issues/22664 Nécessite l'exécution de commande a distance.