Projet

Général

Profil

Scribe AD » Historique » Version 11

Benjamin Bohard, 10/01/2018 14:35

1 1 Benjamin Bohard
h1. Scribe AD
2 1 Benjamin Bohard
3 1 Benjamin Bohard
h2. Actions
4 1 Benjamin Bohard
5 2 Benjamin Bohard
h3. Migration du Scribe NT vers Scribe AD
6 1 Benjamin Bohard
7 1 Benjamin Bohard
h4. Procédure classicupgrade
8 3 Benjamin Bohard
9 3 Benjamin Bohard
La procédure classicupgrade nécessite des interventions complémentaires (pouvant être scriptées).
10 3 Benjamin Bohard
11 3 Benjamin Bohard
En partant d’un Scribe fonctionnel instancié avec import de comptes
12 3 Benjamin Bohard
13 3 Benjamin Bohard
h5. stopper et désactiver les services de samba en mode NT (smbd, nmbd, winbind),
14 10 Benjamin Bohard
15 3 Benjamin Bohard
<pre>
16 3 Benjamin Bohard
systemctl stop nmbd
17 3 Benjamin Bohard
systemctl stop smbd
18 3 Benjamin Bohard
systemctl stop winbind
19 3 Benjamin Bohard
systemctl disable nmbd
20 3 Benjamin Bohard
systemctl disable smbd
21 3 Benjamin Bohard
systemctl disable winbind
22 3 Benjamin Bohard
</pre>
23 3 Benjamin Bohard
24 3 Benjamin Bohard
h5. installer les outils nécessaires :
25 10 Benjamin Bohard
26 3 Benjamin Bohard
<pre>
27 11 Benjamin Bohard
apt-get install krb5-user ldb-tools
28 3 Benjamin Bohard
</pre>
29 3 Benjamin Bohard
30 3 Benjamin Bohard
h5. patcher nsswitch.conf.default, ldap.conf
31 3 Benjamin Bohard
32 3 Benjamin Bohard
<pre>
33 3 Benjamin Bohard
--- distrib/nsswitch.conf.default	2017-05-15 11:18:44.000000000 +0200
34 3 Benjamin Bohard
+++ modif/nsswitch.conf.default	2018-01-09 15:12:53.260292570 +0100
35 3 Benjamin Bohard
@@ -7,8 +7,8 @@
36 3 Benjamin Bohard
 ########################################################
37 3 Benjamin Bohard
 # /etc/nsswitch.conf
38 3 Benjamin Bohard
 
39 3 Benjamin Bohard
-%set %%active_winbind = %%getVar('activer_winbind', 'non') == 'oui'
40 3 Benjamin Bohard
-%set %%active_ldap =  %%getVar('ldap_nss', 'non') == 'oui'
41 3 Benjamin Bohard
+%set %%active_winbind = True
42 3 Benjamin Bohard
+%set %%active_ldap =  False
43 3 Benjamin Bohard
 
44 3 Benjamin Bohard
 passwd:         compat %slurp
45 3 Benjamin Bohard
 %if %%active_ldap
