Projet

Général

Profil

Scribe AD 2srv classic upg » Historique » Version 7

Joël Cuissinat, 12/02/2018 12:19

1 7 Joël Cuissinat
{{>toc}}
2 7 Joël Cuissinat
3 1 Fabrice Barconnière
h1. Scribe membre d'un AD Seth : tests classicupgrade
4 1 Fabrice Barconnière
5 1 Fabrice Barconnière
Deux essais infructueux :
6 1 Fabrice Barconnière
* Classicupgrade effectué sur Scribe puis copie du résultat su Seth
7 1 Fabrice Barconnière
** plus de compte @Administrator@
8 1 Fabrice Barconnière
** problèmes de DNS, @scribe.dompedago.etb1.lan@ apparaît dans les bases Samba4 comme étant le DC
9 1 Fabrice Barconnière
** Le poste ne peuvent pas se connecter au domaine AD
10 1 Fabrice Barconnière
11 1 Fabrice Barconnière
* Classicupgrade effectué sur Seth:
12 1 Fabrice Barconnière
** Les comptes sont bien présents
13 1 Fabrice Barconnière
** On perd le mot de passe du compte @Administrator@. Il faut le réinitialiser
14 1 Fabrice Barconnière
** Il est quand même nécessaire de sortir les postes du domaine NT pour les joindre au domaine AD
15 1 Fabrice Barconnière
16 1 Fabrice Barconnière
Voici les notes des commandes exécutées.
17 1 Fabrice Barconnière
18 1 Fabrice Barconnière
19 1 Fabrice Barconnière
h2. Préparer le Classicupgrade sur Scribe en prod en mode NT
20 1 Fabrice Barconnière
21 1 Fabrice Barconnière
h3. Backup annuaire de Scribe
22 1 Fabrice Barconnière
23 1 Fabrice Barconnière
<pre>
24 1 Fabrice Barconnière
service slapd stop
25 1 Fabrice Barconnière
tar czvf ldap.backup.tgz /etc/ldap* /var/lib/ldap/
26 1 Fabrice Barconnière
# slapcat -f /etc/ldap/slapd.conf -o ldif-wrap=no -l ldap.backup.ldif
27 1 Fabrice Barconnière
service slapd start
28 1 Fabrice Barconnière
</pre>
29 1 Fabrice Barconnière
30 1 Fabrice Barconnière
h3. Backup Samba de Scribe
31 1 Fabrice Barconnière
32 1 Fabrice Barconnière
<pre>
33 1 Fabrice Barconnière
service smbd stop
34 1 Fabrice Barconnière
service nmbd stop
35 1 Fabrice Barconnière
mkdir /etc/samba.NT
36 1 Fabrice Barconnière
mkdir /var/lib/samba.NT
37 1 Fabrice Barconnière
#cp --preserve /etc/hostname{,.NT}
38 1 Fabrice Barconnière
cp -r --preserve /etc/samba/* /etc/samba.NT/
39 1 Fabrice Barconnière
cp -r --preserve /var/lib/samba/* /var/lib/samba.NT/
40 6 Joël Cuissinat
rm -f /etc/samba/smb.conf 
41 1 Fabrice Barconnière
</pre>
42 1 Fabrice Barconnière
43 1 Fabrice Barconnière
h3. Préparer le classicupgrade
44 1 Fabrice Barconnière
45 4 Joël Cuissinat
* Copier les fichiers dans le répertoire spécial : /var/lib/samba.PDC
46 4 Joël Cuissinat
47 1 Fabrice Barconnière
<pre>
48 1 Fabrice Barconnière
mkdir -p /var/lib/samba.PDC/{etc,dbdir}
49 1 Fabrice Barconnière
cp -p /var/lib/samba/private/secrets.tdb /var/lib/samba.PDC/dbdir/
50 1 Fabrice Barconnière
cp -p /var/lib/samba/private/schannel_store.tdb /var/lib/samba.PDC/dbdir/
51 1 Fabrice Barconnière
cp -p /var/lib/samba/private/passdb.tdb /var/lib/samba.PDC/dbdir/
52 1 Fabrice Barconnière
#cp -p /var/lib/samba/var/lock/gencache_notrans.tdb /var/lib/samba.PDC/dbdir/
53 1 Fabrice Barconnière
cp -p /var/lib/samba/group_mapping.tdb /var/lib/samba.PDC/dbdir/
54 1 Fabrice Barconnière
cp -p /var/lib/samba/account_policy.tdb /var/lib/samba.PDC/dbdir/
55 1 Fabrice Barconnière
cp -p /var/lib/samba/wins* /var/lib/samba.PDC/dbdir/
56 5 Joël Cuissinat
cp /etc/samba/smb.conf  /var/lib/samba.PDC/etc/smb.PDC.conf
57 4 Joël Cuissinat
</pre>
58 1 Fabrice Barconnière
59 5 Joël Cuissinat
* Renommage du serveur (en "seth") (selon infrastructure cible)
60 4 Joël Cuissinat
61 4 Joël Cuissinat
Samba 4.7
62 4 Joël Cuissinat
63 4 Joël Cuissinat
<pre>
64 1 Fabrice Barconnière
sed -e "s/\(netbios name = \).*/\1seth/" -e "/logging/,/enable privileges/""s/^/#/" /etc/samba/smb.conf > /var/lib/samba.PDC/etc/smb.PDC.conf
65 4 Joël Cuissinat
sed -i "s/$(CreoleGet nom_machine)/seth/" /etc/hostname
66 4 Joël Cuissinat
</pre>
67 4 Joël Cuissinat
68 4 Joël Cuissinat
Samba 4.3
69 4 Joël Cuissinat
70 4 Joël Cuissinat
<pre>
71 4 Joël Cuissinat
sed -i "s/\(netbios name = \).*/\1seth/" /var/lib/samba.PDC/etc/smb.PDC.conf
72 4 Joël Cuissinat
sed -i "s/$(CreoleGet nom_machine)/seth/" /etc/hostname
73 4 Joël Cuissinat
</pre>
74 4 Joël Cuissinat
75 4 Joël Cuissinat
* Sauvegarde des données (facultatif mais peut servir)
76 4 Joël Cuissinat
77 4 Joël Cuissinat
<pre>
78 1 Fabrice Barconnière
tar czvf samba.PDC.tgz /var/lib/samba.PDC
79 4 Joël Cuissinat
</pre>
80 1 Fabrice Barconnière
81 1 Fabrice Barconnière
h3. Adapter les configuration ETB1
82 1 Fabrice Barconnière
83 1 Fabrice Barconnière
* Amon
84 1 Fabrice Barconnière
** Forward de zone DNS : dompedago.etb1.lan 10.1.3.6 (ip de Seth en DMZ)
85 1 Fabrice Barconnière
** Authentification proxy en NTLM/KERBEROS
86 1 Fabrice Barconnière
* Scribe
87 1 Fabrice Barconnière
** domaine local passe à dompedago.etb1.lan
88 1 Fabrice Barconnière
** DHCP -> changer le DNS renvoyé avec l'IP de Seth ainsi que le domaine DNS à renvoyer (celui de Seth)
89 1 Fabrice Barconnière
* Seth
90 1 Fabrice Barconnière
** nom_machine : seth
91 1 Fabrice Barconnière
** domaine local : dompedago.etb1.lan
92 1 Fabrice Barconnière
** dns : ip Amon sur la dmz
93 1 Fabrice Barconnière
** NTP : ip Amon sur la dmz
94 1 Fabrice Barconnière
** Pas de DC additionnel
95 1 Fabrice Barconnière
96 1 Fabrice Barconnière
h2. Option Classicupgrade depuis Scribe
97 1 Fabrice Barconnière
98 1 Fabrice Barconnière
h3. Génération de la configuration Samba AD depuis Scribe
99 1 Fabrice Barconnière
100 1 Fabrice Barconnière
* Exécuter la procédure
101 1 Fabrice Barconnière
<pre>
102 1 Fabrice Barconnière
samba-tool domain classicupgrade --dbdir=/var/lib/samba.PDC/dbdir --use-xattrs=yes --realm=dompedago.etb1.lan --dns-backend=SAMBA_INTERNAL /var/lib/samba.PDC/etc/smb.PDC.conf
103 1 Fabrice Barconnière
</pre>
104 1 Fabrice Barconnière
105 1 Fabrice Barconnière
* Vérifier que la base sam est bien remplie
106 1 Fabrice Barconnière
<pre>
107 1 Fabrice Barconnière
apt-get install ldb-tools
108 1 Fabrice Barconnière
ldbsearch -H /var/lib/samba/private/sam.ldb -S '(objectclass=user)' cn
109 1 Fabrice Barconnière
</pre>
110 1 Fabrice Barconnière
111 1 Fabrice Barconnière
* sauvegarde la conf générée
112 1 Fabrice Barconnière
<pre>
113 1 Fabrice Barconnière
mv /var/lib/samba{,AD}
114 1 Fabrice Barconnière
mv /etc/samba{,AD}
115 1 Fabrice Barconnière
tar czvf samba.AD.tgz /var/lib/sambaAD
116 1 Fabrice Barconnière
</pre>
117 1 Fabrice Barconnière
118 1 Fabrice Barconnière
* Relancer Samba en mode NT
119 1 Fabrice Barconnière
<pre>
120 1 Fabrice Barconnière
mv /etc/hostname{.NT,}
121 1 Fabrice Barconnière
mv /etc/samba{.NT,}
122 1 Fabrice Barconnière
mv /var/lib/samba{.NT,}
123 1 Fabrice Barconnière
service smbd start
124 1 Fabrice Barconnière
service nmbd start
125 1 Fabrice Barconnière
</pre>
126 1 Fabrice Barconnière
127 1 Fabrice Barconnière
h3. Mise en place sur Seth
128 1 Fabrice Barconnière
129 1 Fabrice Barconnière
* Instancier Seth
130 1 Fabrice Barconnière
131 1 Fabrice Barconnière
* Copier l'archive obtenue sur Scribe
132 1 Fabrice Barconnière
<pre>
133 1 Fabrice Barconnière
scp root@scribe.etb1.lan:/root/samba.AD.tgz .
134 1 Fabrice Barconnière
tar xzvf samba.AD.tgz -C /
135 1 Fabrice Barconnière
</pre>
136 1 Fabrice Barconnière
137 1 Fabrice Barconnière
* Arrêter Samba
138 1 Fabrice Barconnière
<pre>
139 1 Fabrice Barconnière
service samba-ad-dc stop
140 1 Fabrice Barconnière
</pre>
141 1 Fabrice Barconnière
142 1 Fabrice Barconnière
* Sauvegarder les bases samba
143 1 Fabrice Barconnière
<pre>
144 1 Fabrice Barconnière
mv /var/lib/samba{,SVG}
145 1 Fabrice Barconnière
</pre>
146 1 Fabrice Barconnière
147 1 Fabrice Barconnière
* Restaurer les bases issues de Scribe
148 1 Fabrice Barconnière
<pre>
149 1 Fabrice Barconnière
mv /var/lib/samba{AD,}
150 1 Fabrice Barconnière
cp /var/lib/sambaSVG/.instance_ok /var/lib/samba/
151 1 Fabrice Barconnière
</pre>
152 1 Fabrice Barconnière
153 1 Fabrice Barconnière
* Reconfigurer Seth
154 1 Fabrice Barconnière
155 1 Fabrice Barconnière
* Ajouter une entrée DNS seth.dompedago.etb1.lan dans le DNS Samba
156 1 Fabrice Barconnière
<pre>
157 1 Fabrice Barconnière
samba-tool dns add 10.1.3.6 dompedago.etb1.lan seth A 10.1.3.6 -U admin
158 1 Fabrice Barconnière
</pre>
159 1 Fabrice Barconnière
160 1 Fabrice Barconnière
161 1 Fabrice Barconnière
h2. Option Classicupgrade depuis Seth
162 1 Fabrice Barconnière
163 1 Fabrice Barconnière
h3. Instancier Seth
164 1 Fabrice Barconnière
165 1 Fabrice Barconnière
Le serveur est opérationnel en tant que DC
166 1 Fabrice Barconnière
167 1 Fabrice Barconnière
h3. Préparer le classicupgrade sur Seth
168 1 Fabrice Barconnière
169 1 Fabrice Barconnière
* Sur Seth instancié, arrêter samba
170 1 Fabrice Barconnière
<pre>
171 1 Fabrice Barconnière
service samba-ad-dc stop
172 1 Fabrice Barconnière
</pre>
173 1 Fabrice Barconnière
 
