Projet

Général

Profil

Scribe AD » Historique » Version 36

Gérald Schwartzmann, 15/01/2018 10:40

1 35 Gérald Schwartzmann
h1. Travaux des options 1 à 5
2 35 Gérald Schwartzmann
3 1 Benjamin Bohard
{{>toc}}
4 34 Gérald Schwartzmann
5 34 Gérald Schwartzmann
h1. Scribe membre de l'AD Seth (eole-ad)
6 34 Gérald Schwartzmann
7 34 Gérald Schwartzmann
h2. Actions
8 34 Gérald Schwartzmann
9 34 Gérald Schwartzmann
h3. Utilisation d'un Scribe 2.6.2
10 34 Gérald Schwartzmann
11 36 Gérald Schwartzmann
* Utilisation de l'infra etb1 avec des postes joints au domaine NT de Scribe
12 1 Benjamin Bohard
* Configuration du serveur Amon
13 36 Gérald Schwartzmann
* Installation d'Eole-AD sur le serveur Scribe en production
14 36 Gérald Schwartzmann
* Modification du mot de passe admin dans l'EAD 2 de Scribe
15 36 Gérald Schwartzmann
* Retrait des postes du domaine NT
16 36 Gérald Schwartzmann
* Jonction de poste Windows au domaine AD de Seth
17 1 Benjamin Bohard
18 36 Gérald Schwartzmann
h3. Problèmes rencontrés
19 36 Gérald Schwartzmann
20 36 Gérald Schwartzmann
* Configuration du serveur Amon pour la prise en charge d'un sous-domaine DNS
21 36 Gérald Schwartzmann
* Incompatibilité de LSC avec Java 8 et 9
22 36 Gérald Schwartzmann
* La variable ad_server n'était pas initialisée pour la jonction au domaine, jonction au domaine de l'AD impossible #22704
23 36 Gérald Schwartzmann
* Problème de résolution des zones forward sur Amon #22707
24 36 Gérald Schwartzmann
* Modification des mots au redémarrage
25 36 Gérald Schwartzmann
26 34 Gérald Schwartzmann
h2. Pistes de travail
27 34 Gérald Schwartzmann
28 34 Gérald Schwartzmann
* Changement à faire sur le module Amon
29 34 Gérald Schwartzmann
** Développement sur la partie DNS pour la prise en charge de sous-zones
30 34 Gérald Schwartzmann
31 34 Gérald Schwartzmann
* Changement à faire sur le module Scribe
32 1 Benjamin Bohard
** Faire fonctionner LSC avec Java 9 ou backporter le paquet Java 7 et modifier la dépendance du paquet eole-ad
33 1 Benjamin Bohard
** Réaliser un classic upgrade après avoir instancié le module Seth mais avant d'installer eole-ad. La jonction au domaine du module Scribe est à faire en dernier.
34 36 Gérald Schwartzmann
35 36 Gérald Schwartzmann
* Postes Windows
36 36 Gérald Schwartzmann
** 
37 34 Gérald Schwartzmann
38 34 Gérald Schwartzmann
h1. Scribe AD
39 18 Emmanuel GARETTE
40 1 Benjamin Bohard
h2. Actions
41 1 Benjamin Bohard
42 2 Benjamin Bohard
h3. Migration du Scribe NT vers Scribe AD
43 1 Benjamin Bohard
44 1 Benjamin Bohard
h4. Procédure classicupgrade
45 3 Benjamin Bohard
46 3 Benjamin Bohard
La procédure classicupgrade nécessite des interventions complémentaires (pouvant être scriptées).
47 3 Benjamin Bohard
48 20 Benjamin Bohard
En partant d’un Scribe fonctionnel instancié avec import de comptes et un poste joint au domaine.
49 3 Benjamin Bohard
50 3 Benjamin Bohard
h5. stopper et désactiver les services de samba en mode NT (smbd, nmbd, winbind),
51 10 Benjamin Bohard
52 3 Benjamin Bohard
<pre>
53 3 Benjamin Bohard
systemctl stop nmbd
54 3 Benjamin Bohard
systemctl stop smbd
55 3 Benjamin Bohard
systemctl stop winbind
56 3 Benjamin Bohard
systemctl disable nmbd
57 3 Benjamin Bohard
systemctl disable smbd
58 3 Benjamin Bohard
systemctl disable winbind
59 3 Benjamin Bohard
</pre>
60 3 Benjamin Bohard
61 24 Philippe Caseiro
h5. mettre à jour la version de samba (Optionnel pour des raison de tests)
62 1 Benjamin Bohard
63 24 Philippe Caseiro
A faire uniquement si vous voulez tester avec la version samba 4.7
64 24 Philippe Caseiro
65 23 Benjamin Bohard
<pre>
66 23 Benjamin Bohard
cat >>/etc/apt/source.list.d/samba.list<<EOF
67 23 Benjamin Bohard
deb [ arch=amd64 ] http://test-eole.ac-dijon.fr/samba samba-4.7
68 23 Benjamin Bohard
EOF
69 23 Benjamin Bohard
</pre>
70 23 Benjamin Bohard
71 23 Benjamin Bohard
<pre>
72 23 Benjamin Bohard
Maj-Auto
73 23 Benjamin Bohard
CreoleCat -t smb.conf
74 23 Benjamin Bohard
</pre>
75 23 Benjamin Bohard
76 3 Benjamin Bohard
h5. installer les outils nécessaires :
77 10 Benjamin Bohard
78 3 Benjamin Bohard
<pre>
79 11 Benjamin Bohard
apt-get install krb5-user ldb-tools
80 3 Benjamin Bohard
</pre>
81 3 Benjamin Bohard
82 3 Benjamin Bohard
h5. patcher nsswitch.conf.default, ldap.conf
83 3 Benjamin Bohard
84 3 Benjamin Bohard
<pre>
85 3 Benjamin Bohard
--- distrib/nsswitch.conf.default	2017-05-15 11:18:44.000000000 +0200
86 3 Benjamin Bohard
+++ modif/nsswitch.conf.default	2018-01-09 15:12:53.260292570 +0100
87 3 Benjamin Bohard
@@ -7,8 +7,8 @@
88 3 Benjamin Bohard
 ########################################################