46 3 Benjamin Bohard
</pre>
47 3 Benjamin Bohard
48 3 Benjamin Bohard
h5. déplacer la configuration samba actuelle dans un répertoire de travail
49 3 Benjamin Bohard
50 3 Benjamin Bohard
<pre>
51 3 Benjamin Bohard
mv /etc/samba/ /etc/samba.PDC/
52 3 Benjamin Bohard
</pre>
53 3 Benjamin Bohard
54 3 Benjamin Bohard
h5. renommer le fichier de configuration smb.conf de ce répertoire de travail,
55 3 Benjamin Bohard
56 3 Benjamin Bohard
<pre>
57 3 Benjamin Bohard
mv /etc/samba.PDC/smb.conf /etc/samba.PDC/smb.PDC.conf
58 3 Benjamin Bohard
</pre>
59 3 Benjamin Bohard
60 3 Benjamin Bohard
h5. copier les bases de données de samba dans un sous-répertoire du répertoire de travail
61 3 Benjamin Bohard
62 3 Benjamin Bohard
<pre>
63 3 Benjamin Bohard
mkdir /etcsamba.PDC/dbdir/
64 3 Benjamin Bohard
cp -p /etc/samba.PDC/private/secrets.tdb /etc/samba.PDC/dbdir/
65 3 Benjamin Bohard
cp -p /etc/samba.PDC/private/schannel_store.tdb /etc/samba.PDC/dbdir/
66 3 Benjamin Bohard
cp -p /etc/samba.PDC/private/passdb.tdb /etc/samba.PDC/dbdir/
67 3 Benjamin Bohard
cp -p /etc/samba.PDC/var/lock/gencache_notrans.tdb /etc/samba.PDC/dbdir/
68 3 Benjamin Bohard
cp -p /etc/samba.PDC/var/locks/group_mapping.tdb /etc/samba.PDC/dbdir/
69 1 Benjamin Bohard
cp -p /etc/samba.PDC/var/locks/account_policy.tdb /etc/samba.PDC/dbdir/
70 1 Benjamin Bohard
</pre>
71 3 Benjamin Bohard
72 8 Benjamin Bohard
h5. lancer la commande samba-tool domain classicupgrade
73 8 Benjamin Bohard
74 1 Benjamin Bohard
<pre>
75 8 Benjamin Bohard
realm=$(CreoleGet nom_domaine_local)
76 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
77 8 Benjamin Bohard
</pre>
78 8 Benjamin Bohard
79 8 Benjamin Bohard
h5. créer le patch smb.conf à partir du nouveau fichier créer par samba-tool
80 8 Benjamin Bohard
81 8 Benjamin Bohard
h5. stopper et désactiver le service slapd
82 8 Benjamin Bohard
83 8 Benjamin Bohard
<pre>
84 8 Benjamin Bohard
systemctl stop slapd
85 8 Benjamin Bohard
systemctl disable slapd
86 8 Benjamin Bohard
</pre>
87 8 Benjamin Bohard
88 8 Benjamin Bohard
h5. créer le compte reader
89 8 Benjamin Bohard
90 8 Benjamin Bohard
<pre>
91 8 Benjamin Bohard
cat /root/.reader
92 8 Benjamin Bohard
samba-tool user create reader
93 8 Benjamin Bohard
</pre>
94 8 Benjamin Bohard
95 8 Benjamin Bohard
h5. modifier les variables
96 8 Benjamin Bohard
97 8 Benjamin Bohard
Le base DN est maintenant du type DC=etb1,DC=lan.
98 8 Benjamin Bohard
99 8 Benjamin Bohard
Le compte reader est maintenant du type CN=reader,CN=Users,DC=etb1,DC=lan.
100 8 Benjamin Bohard
101 8 Benjamin Bohard
h5. modifier les scripts de posttemplate 00-annuaire, 02-annuaire et 04-fichier
102 8 Benjamin Bohard
103 8 Benjamin Bohard
exit 0 ajouté en tête des fichiers pour ne pas faire les traitements.
104 8 Benjamin Bohard
105 8 Benjamin Bohard
h5. activer et démarrer le service samba-ad-dc
106 8 Benjamin Bohard
107 8 Benjamin Bohard
<pre>
108 8 Benjamin Bohard
systemctl enable samba-ad-dc
109 8 Benjamin Bohard
systemctl start samba-ad-dc
110 8 Benjamin Bohard
</pre>
111 8 Benjamin Bohard
112 8 Benjamin Bohard
h5. reconfigure
113 8 Benjamin Bohard
114 8 Benjamin Bohard
h5. stopper le service nmbd
115 8 Benjamin Bohard
116 8 Benjamin Bohard
Le service nmbd est démarré automatiquement par creole
117 8 Benjamin Bohard
<pre>
118 8 Benjamin Bohard
systemctl stop nmbd
119 3 Benjamin Bohard
</pre>
120 1 Benjamin Bohard
121 10 Benjamin Bohard
h4. Points à traiter
122 10 Benjamin Bohard
123 10 Benjamin Bohard
h5. service nmbd
124 10 Benjamin Bohard
125 10 Benjamin Bohard
Le service nmbd est géré par creole et sa désactivation manuelle n’est pas suffisante
126 10 Benjamin Bohard
127 10 Benjamin Bohard
h5. variables creole
128 10 Benjamin Bohard
129 10 Benjamin Bohard
Les variables concernant l’annuaire sont verrouillées (même après import du fichier de configuration : valeurs par défaut).
130 10 Benjamin Bohard
131 10 Benjamin Bohard
Il n’est pas possible de modifier, hors des patchs, les valeurs pour le base DN, le protocole (ldaps), etc.
132 10 Benjamin Bohard
133 10 Benjamin Bohard
h5. dns
134 10 Benjamin Bohard
135 10 Benjamin Bohard
Un problème subsiste pour le dns, peut-être lié à un problème kerberos
136 10 Benjamin Bohard
137 10 Benjamin Bohard
<pre>
138 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)
139 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate: Traceback (most recent call last):
140 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)
141 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:   File "/usr/sbin/samba_dnsupdate", line 621, in <module>
142 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)
143 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:     get_credentials(lp)
144 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)
145 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
146 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)
147 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:     raise e
148 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)
149 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
150 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)
151 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:
152 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)
153 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
154 10 Benjamin Bohard
</pre>
155 10 Benjamin Bohard
156 10 Benjamin Bohard
Un essai de modification de la configuration de kerberos (krb5.conf) a été tenté mais les résultats sont incertains.
157 10 Benjamin Bohard
158 10 Benjamin Bohard
<pre>
159 10 Benjamin Bohard
[libdefaults]
160 10 Benjamin Bohard
    default_realm = ETB1.LAN