174 1 Fabrice Barconnière
* Copier les backup obtenus sur Seth (depuis Seth)
175 1 Fabrice Barconnière
<pre>
176 1 Fabrice Barconnière
scp root@scribe.etb1.lan:~/ldap.backup.tgz .
177 1 Fabrice Barconnière
scp root@scribe.etb1.lan:/root/samba.PDC.tgz .
178 1 Fabrice Barconnière
</pre>
179 1 Fabrice Barconnière
180 1 Fabrice Barconnière
* Installer openldap, restaurer l'annuaire et lancer le service
181 1 Fabrice Barconnière
<pre>
182 1 Fabrice Barconnière
apt-eole install slapd
183 1 Fabrice Barconnière
service slapd stop
184 1 Fabrice Barconnière
tar xzvf ldap.backup.tgz -C /
185 1 Fabrice Barconnière
tar xzvf samba.PDC.tgz -C /
186 1 Fabrice Barconnière
#service slapd start
187 1 Fabrice Barconnière
/usr/sbin/slapd -g openldap -u openldap -f /etc/ldap/slapd.conf
188 1 Fabrice Barconnière
</pre>
189 1 Fabrice Barconnière
190 1 Fabrice Barconnière
* Lancer la procédure classic upgrade :
191 1 Fabrice Barconnière
<pre>
192 1 Fabrice Barconnière
samba-tool domain classicupgrade --dbdir=/var/lib/samba.PDC/dbdir/ --realm=dompedago.etb1.lan --dns-backend=SAMBA_INTERNAL /var/lib/samba.PDC/etc/smb.PDC.conf
193 1 Fabrice Barconnière
</pre> 
194 1 Fabrice Barconnière
195 1 Fabrice Barconnière
* Stopper le service slapd, relancer Samba et réinitialiser le mot de passe @Administrator@
196 1 Fabrice Barconnière
pkill slapd
197 1 Fabrice Barconnière
service samba-ad-dc restart
198 1 Fabrice Barconnière
samba-tool user setpassword Administrator
199 1 Fabrice Barconnière
</pre>
200 1 Fabrice Barconnière
201 1 Fabrice Barconnière
h3. Effectuer la procédure d'intégration du serveur Scribe dans le domaine AD de Seth
202 1 Fabrice Barconnière
203 1 Fabrice Barconnière
http://eole.ac-dijon.fr/documentations/2.6/partielles/beta/ModuleSeth/co/eole-AD.html
204 1 Fabrice Barconnière
205 1 Fabrice Barconnière
Il est tout de même nécessaire de sortir les postes du domaine NT pour les joindre au domaine AD
206 1 Fabrice Barconnière
207 1 Fabrice Barconnière
h2. Conclusion
208 1 Fabrice Barconnière
209 1 Fabrice Barconnière
Finalement, dans cette situation, on ne peut pas utiliser la méthode classicupgrade pour éviter l'opération de sortie/jonction au domaine AD à cause du changement de nom du serveur (Scribe->Seth).
210 1 Fabrice Barconnière
211 1 Fabrice Barconnière
On devra se contenter de la procédure avec eole-ad et LSC.
212 1 Fabrice Barconnière
213 1 Fabrice Barconnière
Il est toutefois possible de réinjecter les nt-hash des passwords des comptes de Scribe sur Seth :
214 1 Fabrice Barconnière
215 1 Fabrice Barconnière
* Extraction des Hash sur Scribe
216 1 Fabrice Barconnière
<pre>
217 1 Fabrice Barconnière
pdbedit -L -w | sed -e "/^.*$:/d" |cut -d":" -f 1,4 > hash_passwd
218 1 Fabrice Barconnière
</pre>
219 1 Fabrice Barconnière
* Injection des Hash sur Seth pour chaque USERNAME
220 1 Fabrice Barconnière
<pre>
221 1 Fabrice Barconnière
pdbedit -u USERNAME --set-nt-hash PASSWORD_HASH
222 1 Fabrice Barconnière
</pre>
223 2 Fabrice Barconnière
224 1 Fabrice Barconnière
La jonction des postes sur le nouveau DC pourra se faire à l'aide du script @joinDom.ps1@ présent dans le dépôt GIT seth-ecologie de project:pne-sr en adaptant @joinDom.psd1@.
225 1 Fabrice Barconnière
Ce script pourra être lancé à l'ouverture de session de chaque poste avant la procédure d'intégration du serveur Scribe dans le domaine AD de Seth.
226 7 Joël Cuissinat
227 7 Joël Cuissinat
228 7 Joël Cuissinat
h1. Classic Upgrade sur un Scribe existant
229 7 Joël Cuissinat
230 7 Joël Cuissinat
Test réalisé à partir d'un etb1.scribe avec poste 1703 intégré avec joineole.
231 7 Joël Cuissinat
232 7 Joël Cuissinat
h2. Préparation
233 7 Joël Cuissinat
234 7 Joël Cuissinat
h3. Configuration
235 7 Joël Cuissinat
236 7 Joël Cuissinat
* smb_netbios_name="scribe"
237 7 Joël Cuissinat
* smb_workgroup="dompedago"
238 7 Joël Cuissinat
* nom_domaine_local="etb1.lan"
239 7 Joël Cuissinat
240 7 Joël Cuissinat
=> realm=dompedago.etb1.lan
241 7 Joël Cuissinat
242 7 Joël Cuissinat
h3. Dépendances 
243 7 Joël Cuissinat
244 7 Joël Cuissinat
<pre>
245 7 Joël Cuissinat
apt-get install krb5-user ldb-tools
246 7 Joël Cuissinat
</pre>
247 7 Joël Cuissinat
248 7 Joël Cuissinat
h2. Réalisation du Classicupgrade
249 7 Joël Cuissinat
250 7 Joël Cuissinat
h3. Exécution de la procédure
251 7 Joël Cuissinat
252 7 Joël Cuissinat
Mise en application de la procédure décrite ci-dessus (_Option Classicupgrade depuis Scribe_).
253 7 Joël Cuissinat
254 7 Joël Cuissinat
NB : Stocker le mot de passe Administrator, affiché lors de la procédure :)
255 7 Joël Cuissinat
256 7 Joël Cuissinat
h3. Adaptations
257 7 Joël Cuissinat
258 7 Joël Cuissinat
Attention à la configuration DNS :
259 7 Joël Cuissinat
* modifier le resolv.conf
260 7 Joël Cuissinat
* ajouter dans /etc/samba/smb.conf
261 7 Joël Cuissinat
** @dns forwarder = 10.1.3.1@
262 7 Joël Cuissinat
* les DNS diffusés par le DHCP
263 7 Joël Cuissinat
264 7 Joël Cuissinat
Arrêter slapd
265 7 Joël Cuissinat
266 7 Joël Cuissinat
Utiliser le fichier kerberos généré par la procédure :
267 7 Joël Cuissinat
<pre>
268 7 Joël Cuissinat
cp /var/lib/samba/private/krb5.conf /etc/
269 7 Joël Cuissinat
</pre>
270 7 Joël Cuissinat
271 7 Joël Cuissinat
Vérification possible 
272 7 Joël Cuissinat
<pre>
273 7 Joël Cuissinat
kinit Administrator@ETB1.lan
274 7 Joël Cuissinat
</pre>
275 7 Joël Cuissinat
276 7 Joël Cuissinat
277 7 Joël Cuissinat
h3. Résultat
278 7 Joël Cuissinat
279 7 Joël Cuissinat
Après upgrade, on s'aperçoit que contrairement à la synchronisation LSC, les SID sont conservés :
280 7 Joël Cuissinat
281 7 Joël Cuissinat
<pre>
282 7 Joël Cuissinat
root@scribe:~# ldbsearch -S 'cn=prenom.eleve107' | grep -i sid
283 7 Joël Cuissinat
objectSid: S-1-5-21-682346051-3557492774-2305020224-21042
284 7 Joël Cuissinat
</pre>
285 7 Joël Cuissinat
286 7 Joël Cuissinat
<pre>
287 7 Joël Cuissinat
root@scribe:~# ldapsearch -x 'uid=prenom.eleve107' | grep -i sid
288 7 Joël Cuissinat
sambaSID: S-1-5-21-682346051-3557492774-2305020224-21042
289 7 Joël Cuissinat
</pre>
290 7 Joël Cuissinat
291 7 Joël Cuissinat
292 7 Joël Cuissinat
Les anciennes ACL sont fonctionnelles même si l'on constate toujours une différence avec celles ajoutées via Windows :
293 7 Joël Cuissinat
294 7 Joël Cuissinat
<pre>
295 7 Joël Cuissinat
root@scribe:~# getfacl /home/p/prenom.eleve112/perso/test
296 7 Joël Cuissinat
getfacl : suppression du premier « / » des noms de chemins absolus
297 7 Joël Cuissinat
# file: home/p/prenom.eleve112/perso/test
298 7 Joël Cuissinat
# owner: prenom.eleve112
299 7 Joël Cuissinat
# group: DomainUsers
300 7 Joël Cuissinat
user::rwx
301 7 Joël Cuissinat
user:prenom.eleve112:rwx
302 7 Joël Cuissinat
user:3000008:rwx
303 7 Joël Cuissinat
group::---
304 7 Joël Cuissinat
group:DomainUsers:---
305 7 Joël Cuissinat
group:professeurs:r-x
306 7 Joël Cuissinat
group:3000008:rwx
307 7 Joël Cuissinat
mask::rwx
308 7 Joël Cuissinat
other::---
309 7 Joël Cuissinat
default:user::rwx
310 7 Joël Cuissinat
default:user:prenom.eleve112:rwx
311 7 Joël Cuissinat
default:user:3000008:rwx
312 7 Joël Cuissinat
default:group::---
313 7 Joël Cuissinat
default:group:DomainUsers:---
314 7 Joël Cuissinat
default:group:professeurs:r-x
315 7 Joël Cuissinat
default:group:3000008:rwx
316 7 Joël Cuissinat
default:mask::rwx
317 7 Joël Cuissinat
default:other::---
318 7 Joël Cuissinat
</pre>