89 3 Benjamin Bohard
 # /etc/nsswitch.conf
90 3 Benjamin Bohard
 
91 3 Benjamin Bohard
-%set %%active_winbind = %%getVar('activer_winbind', 'non') == 'oui'
92 3 Benjamin Bohard
-%set %%active_ldap =  %%getVar('ldap_nss', 'non') == 'oui'
93 3 Benjamin Bohard
+%set %%active_winbind = True
94 3 Benjamin Bohard
+%set %%active_ldap =  False
95 3 Benjamin Bohard
 
96 3 Benjamin Bohard
 passwd:         compat %slurp
97 3 Benjamin Bohard
 %if %%active_ldap
98 3 Benjamin Bohard
</pre>
99 3 Benjamin Bohard
100 12 Benjamin Bohard
<pre>
101 12 Benjamin Bohard
--- distrib/ldap.conf	2017-04-05 12:25:55.000000000 +0200
102 12 Benjamin Bohard
+++ modif/ldap.conf	2018-01-10 14:39:19.008000000 +0100
103 12 Benjamin Bohard
@@ -13,7 +13,7 @@
104 12 Benjamin Bohard
 
105 12 Benjamin Bohard
 %if %%active_ldap == 'oui'
106 12 Benjamin Bohard
 host %%adresse_ip_ldap
107 12 Benjamin Bohard
-base %%ldap_base_dn
108 12 Benjamin Bohard
+base DC=etb1,DC=lan
109 12 Benjamin Bohard
 port %%ldap_port
110 12 Benjamin Bohard
 timelimit 10
111 12 Benjamin Bohard
 bind_time_limit 10
112 12 Benjamin Bohard
@@ -23,8 +23,8 @@
113 12 Benjamin Bohard
 pam_login_attribute uid
114 12 Benjamin Bohard
 pam_password md5
115 12 Benjamin Bohard
 nss_map_attribute gecos displayName
