Projet

Général

Profil

Scribe AD » Historique » Version 35

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

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