Projet

Général

Profil

Scribe AD » Historique » Version 14

Benjamin Bohard, 10/01/2018 14:42

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 12 Benjamin Bohard
<pre>
49 12 Benjamin Bohard
--- distrib/ldap.conf	2017-04-05 12:25:55.000000000 +0200
50 12 Benjamin Bohard
+++ modif/ldap.conf	2018-01-10 14:39:19.008000000 +0100
51 12 Benjamin Bohard
@@ -13,7 +13,7 @@
52 12 Benjamin Bohard
 
53 12 Benjamin Bohard
 %if %%active_ldap == 'oui'
54 12 Benjamin Bohard
 host %%adresse_ip_ldap
55 12 Benjamin Bohard
-base %%ldap_base_dn
56 12 Benjamin Bohard
+base DC=etb1,DC=lan
57 12 Benjamin Bohard
 port %%ldap_port
58 12 Benjamin Bohard
 timelimit 10
59 12 Benjamin Bohard
 bind_time_limit 10
60 12 Benjamin Bohard
@@ -23,8 +23,8 @@
61 12 Benjamin Bohard
 pam_login_attribute uid
62 12 Benjamin Bohard
 pam_password md5
63 12 Benjamin Bohard
 nss_map_attribute gecos displayName
64 12 Benjamin Bohard
-nss_base_passwd %%ldap_base_dn?sub
65 12 Benjamin Bohard
-nss_base_group %%ldap_base_dn?sub
66 12 Benjamin Bohard
+nss_base_passwd DC=etb1,DC=lan?sub
67 12 Benjamin Bohard
+nss_base_group DC=etb1,DC=lan?sub
68 12 Benjamin Bohard
 #fixe #1809
69 12 Benjamin Bohard
 nss_initgroups_ignoreusers root
70 12 Benjamin Bohard
  %if %%ldap_tls == 'oui'
71 12 Benjamin Bohard
</pre>
72 12 Benjamin Bohard
73 3 Benjamin Bohard
h5. déplacer la configuration samba actuelle dans un répertoire de travail
74 3 Benjamin Bohard
75 3 Benjamin Bohard
<pre>
76 3 Benjamin Bohard
mv /etc/samba/ /etc/samba.PDC/
77 3 Benjamin Bohard
</pre>
78 3 Benjamin Bohard
79 3 Benjamin Bohard
h5. renommer le fichier de configuration smb.conf de ce répertoire de travail,
80 3 Benjamin Bohard
81 3 Benjamin Bohard
<pre>
82 3 Benjamin Bohard
mv /etc/samba.PDC/smb.conf /etc/samba.PDC/smb.PDC.conf
83 3 Benjamin Bohard
</pre>
84 3 Benjamin Bohard
85 3 Benjamin Bohard
h5. copier les bases de données de samba dans un sous-répertoire du répertoire de travail
86 3 Benjamin Bohard
87 3 Benjamin Bohard
<pre>
88 14 Benjamin Bohard
mkdir /etc/samba.PDC/dbdir/
89 13 Benjamin Bohard
cp -p /var/lib/samba/private/secrets.tdb /etc/samba.PDC/dbdir/
90 13 Benjamin Bohard
cp -p /var/lib/samba/private/schannel_store.tdb /etc/samba.PDC/dbdir/
91 13 Benjamin Bohard
cp -p /var/lib/samba/private/passdb.tdb /etc/samba.PDC/dbdir/
92 13 Benjamin Bohard
cp -p /var/lib/samba/var/lock/gencache_notrans.tdb /etc/samba.PDC/dbdir/
93 13 Benjamin Bohard
cp -p /var/lib/samba/var/locks/group_mapping.tdb /etc/samba.PDC/dbdir/
94 13 Benjamin Bohard
cp -p /var/lib/samba/var/locks/account_policy.tdb /etc/samba.PDC/dbdir/
95 1 Benjamin Bohard
</pre>
96 3 Benjamin Bohard
97 8 Benjamin Bohard
h5. lancer la commande samba-tool domain classicupgrade
98 8 Benjamin Bohard
99 1 Benjamin Bohard
<pre>
100 8 Benjamin Bohard
realm=$(CreoleGet nom_domaine_local)
101 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
102 8 Benjamin Bohard
</pre>
103 8 Benjamin Bohard
104 8 Benjamin Bohard
h5. créer le patch smb.conf à partir du nouveau fichier créer par samba-tool
105 8 Benjamin Bohard
106 8 Benjamin Bohard
h5. stopper et désactiver le service slapd
107 8 Benjamin Bohard
108 8 Benjamin Bohard
<pre>
109 8 Benjamin Bohard
systemctl stop slapd
110 8 Benjamin Bohard
systemctl disable slapd
111 8 Benjamin Bohard
</pre>
112 8 Benjamin Bohard
113 8 Benjamin Bohard
h5. créer le compte reader
114 8 Benjamin Bohard
115 8 Benjamin Bohard
<pre>
116 8 Benjamin Bohard
cat /root/.reader
117 8 Benjamin Bohard
samba-tool user create reader
118 8 Benjamin Bohard
</pre>
119 8 Benjamin Bohard
120 8 Benjamin Bohard
h5. modifier les variables
121 8 Benjamin Bohard
122 8 Benjamin Bohard
Le base DN est maintenant du type DC=etb1,DC=lan.
123 8 Benjamin Bohard
124 8 Benjamin Bohard
Le compte reader est maintenant du type CN=reader,CN=Users,DC=etb1,DC=lan.
125 8 Benjamin Bohard
126 8 Benjamin Bohard
h5. modifier les scripts de posttemplate 00-annuaire, 02-annuaire et 04-fichier
127 8 Benjamin Bohard
128 8 Benjamin Bohard
exit 0 ajouté en tête des fichiers pour ne pas faire les traitements.
129 8 Benjamin Bohard
130 8 Benjamin Bohard
h5. activer et démarrer le service samba-ad-dc
131 8 Benjamin Bohard
132 8 Benjamin Bohard
<pre>
133 8 Benjamin Bohard
systemctl enable samba-ad-dc
134 8 Benjamin Bohard
systemctl start samba-ad-dc
135 8 Benjamin Bohard
</pre>
136 8 Benjamin Bohard
137 8 Benjamin Bohard
h5. reconfigure
138 8 Benjamin Bohard
139 8 Benjamin Bohard
h5. stopper le service nmbd
140 8 Benjamin Bohard
141 8 Benjamin Bohard
Le service nmbd est démarré automatiquement par creole
142 8 Benjamin Bohard
<pre>
143 8 Benjamin Bohard
systemctl stop nmbd
144 3 Benjamin Bohard
</pre>
145 1 Benjamin Bohard
146 10 Benjamin Bohard
h4. Points à traiter
147 10 Benjamin Bohard
148 10 Benjamin Bohard
h5. service nmbd
149 10 Benjamin Bohard
150 10 Benjamin Bohard
Le service nmbd est géré par creole et sa désactivation manuelle n’est pas suffisante
151 10 Benjamin Bohard
152 10 Benjamin Bohard
h5. variables creole
153 10 Benjamin Bohard
154 10 Benjamin Bohard
Les variables concernant l’annuaire sont verrouillées (même après import du fichier de configuration : valeurs par défaut).
155 10 Benjamin Bohard
156 10 Benjamin Bohard
Il n’est pas possible de modifier, hors des patchs, les valeurs pour le base DN, le protocole (ldaps), etc.
157 10 Benjamin Bohard
158 10 Benjamin Bohard
h5. dns
159 10 Benjamin Bohard
160 10 Benjamin Bohard
Un problème subsiste pour le dns, peut-être lié à un problème kerberos
161 10 Benjamin Bohard
162 10 Benjamin Bohard
<pre>
163 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)
164 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate: Traceback (most recent call last):
165 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)
166 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:   File "/usr/sbin/samba_dnsupdate", line 621, in <module>
167 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)
168 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:     get_credentials(lp)
169 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)
170 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
171 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)
172 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:     raise e
173 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)
174 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
175 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)
176 10 Benjamin Bohard
janv. 10 11:49:15 scribe samba[15840]:   /usr/sbin/samba_dnsupdate:
177 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)
178 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
179 10 Benjamin Bohard
</pre>
180 10 Benjamin Bohard
181 10 Benjamin Bohard
Un essai de modification de la configuration de kerberos (krb5.conf) a été tenté mais les résultats sont incertains.
182 10 Benjamin Bohard
183 10 Benjamin Bohard
<pre>
184 10 Benjamin Bohard
[libdefaults]
185 10 Benjamin Bohard
    default_realm = ETB1.LAN