116 12 Benjamin Bohard
-nss_base_passwd %%ldap_base_dn?sub
117 12 Benjamin Bohard
-nss_base_group %%ldap_base_dn?sub
118 12 Benjamin Bohard
+nss_base_passwd DC=etb1,DC=lan?sub
119 12 Benjamin Bohard
+nss_base_group DC=etb1,DC=lan?sub
120 12 Benjamin Bohard
 #fixe #1809
121 12 Benjamin Bohard
 nss_initgroups_ignoreusers root
122 12 Benjamin Bohard
  %if %%ldap_tls == 'oui'
123 12 Benjamin Bohard
</pre>
124 12 Benjamin Bohard
125 3 Benjamin Bohard
h5. déplacer la configuration samba actuelle dans un répertoire de travail
126 3 Benjamin Bohard
127 3 Benjamin Bohard
<pre>
128 3 Benjamin Bohard
mv /etc/samba/ /etc/samba.PDC/
129 3 Benjamin Bohard
</pre>
130 3 Benjamin Bohard
131 3 Benjamin Bohard
h5. renommer le fichier de configuration smb.conf de ce répertoire de travail,
132 3 Benjamin Bohard
133 3 Benjamin Bohard
<pre>
134 3 Benjamin Bohard
mv /etc/samba.PDC/smb.conf /etc/samba.PDC/smb.PDC.conf
135 3 Benjamin Bohard
</pre>
136 3 Benjamin Bohard
137 3 Benjamin Bohard
h5. copier les bases de données de samba dans un sous-répertoire du répertoire de travail
138 3 Benjamin Bohard
139 3 Benjamin Bohard
<pre>
140 14 Benjamin Bohard
mkdir /etc/samba.PDC/dbdir/
141 13 Benjamin Bohard
cp -p /var/lib/samba/private/secrets.tdb /etc/samba.PDC/dbdir/
142 13 Benjamin Bohard
cp -p /var/lib/samba/private/schannel_store.tdb /etc/samba.PDC/dbdir/
143 13 Benjamin Bohard
cp -p /var/lib/samba/private/passdb.tdb /etc/samba.PDC/dbdir/
144 15 Benjamin Bohard
#cp -p /var/lib/samba/var/lock/gencache_notrans.tdb /etc/samba.PDC/dbdir/
145 15 Benjamin Bohard
cp -p /var/lib/samba/group_mapping.tdb /etc/samba.PDC/dbdir/
146 15 Benjamin Bohard
cp -p /var/lib/samba/account_policy.tdb /etc/samba.PDC/dbdir/
147 1 Benjamin Bohard
</pre>
148 3 Benjamin Bohard
149 8 Benjamin Bohard
h5. lancer la commande samba-tool domain classicupgrade
150 8 Benjamin Bohard
151 1 Benjamin Bohard
<pre>
152 8 Benjamin Bohard
realm=$(CreoleGet nom_domaine_local)
153 33 Benjamin Bohard
</pre>
154 32 Benjamin Bohard
155 32 Benjamin Bohard
Pour samba 4.3.11 :
156 32 Benjamin Bohard
<pre>
157 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
158 8 Benjamin Bohard
</pre>
159 32 Benjamin Bohard
160 32 Benjamin Bohard
Pour samba 4.7 (on enlève l’option pour xattrs) :
161 32 Benjamin Bohard
<pre>
162 32 Benjamin Bohard
samba-tool domain classicupgrade --dbdir=/etc/samba.PDC/dbdir --realm=${realm^^} --dns-backend=SAMBA_INTERNAL /etc/samba.PDC/smb.PDC.conf
163 32 Benjamin Bohard
</pre>
164 32 Benjamin Bohard
165 8 Benjamin Bohard
166 29 Benjamin Bohard
h5. créer le patch smb.conf à partir du nouveau fichier créer par samba-tool (bien renseigner le forwarder dns)
167 8 Benjamin Bohard
168 21 Benjamin Bohard
<pre>
169 21 Benjamin Bohard
[global]
170 21 Benjamin Bohard
  realm = ETB1.LAN
171 21 Benjamin Bohard
  workgroup = DOMPEDAGO
172 21 Benjamin Bohard
  netbios name = SCRIBE
