Projet

Général

Profil

Scribe AD » Historique » Version 18

Emmanuel GARETTE, 10/01/2018 16:08

1 1 Benjamin Bohard
h1. Scribe AD
2 1 Benjamin Bohard
3 18 Emmanuel GARETTE
{{>toc}}
4 18 Emmanuel GARETTE
5 1 Benjamin Bohard
h2. Actions
6 1 Benjamin Bohard
7 2 Benjamin Bohard
h3. Migration du Scribe NT vers Scribe AD
8 1 Benjamin Bohard
9 1 Benjamin Bohard
h4. Procédure classicupgrade
10 3 Benjamin Bohard
11 3 Benjamin Bohard
La procédure classicupgrade nécessite des interventions complémentaires (pouvant être scriptées).
12 3 Benjamin Bohard
13 3 Benjamin Bohard
En partant d’un Scribe fonctionnel instancié avec import de comptes
14 3 Benjamin Bohard
15 3 Benjamin Bohard
h5. stopper et désactiver les services de samba en mode NT (smbd, nmbd, winbind),
16 10 Benjamin Bohard
17 3 Benjamin Bohard
<pre>
18 3 Benjamin Bohard
systemctl stop nmbd
19 3 Benjamin Bohard
systemctl stop smbd
20 3 Benjamin Bohard
systemctl stop winbind
21 3 Benjamin Bohard
systemctl disable nmbd
22 3 Benjamin Bohard
systemctl disable smbd
23 3 Benjamin Bohard
systemctl disable winbind
24 3 Benjamin Bohard
</pre>
25 3 Benjamin Bohard
26 3 Benjamin Bohard
h5. installer les outils nécessaires :
27 10 Benjamin Bohard
28 3 Benjamin Bohard
<pre>
29 11 Benjamin Bohard
apt-get install krb5-user ldb-tools
30 3 Benjamin Bohard
</pre>
31 3 Benjamin Bohard
32 3 Benjamin Bohard
h5. patcher nsswitch.conf.default, ldap.conf
33 3 Benjamin Bohard
34 3 Benjamin Bohard
<pre>
35 3 Benjamin Bohard
--- distrib/nsswitch.conf.default	2017-05-15 11:18:44.000000000 +0200
36 3 Benjamin Bohard
+++ modif/nsswitch.conf.default	2018-01-09 15:12:53.260292570 +0100
37 3 Benjamin Bohard
@@ -7,8 +7,8 @@
38 3 Benjamin Bohard
 ########################################################
39 3 Benjamin Bohard
 # /etc/nsswitch.conf
40 3 Benjamin Bohard
 
41 3 Benjamin Bohard
-%set %%active_winbind = %%getVar('activer_winbind', 'non') == 'oui'
42 3 Benjamin Bohard
-%set %%active_ldap =  %%getVar('ldap_nss', 'non') == 'oui'
43 3 Benjamin Bohard
+%set %%active_winbind = True
44 3 Benjamin Bohard
+%set %%active_ldap =  False
45 3 Benjamin Bohard
 
46 3 Benjamin Bohard
 passwd:         compat %slurp
47 3 Benjamin Bohard
 %if %%active_ldap
48 3 Benjamin Bohard
</pre>
49 3 Benjamin Bohard
50 12 Benjamin Bohard
<pre>
51 12 Benjamin Bohard
--- distrib/ldap.conf	2017-04-05 12:25:55.000000000 +0200
52 12 Benjamin Bohard
+++ modif/ldap.conf	2018-01-10 14:39:19.008000000 +0100
53 12 Benjamin Bohard
@@ -13,7 +13,7 @@
54 12 Benjamin Bohard
 
55 12 Benjamin Bohard
 %if %%active_ldap == 'oui'
56 12 Benjamin Bohard
 host %%adresse_ip_ldap
57 12 Benjamin Bohard
-base %%ldap_base_dn
58 12 Benjamin Bohard
+base DC=etb1,DC=lan
59 12 Benjamin Bohard
 port %%ldap_port
60 12 Benjamin Bohard
 timelimit 10
61 12 Benjamin Bohard
 bind_time_limit 10
62 12 Benjamin Bohard
@@ -23,8 +23,8 @@
63 12 Benjamin Bohard
 pam_login_attribute uid
64 12 Benjamin Bohard
 pam_password md5
65 12 Benjamin Bohard
 nss_map_attribute gecos displayName