186 10 Benjamin Bohard
    dns_lookup_kdc = true
187 10 Benjamin Bohard
    dns_lookup_realm = true
188 10 Benjamin Bohard
</pre>
189 10 Benjamin Bohard
190 10 Benjamin Bohard
191 4 Benjamin Bohard
192 9 Philippe Caseiro
h2. Pistes de travail pour la migration de l'annuaire
193 9 Philippe Caseiro
194 9 Philippe Caseiro
Proposition de méthode pour arriver a un Scribe AD en utilisant malgré-tout une
195 9 Philippe Caseiro
partie du travail déjà fait par l'équipe samba dans sa procédure
196 9 Philippe Caseiro
classicupgrade.
197 9 Philippe Caseiro
198 9 Philippe Caseiro
La procédure proprement dite n'est pas suffisante pour nous et l'utilisation
199 9 Philippe Caseiro
brute de l'outil samba non plus, cet outil réalise le provisionning AD et les
200 9 Philippe Caseiro
initialisations des fichiers db, hors pour bien faire nous avons besoin que samba ai
201 9 Philippe Caseiro
connaissance des schemas complémentaires du scribe (radius, eole, ent ...).
202 9 Philippe Caseiro
avant la migration des comptes. Pour lui ajouter les dit schémas il faut que
203 9 Philippe Caseiro
les fichiers db soient initialisées, donc l'utilisation de l'outil est
204 9 Philippe Caseiro
impossible. Par chance il utilise la lib python samaba, ce qui nous ouvre des
205 9 Philippe Caseiro
possibilités. Sans oublié que l'outil samba crée la configuration pour samba
206 9 Philippe Caseiro
a partir de l'ancienne et cette fonctionnalités ne nous ai pas vraiment utile.
207 9 Philippe Caseiro
208 9 Philippe Caseiro
Donc l'idée est de recréer une procédure de migration complête pour nos
209 9 Philippe Caseiro
besoins.
210 9 Philippe Caseiro
211 9 Philippe Caseiro
Il faut donc refaire le provisionning de l'AD ce qui est fait dans Seth donc
212 9 Philippe Caseiro
nous pouvons utiliser cette base de travail
213 9 Philippe Caseiro
214 9 Philippe Caseiro
Migrer les shemas complémentaires actuels au format lisible par samba4.
215 9 Philippe Caseiro
216 9 Philippe Caseiro
Créer un script de migration des comptes qui ajoute les schemas, utilise la
217 9 Philippe Caseiro
lib python samba4 pour migrer les comptes et ensuite mettre à jour les comptes
218 9 Philippe Caseiro
avec les attributs supplémentaires de l'ancien annuaire.