173 21 Benjamin Bohard
174 21 Benjamin Bohard
  # disable netbios legacy protocol, only port 445 !
175 21 Benjamin Bohard
  disable netbios = yes
176 21 Benjamin Bohard
  smb ports = 445
177 21 Benjamin Bohard
178 21 Benjamin Bohard
179 21 Benjamin Bohard
  vfs objects = acl_xattr
180 21 Benjamin Bohard
  map acl inherit = Yes
181 21 Benjamin Bohard
  store dos attributes = Yes
182 21 Benjamin Bohard
  winbind separator = /
183 21 Benjamin Bohard
184 21 Benjamin Bohard
  server role = active directory domain controller
185 21 Benjamin Bohard
  dns forwarder = 192.168.232.2
186 21 Benjamin Bohard
187 21 Benjamin Bohard
  # active TLS (pour LDAPS et la maj des mot de passe !
188 21 Benjamin Bohard
  tls enabled = yes
189 21 Benjamin Bohard
  tls keyfile = /var/lib/samba/private/tls/key.pem
190 21 Benjamin Bohard
  tls certfile = /var/lib/samba/private/tls/cert.pem
191 21 Benjamin Bohard
  tls cafile = /var/lib/samba/private/tls/ca.pem
192 21 Benjamin Bohard
193 21 Benjamin Bohard
[netlogon]
194 21 Benjamin Bohard
  comment = Network Logon Service
195 21 Benjamin Bohard
  path = /home/sysvol/ac-test.fr/scripts
196 21 Benjamin Bohard
  read only = No
197 21 Benjamin Bohard
  guest ok = yes
198 21 Benjamin Bohard
199 21 Benjamin Bohard
[sysvol]
200 21 Benjamin Bohard
  comment = Sysvol Service
201 21 Benjamin Bohard
  path = /home/sysvol
202 21 Benjamin Bohard
  read only = No
203 21 Benjamin Bohard
  guest ok = yes
204 21 Benjamin Bohard
205 21 Benjamin Bohard
[homes]
206 21 Benjamin Bohard
  path = "/home/a/%u"
207 21 Benjamin Bohard
  comment = Home Directories
208 21 Benjamin Bohard
  read only = no
209 21 Benjamin Bohard
  root preexec = /usr/share/eole/sbin/create_adhome.sh "%u" "/home/a/"
210 21 Benjamin Bohard
  invalid users = nobody guest
