Projet

Général

Profil

Scribe+eole-ad+samba-ad-dc-conteneur » Historique » Version 15

Joël Cuissinat, 01/03/2018 16:13

1 1 Joël Cuissinat
h1. Scribe+eole-ad+samba-ad-dc-conteneur
2 14 Joël Cuissinat
3 14 Joël Cuissinat
{{>toc}}
4 1 Joël Cuissinat
5 1 Joël Cuissinat
On part d'un Scribe sur lequel on installe et on configure le service samba-ad-dc dans un conteneur LXC puis on met en œuvre Eole-AD comme si on avait deux serveurs distincts.
6 1 Joël Cuissinat
7 1 Joël Cuissinat
_Pour la maquette, j'ai choisi d'utiliser un serveur aca.scribe-2.6.2-instance-AvecImport afin de minimiser les problèmes liés à l'environnement réseau._
8 1 Joël Cuissinat
9 1 Joël Cuissinat
h2. Mise en œuvre de samba-ad-dc dans un conteneur LXC
10 1 Joël Cuissinat
11 1 Joël Cuissinat
Pour mettre en place le conteneur, nous sommes repartis de l'étude précédente ("Mise en œuvre du module Seth dans un conteneur LXC":https://dev-eole.ac-dijon.fr/projects/scribe/wiki/Scribe+eole-ad+Seth-conteneur#Mise-en-%C5%93uvre-du-module-Seth-dans-un-conteneur-LXC).
12 1 Joël Cuissinat
13 1 Joël Cuissinat
Toutes les étapes ont été intégrées afin d'obtenir une procédure automatisée (script joint).
14 1 Joël Cuissinat
15 1 Joël Cuissinat
h3. Détails du script
16 1 Joël Cuissinat
17 1 Joël Cuissinat
Comme dans l'étude précédente, le conteneur doit posséder 2 IP :
18 1 Joël Cuissinat
* une sur le bridge interne, actuellement forcée en 192.0.2.2
19 1 Joël Cuissinat
* une sur le réseau "pédagogique" qui est à choisir dans la même plage d'adresses que celle du module Scribe (exemple : 192.168.0.27 en "aca")
20 1 Joël Cuissinat
21 1 Joël Cuissinat
_NB : Comme cette dernière adresse est en mode bridge, le maître (module Scribe) ne la voit pas._
22 1 Joël Cuissinat
23 1 Joël Cuissinat
Le script exécute les étapes suivantes :
24 1 Joël Cuissinat
* installation des paquets nécessaires sur le maître
25 1 Joël Cuissinat
* génération d'un conteneur lxc "ubuntu"
26 1 Joël Cuissinat
* configuration du conteneur (réseau, clés SSH)
27 1 Joël Cuissinat
* pré-paramétrage des services (/etc/krb5.conf, /etc/nsswitch.conf, /etc/eole/samba4-vars.conf)
28 2 Joël Cuissinat
* installation des libraires et des scripts (samba4.sh, validSambaPassword, ...), FIXME : cette partie effectue actuellement des copies de fichiers depuis le maître ainsi que des *wget sur gitweb*
29 1 Joël Cuissinat
* configuration des sources.list EOLE et samba-4.7
30 1 Joël Cuissinat
* démarrage du conteneur
31 1 Joël Cuissinat
* installation des paquets samba-4.7
32 1 Joël Cuissinat
* configuration de samba
33 1 Joël Cuissinat
* initialisation du DC à l'aide des scripts du module Seth _(samba_instance)_
34 1 Joël Cuissinat
35 1 Joël Cuissinat
h3. Résultat
36 1 Joël Cuissinat
37 1 Joël Cuissinat
Une fois le script exécuté, le service samba-ad-dc est totalement fonctionnel dans le conteneur.
38 4 Gérald Schwartzmann
<pre>
39 4 Gérald Schwartzmann
ssh 192.0.2.2
40 4 Gérald Schwartzmann
service samba-ad-dc status
41 4 Gérald Schwartzmann
</pre>
42 4 Gérald Schwartzmann
43 1 Joël Cuissinat
Il est possible de joindre une station au domaine.
44 1 Joël Cuissinat
45 5 Gérald Schwartzmann
* Le DNS à utiliser est l'adresse qui a été choisie sur le réseau "pédagogique" (192.168.0.27 dans notre exemple, cette IP peut être retrouvée ssh sur le conteneur, IP eth0)
46 1 Joël Cuissinat
* Le nom du domaine à utiliser correspond au "Nom DNS du réseau local" du module Scribe (ac-test.fr dans notre exemple)
47 6 Joël Cuissinat
48 6 Joël Cuissinat
h2. Mise en place d'Eole-AD sur Scribe
49 6 Joël Cuissinat
50 6 Joël Cuissinat
Utilisation de la procédure habituelle : installation du paquet + configuration + enregistrement des certificats d'autorité.
51 6 Joël Cuissinat
52 8 Gérald Schwartzmann
h3. Installation
53 8 Gérald Schwartzmann
54 8 Gérald Schwartzmann
<pre>
55 8 Gérald Schwartzmann
apt-eole install eole-ad
56 8 Gérald Schwartzmann
</pre>
57 8 Gérald Schwartzmann
58 6 Joël Cuissinat
*Tous les paramètres à renseigner peuvent être calculés.*
59 6 Joël Cuissinat
60 6 Joël Cuissinat
Le dictionnaire joint pré-remplit tout ce qui doit l'être (FIXME : en l'état, cela écrase les "noms d'hôtes supplémentaires" ajoutés par les utilisateurs).
61 7 Gérald Schwartzmann
62 7 Gérald Schwartzmann
<pre>
63 7 Gérald Schwartzmann
wget https://dev-eole.ac-dijon.fr/attachments/download/2613/27_eolead_container.xml
64 7 Gérald Schwartzmann
</pre>
65 7 Gérald Schwartzmann
66 7 Gérald Schwartzmann
<pre>
67 7 Gérald Schwartzmann
mv 27_eolead_container.xml /usr/share/eole/creole/dicos/
68 8 Gérald Schwartzmann
</pre>
69 8 Gérald Schwartzmann
70 8 Gérald Schwartzmann
<pre>
71 8 Gérald Schwartzmann
gen_config
72 8 Gérald Schwartzmann
</pre>
73 8 Gérald Schwartzmann
74 15 Joël Cuissinat
-Adresse du serveur NTP → 192.0.2.2-
75 9 Gérald Schwartzmann
76 8 Gérald Schwartzmann
<pre>
77 11 Gérald Schwartzmann
instance
78 11 Gérald Schwartzmann
</pre>
79 11 Gérald Schwartzmann
80 11 Gérald Schwartzmann
Copie de la clé secrète
81 11 Gérald Schwartzmann
82 11 Gérald Schwartzmann
<pre>
83 8 Gérald Schwartzmann
root@scribe:~# scp 192.0.2.2:/var/lib/samba/private/tls/ca.pem /root/
84 8 Gérald Schwartzmann
</pre>
85 8 Gérald Schwartzmann
86 8 Gérald Schwartzmann
<pre>
87 7 Gérald Schwartzmann
root@scribe:~# keytool -import -trustcacerts -keystore /etc/ssl/certs/java/cacerts -storepass changeit -noprompt -alias eole-ad -file /root/ca.pem
88 10 Gérald Schwartzmann
</pre>
89 1 Joël Cuissinat
90 11 Gérald Schwartzmann
En une seule commande en passant par le filesystem du conteneur :
91 10 Gérald Schwartzmann
92 10 Gérald Schwartzmann
<pre>
93 10 Gérald Schwartzmann
keytool -import -trustcacerts -keystore /etc/ssl/certs/java/cacerts -storepass changeit -noprompt -alias eole-ad -file /var/lib/lxc/addc/rootfs/var/lib/samba/private/tls/ca.pem
94 10 Gérald Schwartzmann
</pre>
95 12 Gérald Schwartzmann
96 12 Gérald Schwartzmann
Debug
97 12 Gérald Schwartzmann
98 12 Gérald Schwartzmann
Sur le maître
99 12 Gérald Schwartzmann
100 12 Gérald Schwartzmann
<pre>
101 12 Gérald Schwartzmann
LDAPTLS_REQCERT=never ldapsearch -x -H ldaps://addc.ac-test.fr:636 -bDC=ac-test,DC=fr -DCN=admin,CN=Users,DC=ac-test,DC=fr -w
102 1 Joël Cuissinat
</pre>
103 15 Joël Cuissinat
104 15 Joël Cuissinat
h2. Problèmes rencontrés et pistes à creuser
105 15 Joël Cuissinat
106 15 Joël Cuissinat
h3. Réussite de l'intégration au domaine à l'instance du Scribe
107 15 Joël Cuissinat
108 15 Joël Cuissinat
En général, l'intégration au domaine échoue lors de l'instance. 
109 15 Joël Cuissinat
Nous pensons que cela est du à des règles de pare-feu qui empêchent l'accès au bridge interne.
110 15 Joël Cuissinat
111 15 Joël Cuissinat
h3. Fonctionnement des services après redémarrage du serveur
112 15 Joël Cuissinat
113 15 Joël Cuissinat
Le démarrage du service lsc nécessite l'accès à l'annuaire Active Directory mais comme celui-ci est dans le conteneur, il démarre certainement trop tard...
114 15 Joël Cuissinat
115 15 Joël Cuissinat
h3. NTP signé
116 15 Joël Cuissinat
117 15 Joël Cuissinat
Un serveur NTP "signé" est nécessaire pour que les stations d'un domaine AD acceptent de se mettre à l'heure.
118 15 Joël Cuissinat
La maquette actuelle ne propose pas ce service (contrairement à un module Seth).