Projet

Général

Profil

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

Version 16 (Joël Cuissinat, 01/03/2018 16:32) → Version 17/26 (Joël Cuissinat, 01/03/2018 17:18)

h1. Scribe+eole-ad+samba-ad-dc-conteneur

{{>toc}}

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.

_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._

h2. Mise en œuvre de samba-ad-dc dans un conteneur LXC

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).

Toutes les étapes ont été intégrées afin d'obtenir une procédure automatisée (script joint).

h3. Détails du script

Comme dans l'étude précédente, le conteneur doit posséder 2 IP :
* une sur le bridge interne, actuellement forcée en 192.0.2.2
* 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")

_NB : Comme cette dernière adresse est en mode bridge, le maître (module Scribe) ne la voit pas._

Le script exécute les étapes suivantes :
* installation des paquets nécessaires sur le maître
* génération d'un conteneur lxc "ubuntu"
* configuration du conteneur (réseau, clés SSH)
* pré-paramétrage des services (/etc/krb5.conf, /etc/nsswitch.conf, /etc/eole/samba4-vars.conf)
* 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*
* configuration des sources.list EOLE et samba-4.7
* démarrage du conteneur
* installation des paquets samba-4.7
* configuration de samba
* initialisation du DC à l'aide des scripts du module Seth _(samba_instance)_

h3. Résultat

Une fois le script exécuté, le service samba-ad-dc est totalement fonctionnel dans le conteneur.
<pre>
ssh 192.0.2.2
service samba-ad-dc status
</pre>

Il est possible de joindre une station au domaine.

* 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)
* Le nom du domaine à utiliser correspond au "Nom DNS du réseau local" du module Scribe (ac-test.fr dans notre exemple)

h2. Mise en place d'Eole-AD sur Scribe

Utilisation de la procédure habituelle : installation du paquet + configuration + enregistrement des certificats d'autorité.

h3. Installation

<pre>
apt-eole install eole-ad
</pre>

h3. Configuration

*Tous les paramètres à renseigner peuvent être calculés.*

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).

<pre>
wget https://dev-eole.ac-dijon.fr/attachments/download/2613/27_eolead_container.xml
</pre>

<pre>
mv 27_eolead_container.xml /usr/share/eole/creole/dicos/
</pre>

<pre>
gen_config
</pre>

-Adresse du serveur NTP → 192.0.2.2-

Copie de la clé secrète

<pre>
root@scribe:~# scp 192.0.2.2:/var/lib/samba/private/tls/ca.pem /root/
</pre>

<pre>
root@scribe:~# keytool -import -trustcacerts -keystore /etc/ssl/certs/java/cacerts -storepass changeit -noprompt -alias eole-ad -file /root/ca.pem
</pre>

En une seule commande en passant par le filesystem du conteneur :

<pre>
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
</pre>

h3. Instanciation

<pre>
instance
</pre>

h3. Débogage

Sur le maître

<pre>
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
</pre>

h2. Problèmes rencontrés et pistes à creuser



h3. Réussite de l'intégration au domaine à l'instance du Scribe

En général, l'intégration au domaine échoue lors de l'instance.
Nous pensons que cela est du à des règles de pare-feu qui empêchent l'accès au bridge interne.
Visiblement, il faut s'inspirer du template /usr/share/eole/bastion/data/90-lxc_rules (projet project:eole-common).



h3. Fonctionnement des services après redémarrage du serveur

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...

h3. NTP signé

Un serveur NTP "signé" est nécessaire pour que les stations d'un domaine AD acceptent de se mettre à l'heure.
La maquette actuelle ne propose pas ce service (contrairement à un module Seth).