211 21 Benjamin Bohard
212 21 Benjamin Bohard
</pre>
213 21 Benjamin Bohard
214 26 Benjamin Bohard
h5. installer le script pour la création du home
215 26 Benjamin Bohard
216 26 Benjamin Bohard
<pre>
217 26 Benjamin Bohard
#!/bin/bash
218 26 Benjamin Bohard
login=${1}
219 26 Benjamin Bohard
homebasedir=${2}
220 26 Benjamin Bohard
userdir="${homebasedir}/${login}"
221 26 Benjamin Bohard
[ -d "${userdir}" ] && exit 0
222 26 Benjamin Bohard
mkdir -p "${userdir}"
223 26 Benjamin Bohard
setfacl -Rbk "${userdir}"
224 26 Benjamin Bohard
chmod 700 "${userdir}"
225 26 Benjamin Bohard
setfacl -m u:${login}:rwx "${userdir}"
226 26 Benjamin Bohard
setfacl -dm u:${login}:rwx "${userdir}"
227 26 Benjamin Bohard
</pre>
228 26 Benjamin Bohard
229 8 Benjamin Bohard
h5. stopper et désactiver le service slapd
230 8 Benjamin Bohard
231 8 Benjamin Bohard
<pre>
232 8 Benjamin Bohard
systemctl stop slapd
233 8 Benjamin Bohard
systemctl disable slapd
234 8 Benjamin Bohard
</pre>
235 8 Benjamin Bohard
236 8 Benjamin Bohard
h5. créer le compte reader
237 8 Benjamin Bohard
238 8 Benjamin Bohard
<pre>
239 8 Benjamin Bohard
cat /root/.reader
240 8 Benjamin Bohard
samba-tool user create reader
241 8 Benjamin Bohard
</pre>
242 8 Benjamin Bohard
243 8 Benjamin Bohard
h5. modifier les variables
244 8 Benjamin Bohard
245 8 Benjamin Bohard
Le base DN est maintenant du type DC=etb1,DC=lan.
246 8 Benjamin Bohard
247 8 Benjamin Bohard
Le compte reader est maintenant du type CN=reader,CN=Users,DC=etb1,DC=lan.
248 8 Benjamin Bohard
249 25 Philippe Caseiro
h5. modifier les scripts de posttemplate 02-annuaire et 04-fichier et 00-annuaire en pretemplate
250 8 Benjamin Bohard
251 8 Benjamin Bohard
exit 0 ajouté en tête des fichiers pour ne pas faire les traitements.
252 8 Benjamin Bohard
253 8 Benjamin Bohard
h5. activer et démarrer le service samba-ad-dc
254 8 Benjamin Bohard
255 8 Benjamin Bohard
<pre>
256 8 Benjamin Bohard
systemctl enable samba-ad-dc
257 8 Benjamin Bohard
systemctl start samba-ad-dc
258 8 Benjamin Bohard
</pre>
259 8 Benjamin Bohard
260 8 Benjamin Bohard
h5. reconfigure
261 8 Benjamin Bohard
262 8 Benjamin Bohard
h5. stopper le service nmbd
263 8 Benjamin Bohard
264 8 Benjamin Bohard
Le service nmbd est démarré automatiquement par creole
265 8 Benjamin Bohard
<pre>
266 8 Benjamin Bohard
systemctl stop nmbd
267 3 Benjamin Bohard
</pre>
268 1 Benjamin Bohard
269 10 Benjamin Bohard
h4. Points à traiter
270 10 Benjamin Bohard
271 10 Benjamin Bohard
h5. service nmbd
272 10 Benjamin Bohard
273 10 Benjamin Bohard
Le service nmbd est géré par creole et sa désactivation manuelle n’est pas suffisante
274 10 Benjamin Bohard
275 10 Benjamin Bohard
h5. variables creole
276 10 Benjamin Bohard
277 10 Benjamin Bohard
Les variables concernant l’annuaire sont verrouillées (même après import du fichier de configuration : valeurs par défaut).
278 10 Benjamin Bohard
279 10 Benjamin Bohard
Il n’est pas possible de modifier, hors des patchs, les valeurs pour le base DN, le protocole (ldaps), etc.
280 10 Benjamin Bohard
281 22 Benjamin Bohard
h5. mise à jour samba
282 22 Benjamin Bohard
283 22 Benjamin Bohard
Conflit avec eole-fichier-common-pkg pour la fourniture du fichier smbd.service
284 22 Benjamin Bohard
285 31 Benjamin Bohard
h5. configuration de samba
286 31 Benjamin Bohard
287 31 Benjamin Bohard
Vérifier que le fichier de configuration est adéquate pour un contrôleur de domaine avec des partages.
288 31 Benjamin Bohard
289 30 Benjamin Bohard
h5. création des homes
290 10 Benjamin Bohard
291 30 Benjamin Bohard
Le client cherche à se connecter sur un partage nommé <REALM>\<user>.
292 10 Benjamin Bohard
293 30 Benjamin Bohard
Les clients doivent pouvoir remonter leur ancien home (<user>).
294 10 Benjamin Bohard
295 9 Philippe Caseiro
h2. Pistes de travail pour la migration de l'annuaire
296 9 Philippe Caseiro
297 9 Philippe Caseiro
Proposition de méthode pour arriver a un Scribe AD en utilisant malgré-tout une
298 9 Philippe Caseiro
partie du travail déjà fait par l'équipe samba dans sa procédure
299 9 Philippe Caseiro
classicupgrade.
300 9 Philippe Caseiro
301 9 Philippe Caseiro
La procédure proprement dite n'est pas suffisante pour nous et l'utilisation
302 9 Philippe Caseiro
brute de l'outil samba non plus, cet outil réalise le provisionning AD et les
303 9 Philippe Caseiro
initialisations des fichiers db, hors pour bien faire nous avons besoin que samba ai
304 9 Philippe Caseiro
connaissance des schemas complémentaires du scribe (radius, eole, ent ...).
305 9 Philippe Caseiro
avant la migration des comptes. Pour lui ajouter les dit schémas il faut que
306 9 Philippe Caseiro
les fichiers db soient initialisées, donc l'utilisation de l'outil est
307 9 Philippe Caseiro
impossible. Par chance il utilise la lib python samaba, ce qui nous ouvre des
308 9 Philippe Caseiro
possibilités. Sans oublié que l'outil samba crée la configuration pour samba
309 9 Philippe Caseiro
a partir de l'ancienne et cette fonctionnalités ne nous ai pas vraiment utile.
310 9 Philippe Caseiro
311 9 Philippe Caseiro
Donc l'idée est de recréer une procédure de migration complête pour nos
312 9 Philippe Caseiro
besoins.
313 9 Philippe Caseiro
314 9 Philippe Caseiro
Il faut donc refaire le provisionning de l'AD ce qui est fait dans Seth donc
315 9 Philippe Caseiro
nous pouvons utiliser cette base de travail
316 9 Philippe Caseiro
317 9 Philippe Caseiro
Migrer les shemas complémentaires actuels au format lisible par samba4.
318 9 Philippe Caseiro
319 9 Philippe Caseiro
Créer un script de migration des comptes qui ajoute les schemas, utilise la
320 9 Philippe Caseiro
lib python samba4 pour migrer les comptes et ensuite mettre à jour les comptes
321 9 Philippe Caseiro
avec les attributs supplémentaires de l'ancien annuaire.
322 17 Emmanuel GARETTE
323 17 Emmanuel GARETTE
324 17 Emmanuel GARETTE
h3. Remplacement du Client Scribe :
325 17 Emmanuel GARETTE
326 17 Emmanuel GARETTE
* application de policies : https://dev-eole.ac-dijon.fr/issues/22666
327 17 Emmanuel GARETTE
328 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.
329 17 Emmanuel GARETTE
330 17 Emmanuel GARETTE
Si on veut générer les règles depuis Gaspacho il va falloir : 
331 17 Emmanuel GARETTE
332 17 Emmanuel GARETTE
# connaitre le format de chaque règle ;
333 17 Emmanuel GARETTE
# créer des parsers pour chaque format ;
334 17 Emmanuel GARETTE
# écrire les fichiers ".gasp" pour que les règles soient prise en compte dans Gaspacho ;
335 17 Emmanuel GARETTE
# créer les GPO suivant les groupes gaspacho + associer les différents critères de sélection (utilisateur/machine) ;
336 17 Emmanuel GARETTE
# lancer les différents parsers quand on applique les règles Gaspacho ;
337 17 Emmanuel GARETTE
338 17 Emmanuel GARETTE
339 17 Emmanuel GARETTE
* exécuter des scripts au démarrage de la machine/connexion des utilisateurs : https://dev-eole.ac-dijon.fr/issues/22665
340 17 Emmanuel GARETTE
341 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).
342 17 Emmanuel GARETTE
343 17 Emmanuel GARETTE
Il faut un mécanisme pour générer les scripts comme c'était fait sous Scribe.
344 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.
345 17 Emmanuel GARETTE
346 19 Emmanuel GARETTE
* mappage des partages : https://dev-eole.ac-dijon.fr/issues/22667
347 19 Emmanuel GARETTE
348 19 Emmanuel GARETTE
C'est un fichier XML par GPO possiblement générable.
349 19 Emmanuel GARETTE
350 19 Emmanuel GARETTE
* pouvoir lancer des commandes à distance : https://dev-eole.ac-dijon.fr/issues/22665
351 19 Emmanuel GARETTE
352 19 Emmanuel GARETTE
Il y a plusieurs pistes possible mais aucune n'ont été testé avec succès.
353 19 Emmanuel GARETTE
354 19 Emmanuel GARETTE
* observation des postes : https://dev-eole.ac-dijon.fr/issues/22664
355 19 Emmanuel GARETTE
356 19 Emmanuel GARETTE
Nécessite l'exécution de commande a distance.