66 12 Benjamin Bohard
-nss_base_passwd %%ldap_base_dn?sub
67 12 Benjamin Bohard
-nss_base_group %%ldap_base_dn?sub
68 12 Benjamin Bohard
+nss_base_passwd DC=etb1,DC=lan?sub
69 12 Benjamin Bohard
+nss_base_group DC=etb1,DC=lan?sub
70 12 Benjamin Bohard
 #fixe #1809
71 12 Benjamin Bohard
 nss_initgroups_ignoreusers root
72 12 Benjamin Bohard
  %if %%ldap_tls == 'oui'
73 12 Benjamin Bohard
</pre>
74 12 Benjamin Bohard
75 3 Benjamin Bohard
h5. déplacer la configuration samba actuelle dans un répertoire de travail
76 3 Benjamin Bohard
77 3 Benjamin Bohard
<pre>
78 3 Benjamin Bohard
mv /etc/samba/ /etc/samba.PDC/
79 3 Benjamin Bohard
</pre>
80 3 Benjamin Bohard
81 3 Benjamin Bohard
h5. renommer le fichier de configuration smb.conf de ce répertoire de travail,
82 3 Benjamin Bohard
83 3 Benjamin Bohard
<pre>
84 3 Benjamin Bohard
mv /etc/samba.PDC/smb.conf /etc/samba.PDC/smb.PDC.conf
85 3 Benjamin Bohard
</pre>
86 3 Benjamin Bohard
87 3 Benjamin Bohard
h5. copier les bases de données de samba dans un sous-répertoire du répertoire de travail
88 3 Benjamin Bohard
89 3 Benjamin Bohard
<pre>
90 14 Benjamin Bohard
mkdir /etc/samba.PDC/dbdir/
91 13 Benjamin Bohard
cp -p /var/lib/samba/private/secrets.tdb /etc/samba.PDC/dbdir/
92 13 Benjamin Bohard
cp -p /var/lib/samba/private/schannel_store.tdb /etc/samba.PDC/dbdir/
93 13 Benjamin Bohard
cp -p /var/lib/samba/private/passdb.tdb /etc/samba.PDC/dbdir/
94 15 Benjamin Bohard
#cp -p /var/lib/samba/var/lock/gencache_notrans.tdb /etc/samba.PDC/dbdir/
95 15 Benjamin Bohard
cp -p /var/lib/samba/group_mapping.tdb /etc/samba.PDC/dbdir/
96 15 Benjamin Bohard
cp -p /var/lib/samba/account_policy.tdb /etc/samba.PDC/dbdir/
97 1 Benjamin Bohard
</pre>
98 3 Benjamin Bohard
99 8 Benjamin Bohard
h5. lancer la commande samba-tool domain classicupgrade
100 8 Benjamin Bohard
101 1 Benjamin Bohard
<pre>
102 8 Benjamin Bohard
realm=$(CreoleGet nom_domaine_local)
103 8 Benjamin Bohard
samba-tool domain classicupgrade --dbdir=/etc/samba.PDC/dbdir --use-xattrs=yes --realm=${realm^^} --dns-backend=SAMBA_INTERNAL /etc/samba.PDC/smb.PDC.conf
104 8 Benjamin Bohard
</pre>
105 8 Benjamin Bohard
106 8 Benjamin Bohard
h5. créer le patch smb.conf à partir du nouveau fichier créer par samba-tool
107 8 Benjamin Bohard
108 8 Benjamin Bohard
h5. stopper et désactiver le service slapd
109 8 Benjamin Bohard
110 8 Benjamin Bohard
<pre>
111 8 Benjamin Bohard
systemctl stop slapd
112 8 Benjamin Bohard
systemctl disable slapd
113 8 Benjamin Bohard
</pre>
114 8 Benjamin Bohard
115 8 Benjamin Bohard
h5. créer le compte reader
116 8 Benjamin Bohard
117 8 Benjamin Bohard
<pre>
118 8 Benjamin Bohard
cat /root/.reader
119 8 Benjamin Bohard
samba-tool user create reader
120 8 Benjamin Bohard
</pre>
121 8 Benjamin Bohard
122 8 Benjamin Bohard
h5. modifier les variables
123 8 Benjamin Bohard
124 8 Benjamin Bohard
Le base DN est maintenant du type DC=etb1,DC=lan.
125 8 Benjamin Bohard
126 8 Benjamin Bohard
Le compte reader est maintenant du type CN=reader,CN=Users,DC=etb1,DC=lan.
127 8 Benjamin Bohard
128 8 Benjamin Bohard
h5. modifier les scripts de posttemplate 00-annuaire, 02-annuaire et 04-fichier
129 8 Benjamin Bohard
130 8 Benjamin Bohard
exit 0 ajouté en tête des fichiers pour ne pas faire les traitements.
131 8 Benjamin Bohard
132 8 Benjamin Bohard
h5. activer et démarrer le service samba-ad-dc
133 8 Benjamin Bohard
134 8 Benjamin Bohard
<pre>
135 8 Benjamin Bohard
systemctl enable samba-ad-dc
136 8 Benjamin Bohard
systemctl start samba-ad-dc
137 8 Benjamin Bohard
</pre>
138 8 Benjamin Bohard
139 8 Benjamin Bohard
h5. reconfigure
140 8 Benjamin Bohard
141 8 Benjamin Bohard
h5. stopper le service nmbd
142 8 Benjamin Bohard
143 8 Benjamin Bohard
Le service nmbd est démarré automatiquement par creole
144 8 Benjamin Bohard
<pre>
145 8 Benjamin Bohard
systemctl stop nmbd
146 3 Benjamin Bohard
</pre>
147 1 Benjamin Bohard
148 10 Benjamin Bohard
h4. Points à traiter
149 10 Benjamin Bohard
150 10 Benjamin Bohard
h5. service nmbd
151 10 Benjamin Bohard
152 10 Benjamin Bohard
Le service nmbd est géré par creole et sa désactivation manuelle n’est pas suffisante
153 10 Benjamin Bohard
154 10 Benjamin Bohard
h5. variables creole
155 10 Benjamin Bohard
156 10 Benjamin Bohard
Les variables concernant l’annuaire sont verrouillées (même après import du fichier de configuration : valeurs par défaut).
157 10 Benjamin Bohard
158 10 Benjamin Bohard
Il n’est pas possible de modifier, hors des patchs, les valeurs pour le base DN, le protocole (ldaps), etc.
159 10 Benjamin Bohard
160 10 Benjamin Bohard
h5. dns
161 10 Benjamin Bohard
162 10 Benjamin Bohard
Un problème subsiste pour le dns, peut-être lié à un problème kerberos
163 10 Benjamin Bohard
164 10 Benjamin Bohard
<pre>
165 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]: [2018/01/10 11:49:15.837313,  0] ../lib/util/util_runcmd.c:328(samba_runcmd_io_handler)
166 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate: Traceback (most recent call last):
167 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]: [2018/01/10 11:49:15.837535,  0] ../lib/util/util_runcmd.c:328(samba_runcmd_io_handler)
168 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:   File "/usr/sbin/samba_dnsupdate", line 621, in <module>
169 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]: [2018/01/10 11:49:15.837579,  0] ../lib/util/util_runcmd.c:328(samba_runcmd_io_handler)
170 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:     get_credentials(lp)
171 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]: [2018/01/10 11:49:15.837630,  0] ../lib/util/util_runcmd.c:328(samba_runcmd_io_handler)
172 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:   File "/usr/sbin/samba_dnsupdate", line 125, in get_credentials
173 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]: [2018/01/10 11:49:15.837691,  0] ../lib/util/util_runcmd.c:328(samba_runcmd_io_handler)
174 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:     raise e
175 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]: [2018/01/10 11:49:15.837737,  0] ../lib/util/util_runcmd.c:328(samba_runcmd_io_handler)
176 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate: RuntimeError: kinit for SCRIBE$@ETB1.LAN failed (Cannot contact any KDC f
177 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]: [2018/01/10 11:49:15.837778,  0] ../lib/util/util_runcmd.c:328(samba_runcmd_io_handler)
178 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:
179 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]: [2018/01/10 11:49:15.853639,  0] ../source4/dsdb/dns/dns_update.c:294(dnsupdate_nameupdate_done)
180 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   ../source4/dsdb/dns/dns_update.c:294: Failed DNS update - NT_STATUS_ACCESS_DENIED
181 10 Benjamin Bohard
</pre>
182 10 Benjamin Bohard
183 10 Benjamin Bohard
Un essai de modification de la configuration de kerberos (krb5.conf) a été tenté mais les résultats sont incertains.
184 10 Benjamin Bohard
185 16 Benjamin Bohard
Il est peut-être nécessaire de renseigner un DNS forwarder dans la configuration de samba.
186 16 Benjamin Bohard
187 10 Benjamin Bohard
<pre>
188 10 Benjamin Bohard
[libdefaults]
189 10 Benjamin Bohard
    default_realm = ETB1.LAN