161 10 Benjamin Bohard
    dns_lookup_kdc = true
162 10 Benjamin Bohard
    dns_lookup_realm = true
163 10 Benjamin Bohard
</pre>
164 10 Benjamin Bohard
165 10 Benjamin Bohard
166 4 Benjamin Bohard
167 9 Philippe Caseiro
h2. Pistes de travail pour la migration de l'annuaire
168 9 Philippe Caseiro
169 9 Philippe Caseiro
Proposition de méthode pour arriver a un Scribe AD en utilisant malgré-tout une
170 9 Philippe Caseiro
partie du travail déjà fait par l'équipe samba dans sa procédure
171 9 Philippe Caseiro
classicupgrade.
172 9 Philippe Caseiro
173 9 Philippe Caseiro
La procédure proprement dite n'est pas suffisante pour nous et l'utilisation
174 9 Philippe Caseiro
brute de l'outil samba non plus, cet outil réalise le provisionning AD et les
175 9 Philippe Caseiro
initialisations des fichiers db, hors pour bien faire nous avons besoin que samba ai
176 9 Philippe Caseiro
connaissance des schemas complémentaires du scribe (radius, eole, ent ...).
177 9 Philippe Caseiro
avant la migration des comptes. Pour lui ajouter les dit schémas il faut que
178 9 Philippe Caseiro
les fichiers db soient initialisées, donc l'utilisation de l'outil est
179 9 Philippe Caseiro
impossible. Par chance il utilise la lib python samaba, ce qui nous ouvre des
180 9 Philippe Caseiro
possibilités. Sans oublié que l'outil samba crée la configuration pour samba
181 9 Philippe Caseiro
a partir de l'ancienne et cette fonctionnalités ne nous ai pas vraiment utile.
182 9 Philippe Caseiro
183 9 Philippe Caseiro
Donc l'idée est de recréer une procédure de migration complête pour nos
184 9 Philippe Caseiro
besoins.
185 9 Philippe Caseiro
186 9 Philippe Caseiro
Il faut donc refaire le provisionning de l'AD ce qui est fait dans Seth donc
187 9 Philippe Caseiro
nous pouvons utiliser cette base de travail
188 9 Philippe Caseiro
189 9 Philippe Caseiro
Migrer les shemas complémentaires actuels au format lisible par samba4.
190 9 Philippe Caseiro
191 9 Philippe Caseiro
Créer un script de migration des comptes qui ajoute les schemas, utilise la
192 9 Philippe Caseiro
lib python samba4 pour migrer les comptes et ensuite mettre à jour les comptes
193 9 Philippe Caseiro
avec les attributs supplémentaires de l'ancien annuaire.