190 10 Benjamin Bohard
    dns_lookup_kdc = true
191 10 Benjamin Bohard
    dns_lookup_realm = true
192 10 Benjamin Bohard
</pre>
193 4 Benjamin Bohard
194 9 Philippe Caseiro
h2. Pistes de travail pour la migration de l'annuaire
195 9 Philippe Caseiro
196 9 Philippe Caseiro
Proposition de méthode pour arriver a un Scribe AD en utilisant malgré-tout une
197 9 Philippe Caseiro
partie du travail déjà fait par l'équipe samba dans sa procédure
198 9 Philippe Caseiro
classicupgrade.
199 9 Philippe Caseiro
200 9 Philippe Caseiro
La procédure proprement dite n'est pas suffisante pour nous et l'utilisation
201 9 Philippe Caseiro
brute de l'outil samba non plus, cet outil réalise le provisionning AD et les
202 9 Philippe Caseiro
initialisations des fichiers db, hors pour bien faire nous avons besoin que samba ai
203 9 Philippe Caseiro
connaissance des schemas complémentaires du scribe (radius, eole, ent ...).
204 9 Philippe Caseiro
avant la migration des comptes. Pour lui ajouter les dit schémas il faut que
205 9 Philippe Caseiro
les fichiers db soient initialisées, donc l'utilisation de l'outil est
206 9 Philippe Caseiro
impossible. Par chance il utilise la lib python samaba, ce qui nous ouvre des
207 9 Philippe Caseiro
possibilités. Sans oublié que l'outil samba crée la configuration pour samba
208 9 Philippe Caseiro
a partir de l'ancienne et cette fonctionnalités ne nous ai pas vraiment utile.
209 9 Philippe Caseiro
210 9 Philippe Caseiro
Donc l'idée est de recréer une procédure de migration complête pour nos
211 9 Philippe Caseiro
besoins.
212 9 Philippe Caseiro
213 9 Philippe Caseiro
Il faut donc refaire le provisionning de l'AD ce qui est fait dans Seth donc
214 9 Philippe Caseiro
nous pouvons utiliser cette base de travail
215 9 Philippe Caseiro
216 9 Philippe Caseiro
Migrer les shemas complémentaires actuels au format lisible par samba4.
217 9 Philippe Caseiro
218 9 Philippe Caseiro
Créer un script de migration des comptes qui ajoute les schemas, utilise la
219 9 Philippe Caseiro
lib python samba4 pour migrer les comptes et ensuite mettre à jour les comptes
220 9 Philippe Caseiro
avec les attributs supplémentaires de l'ancien annuaire.
221 17 Emmanuel GARETTE
222 17 Emmanuel GARETTE
223 17 Emmanuel GARETTE
h3. Remplacement du Client Scribe :
224 17 Emmanuel GARETTE
225 17 Emmanuel GARETTE
* application de policies : https://dev-eole.ac-dijon.fr/issues/22666
226 17 Emmanuel GARETTE
227 17 Emmanuel GARETTE
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.
228 17 Emmanuel GARETTE
229 17 Emmanuel GARETTE
Si on veut générer les règles depuis Gaspacho il va falloir : 
230 17 Emmanuel GARETTE
231 17 Emmanuel GARETTE
# connaitre le format de chaque règle ;
232 17 Emmanuel GARETTE
# créer des parsers pour chaque format ;
233 17 Emmanuel GARETTE
# écrire les fichiers ".gasp" pour que les règles soient prise en compte dans Gaspacho ;
234 17 Emmanuel GARETTE
# créer les GPO suivant les groupes gaspacho + associer les différents critères de sélection (utilisateur/machine) ;
235 17 Emmanuel GARETTE
# lancer les différents parsers quand on applique les règles Gaspacho ;
236 17 Emmanuel GARETTE
237 17 Emmanuel GARETTE
238 17 Emmanuel GARETTE
* exécuter des scripts au démarrage de la machine/connexion des utilisateurs : https://dev-eole.ac-dijon.fr/issues/22665
239 17 Emmanuel GARETTE
240 17 Emmanuel GARETTE
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).
241 17 Emmanuel GARETTE
242 17 Emmanuel GARETTE
Il faut un mécanisme pour générer les scripts comme c'était fait sous Scribe.
243 17 Emmanuel GARETTE
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.
244 17 Emmanuel GARETTE
245 17 Emmanuel GARETTE
*