migrer et installer une architecture samba/ldap avec ubuntu...

43
2013 Migrer et installer une architecture SAMBA/LDAP avec Ubuntu 10 CONFIGURATION MULTI-SITES AVEC REDONDANCE DU COEUR DU RESEAU ERIC QUINTON Copyright (c) 2010 Eric Quinton. Permission est accordée de copier, distribuer et/ou modifier ce document selon les termes de la Licence de Documentation Libre GNU (GNU Free Documentation License), version 1.1 ou toute version ultérieure publiée par la Free Software Foundation ; sans section invariable. Une copie de la présente Licence est incluse dans la section intitulée « Licence de Documentation Libre GNU » Par respect pour le rédacteur initial, et en accord avec les termes de la licence GNU, j’ai repris ce document, dont j’ai juste modifié la mise en page propre au site.

Upload: vubao

Post on 20-Sep-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

2013

Migrer et installer une architecture

SAMBA/LDAP avec Ubuntu 10 CONFIGURATION MULTI-SITES AVEC REDONDANCE DU COEUR DU RESEAU

ERIC QUINTON

Copyright (c) 2010 Eric Quinton.

Permission est accordée de copier, distribuer et/ou modifier ce document selon les termes de la Licence de Documentation

Libre GNU (GNU Free Documentation License), version 1.1 ou toute version ultérieure publiée par la Free Software

Foundation ; sans section invariable. Une copie de la présente Licence est incluse dans la section intitulée « Licence de

Documentation Libre GNU »

Par respect pour le rédacteur initial, et en accord avec les termes de la licence GNU, j’ai repris ce document, dont j’ai juste modifié la mise en page propre au site.

E. Quinton & D. Olivier – http://www.entraide-info.fr 2

Table des matières Signalétique ................................................................................................................................................. 3

1 Introduction ......................................................................................................................................... 4

2 Avant de commencer ........................................................................................................................... 6

3 Installation de Ubuntu.......................................................................................................................... 7

4 Gestion de la sécurité – mise en place d'une couche TLS ................................................................... 9

5 Configurer l'annuaire LDAP ............................................................................................................... 14

6 Configuration de samba .................................................................................................................... 22

7 Intégrer des machines dans le domaine ........................................................................................... 29

8 Quelques tests... non exhaustifs ....................................................................................................... 30

9 Sauvegarde des serveurs .................................................................................................................. 30

10 Outils complémentaires ................................................................................................................ 32

11 Récapitulatif des opérations à effectuer ....................................................................................... 34

12 Que faire en cas d'incident ?......................................................................................................... 39

I. Licence de Documentation Libre GNU (GNU Free Documentation License) ..................................... 40

E. Quinton & D. Olivier – http://www.entraide-info.fr 3

Signalétique

Commande UNIX # /tomcat5.5/bin/startup.sh

Chemin de fichier, dossier, emplacement sur le disque

Fichier web.xml

Exemple de contenu de document

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" />

Autre contenu de fichier :

<role rolename="RUserHelloWorld"/>

E. Quinton & D. Olivier – http://www.entraide-info.fr 4

1 Introduction

La DRAAF Aquitaine fonctionne avec une architecture Samba/Ldap depuis plusieurs années, qui a été

configurée initialement avec la distribution Mandriva Corporate Server 3, puis complétée avec des

serveurs en Mandriva Corporate Server 4.

Cette structure administrative est répartie sur plusieurs sites. L'organisation mise en place permet de

s'affranchir, autant que faire se peut, de l'éclatement en plusieurs sites : tout personnel peut s'identifier

sur un micro (Windows essentiellement) avec son login, quel que soit le site sur lequel il travaille.

L'architecture mise en place donne satisfaction. Néanmoins, l'arrivée de Windows 7 nous oblige à revoir

complètement notre architecture, les versions de Samba disponibles pour les serveurs actuels étant trop

anciennes pour supporter l'identification des nouvelles stations installées avec Windows 7.

La refonte de l'architecture est l'occasion de redéfinir un certain nombre d'objectifs :

1.1 Les objectifs retenus

Redondance du cœur de réseau

L'architecture doit permettre un fonctionnement sans interruption perceptible, si :

un serveur maître s'arrête

la connexion au réseau étendu d'un site, y compris du site principal, se rompt.

De plus, si un site voit sa connexion au réseau étendu tomber, les utilisateurs doivent pouvoir continuer à

travailler localement. Simplement, certaines opérations, comme la modification du mot de passe de

session, peuvent être interrompues (tolérance acceptée).

Pour arriver à cette redondance, deux serveurs maîtres samba/ldap vont être installés, dans deux sites

distincts. Ils disposeront chacun d'une base LDAP, qui se synchronisera en mode miroir.

Dans chaque site, un serveur secondaire va être installé. Il aura pour rôle :

d'assurer l'identification locale des personnels ;

fournir un annuaire ldap local utilisé par les serveurs ou matériels locaux (serveurs bureautiques

et photocopieurs principalement).

Sécurisation des échanges

Les communications entre les serveurs fonctionneront en mode crypté, via le protocole SSL.

Rapidité de mise en œuvre

Avec les serveurs récents, les performances ne justifient plus d'installer une machine physique par

fonction.

Les serveurs déployés dans le cadre de ce projet sont virtualisés. Le choix a été fait de les déployer sous

Vmware Server, en raison de la simplicité d'installation et de gestion.

Deux types de serveurs sont donc déployés :

les serveurs maîtres, dont les configurations sont identiques à quelques détails près ;

les serveurs secondaires, tous identiques, hormis leur nom, leur certificat de cryptage, et bien

évidemment, leur adresse réseau. Ils sont construits à partir d'une image unique.

E. Quinton & D. Olivier – http://www.entraide-info.fr 5

1.2 Le choix de la plate-forme

Nous avons décidé de déployer notre projet en utilisant Ubuntu 10.04 Server. Le choix n'a pas été simple,

mais il a été fait en raison des points suivants :

Ubuntu s'engage à fournir les mises à jour de sécurité et de correction de bogues pour 5 ans

La version Samba fournie est directement compatible avec Windows Sept (ce n'est pas le cas avec

d'autres distributions)

Debian Lenny ne dispose pas nativement d'une version samba suffisamment récente : il faut utiliser

les dépôts backport. Néanmoins, des problèmes techniques lors de l'intégration des machines

dans le domaine nous ont fait abandonner les tests sous cet OS

RedHat est payant... Idem pour Mandriva Server

et puis, on ne peut pas tout tester !

1.3 Les différents serveurs déployés

En tout, 3 types de serveurs vont être déployés :

le serveur maître principal, qui va être utilisé pour réaliser les mises à jour manuelles de l'annuaire

LDAP, et servira de serveur Wins principal. Dans notre document, il s'agit de GIRONDETEST2

Le serveur maître secondaire, en mode miroir du serveur maitre principal. Il prendra le relais en

cas de panne ou d'indisponibilité du serveur maitre principal. Dans notre document, il s'agit de

GIRONDETEST3

Des serveurs secondaires, tous configurés de la même façon. Ils sont bâtis à partir de l'image du

serveur SVGIRSEC

1.4 Quelques remarques

Ce document, une fiche de procédure (how to), un cours ?

Un peu tout ça, mais...

Si vous trouverez un certain nombre d'explications dans ce document,, n'hésitez-pas à prendre du temps

pour comprendre le fonctionnement intrinsèque des différents services déployés en recherchant sur le

net des explications plus complètes.

J'ai essayé de décrire toutes les opérations pour réaliser l'opération. Ce qui m'a pris plusieurs semaines

de travail (à temps partiel, tout de même), avec des essais, des échecs, des changements dans

l'approche générale... Tout est retranscrit ici. Néanmoins, il est fort probable que j'ai passé omis certains

aspects...

Vos remarques, commentaires, suggestions... seront les bienvenues.

Comment a été réalisé ce document ?

Ce document a été élaboré pendant la réalisation de la plate-forme de test. Les deux serveurs maîtres

ont ensuite été déployés en production, le serveur secondaire a été utilisé pour créer les images des

autres serveurs.

Le document est diffusé et corrigé après la mise en production effective : il ne s'agit donc pas (que)

d'une plate-forme de test ou d'un exercice !

La plate-forme de test

Elle a été élaborée en créant un sous-réseau spécifique, pour éviter que les identifications Windows se

télescopent avec la base en production.

L'annuaire de test a été créé à partir d'une extraction de l'annuaire en production.

E. Quinton & D. Olivier – http://www.entraide-info.fr 6

Les conventions de nommage utilisées

Le document est basé sur la migration d'une configuration réelle, dont voici les informations essentielles :

nom du domaine : GIRONDE

base de recherche de l'annuaire LDAP : ou=agriculture,o=gouv,c=fr

Il va de soi que les informations plus précises (SID du domaine, mots de passe...) ont été maquillées.

1.5 Si vous souhaitez réaliser vous-même une telle migration...

Un seul conseil : montez une plate-forme de test ! Ce n'est pas parce que ce document a été réalisé lors

de la mise en place d'une migration réelle que certaines coquilles ne puissent subsister ! Et puis, je ne

suis pas un spécialiste de toutes les technologies présentées : il est possible, voire probable, que vous

arriviez à faire mieux...

Ne venez pas vous plaindre, après avoir migré votre plate-forme, que celle-ci présente des

dysfonctionnements, si vous n'avez pas réalisé les tests adéquats ! Vous êtes prévenus !

1.6 Documentation

La configuration a été mise au point à partir de l'excellent travail publié ici :

http://damstux.free.fr/wiki/index.php?title=PDC_Samba_LDAP pour ce qui concerne la création du

domaine samba,

http://www.zytrax.com/books/ldap/ch7 pour les aspects synchronisation LDAP, ainsi que la doc

officielle Openldap : http://www.openldap.org/doc/admin24/replication.html

N'hésitez-pas non plus à consulter les documentations Apache, Samba (la doc concernant le fichier

smb.conf est particulièrement riche).

2 Avant de commencer

2.1 Récupérer les informations issues de la plate-forme à migrer

Un certain nombre d'informations, issues de l'annuaire LDAP à migrer, sont à consigner avant de

commencer. Vous pouvez toutes les consulter depuis l'interface du logiciel ldap-account-manager (si vous

l'utilisez), dans la vue arborescence. Voici les informations à noter :

la racine de l'annuaire (ou=agriculture,o=gouv,c=fr)

la racine des groupes (ou=group)

la racine des machines (ou=hosts)

la racine des comptes utilisateurs (ou=people)

le SID du domaine (sambaDomainName=NomDomaine, attribut : sambaSID

le mot de passe du compte Manager, qui est utilisé pour gérer l'annuaire. Ca, vous devez le

connaître...

E. Quinton & D. Olivier – http://www.entraide-info.fr 7

3 Installation de Ubuntu

3.1 Installation initiale

L'installation est réalisée de façon classique, depuis une image ISO. Taille de la partition unique : 8 Go.

Pour pouvoir traverser le serveur Proxy, les sources de la distribution (/etc/apt/sources.list) sont

modifiées en changeant les http en ftp. Voici un exemple :

cat /etc/apt/sources.list|grep ^[^#] deb ftp://fr.archive.ubuntu.com/ubuntu/ lucid main restricted deb-src ftp://fr.archive.ubuntu.com/ubuntu/ lucid main restricted deb ftp://fr.archive.ubuntu.com/ubuntu/ lucid-updates main restricted deb-src ftp://fr.archive.ubuntu.com/ubuntu/ lucid-updates main restricted deb ftp://fr.archive.ubuntu.com/ubuntu/ lucid universe deb-src ftp://fr.archive.ubuntu.com/ubuntu/ lucid universe deb ftp://fr.archive.ubuntu.com/ubuntu/ lucid-updates universe deb-src ftp://fr.archive.ubuntu.com/ubuntu/ lucid-updates universe deb ftp://fr.archive.ubuntu.com/ubuntu/ lucid multiverse deb-src ftp://fr.archive.ubuntu.com/ubuntu/ lucid multiverse deb ftp://fr.archive.ubuntu.com/ubuntu/ lucid-updates multiverse deb-src ftp://fr.archive.ubuntu.com/ubuntu/ lucid-updates multiverse deb ftp://security.ubuntu.com/ubuntu lucid-security main restricted deb-src ftp://security.ubuntu.com/ubuntu lucid-security main restricted deb ftp://security.ubuntu.com/ubuntu lucid-security universe deb-src ftp://security.ubuntu.com/ubuntu lucid-security universe deb ftp://security.ubuntu.com/ubuntu lucid-security multiverse deb-src ftp://security.ubuntu.com/ubuntu lucid-security multiverse

Après l'installation, faites une mise à jour :

# apt-get update # apt-get upgrade

puis installez les paquets complémentaires suivants :

# sysv-rc-conf # nscd

3.2 Installer le service ntp

La synchronisation entre les serveurs impose que ceux-ci disposent de la même heure. Nous allons

installer le service ntp :

# apt-get install ntp

Editez ensuite le fichier /etc/ntp.conf, et vérifiez la ligne server, qui doit correspondre à votre serveur de

temps (il peut y en avoir plusieurs, une ligne par serveur).

Mettez manuellement à l'heure votre machine :

# service ntp stop # ntpdate monServeurDeTemps # service ntp start

E. Quinton & D. Olivier – http://www.entraide-info.fr 8

3.3 Configurer un sous-réseau de test

Avant de mettre en production, il est important de tester que tout fonctionne correctement. Comme le

domaine à migrer a le même nom et les mêmes identifiants SID, il faut impérativement cloisonner les

tests dans un sous-réseau non visible du réseau en production.

La solution la plus simple consiste à créer une interface réseau secondaire sur le serveur, et limiter le

fonctionnement de Samba à cette interface.

Pour activer ce sous-réseau, éditez le fichier /etc/network/interfaces :

# The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 10.33.33.20 netmask 255.255.248.0 gateway 10.33.32.1 auto eth0:0 iface eth0:0 inet static address 192.168.1.1 netmask 255.255.255.0

Le cas échéant, vérifier que ce n'est pas eth1 qui est reconnu : si c'est le cas, adaptez en conséquence...

Pour visualiser les interfaces réseau reconnues dans votre machine :

# ifconfig -a

Pour activer directement l'interface eth0:0 :

# ifconfig eth0:0 192.168.1.1 netmask 255.255.255.0

Nous avons ainsi défini une nouvelle adresse réseau différente du réseau de production : 192.168.1.1.

Samba sera configuré pour utiliser uniquement cette adresse, et donc ce sous-réseau.

3.4 Installation des paquets spécifiques nécessaires

Pour tous les serveurs

# apt-get install samba smbclient samba-doc smbldap-tools winbind # apt-get install slapd ldap-utils libnss-ldap ssl-cert

Arrêter immédiatement les services qui ont pu se lancer automatiquement :

# service samba stop # service winbind stop # service slapd stop

Supprimez le démarrage automatique de winbind (nous n'avons pas besoin que le service fonctionne)1, à

partir de l'interface :

# sysv-rc-conf

1Winbind est utilisé pour faire la correspondance entre les identifiants des comptes Windows et les comptes Linux.

Dans une architecture répartie, il est fortement conseillé que les identifiants des comptes soient identiques sur

tous les serveurs, ce que ne permet winbind qu'à condition de le configurer pour qu'il stocke les identifiants

dans un annuaire ldap... Comme nous disposons déjà d'un annuaire ldap, il semble plus cohérent de se passer

de winbind et de travailler directement à partir de notre annuaire d'identification.

Par contre, il faut quand même installer le paquet winbind qui contient des outils dont nous aurons besoin par la

suite.

E. Quinton & D. Olivier – http://www.entraide-info.fr 9

Pour les serveurs maîtres

Nous devons installer Apache pour faire fonctionner Ldap Account Manager :

# apt-get install apache2-mpm-prefork apache2-utils apache2.2-bin apache2.2-common libapache2-mod-php5 php5-ldap

4 Gestion de la sécurité – mise en place d'une couche TLS

Pour éviter que le dialogue entre les serveurs LDAP puisse être capté, et notamment lors des phases de

changement de mot de passe, il est conseillé de crypter les échanges entre le serveur maître et les

serveurs esclaves.

Pour cela, nous allons mettre en place la couche TLS en utilisant OpenSSL.

4.1 Documentation

Quelques liens qui m'ont permis de mettre au point la configuration :

http://www-lor.int-evry.fr/~michel/LDAP/SASL/TLS-SSL.html

mais également sur la documentation officielle openldap :

http://www.openldap.org/doc/admin24/

Et sur le cryptage SSL :

http://www.commentcamarche.net/contents/crypto/certificat.php3

http://fr.wikipedia.org/wiki/X.509

http://fr.wikipedia.org/wiki/Certificat_électronique

http://fr.wikipedia.org/wiki/Cryptographie_asymétrique

http://www.frpki.org/index.php?/openssl_base.html

4.2 Rappel sur le cryptage SSL

Le cryptage SSL (remplacé depuis par TLS) est basé sur l'utilisation du cryptage asymétrique. Son

principe est le suivant.

Deux clés sont générées. Un message crypté avec une des deux clés peut être déchiffré avec l'autre. Il

suffit de transmettre une des deux clés à son correspondant pour que celui-ci puisse, non seulement

décrypter le message que nous venons de lui envoyer, mais également crypter un message que nous

pourrons décrypter. Dans la pratique, une seule des deux clés est transmise à l'ensemble des

correspondants, la clé publique. L'autre clé est conservée précieusement et ne doit jamais être

transmise, la clé privée.

Dans un échange, il est important de pouvoir s'assurer que le correspondant est bien celui qu'il dit être.

Pour cela, la clé publique est signée par une autorité reconnue, en qui on peut faire confiance : le tiers de

confiance. La clé publique est ainsi transmise à l'intérieur d'un certificat, qui contient non seulement la

clé publique, mais également le nom du serveur à laquelle elle se réfère (pour une clé correspondant à un

serveur), le nom de l'autorité qui a signé le certificat et la signature du certificat.

La signature du certificat fonctionne ainsi : l'ensemble des informations du certificat est haché

(compressé en une empreinte unique). Cette empreinte est cryptée avec la clé privée du certificateur, et

est ensuite rajoutée dans le certificat.

Pour s'assurer de la validité de la clé publique, il faut donc extraire l'empreinte cryptée, la déchiffrer avec

la clé publique du certificateur, puis la comparer avec l'empreinte que nous pouvons calculer.

E. Quinton & D. Olivier – http://www.entraide-info.fr 10

L'ensemble de ces mécanismes sont décrits dans une norme, la norme X.509.

Pour résumer :

une clé privée, associée à une clé publique, est créée sur chaque machine. Elle ne doit jamais être

transmis à quiconque ;

la clé publique est intégrée dans une demande de signature, envoyée à l'autorité de certification ;

L'autorité de certification crée le certificat à partir de la clé publique et des informations transmises

lors de la demande, puis calcule l'empreinte du certificat, et crypte cette empreinte avec sa clé

privée. Cette empreinte cryptée est rajoutée au certificat, qui est transmis à l'ensemble des

personnes ou machines qui en ont besoin ;

l'autorité de certification transmet sa clé publique (en général appelée CAkey), qui va servir à

décrypter la signature du certificat.

Nous avons donc besoin de quatre objets :

la clé privée de l'autorité racine, qui va être utilisée pour signer les clés publiques des serveurs ;

le certificat de l'autorité de certification, qui contient la clé publique de l'autorité racine, et qui va

être utilisée pour décrypter les signatures des certificats ;

la clé privée du serveur, qui est unique et conservée uniquement sur le serveur ;

le certificat du serveur, qui comprend la clé publique, et qui est signé par l'autorité racine.

4.3 Générer les certificats

Deux possibilités s'offrent à nous : soit nous signons nous-mêmes nos clés publiques, soit nous faisons

appel à une autorité de certification pour réaliser cette signature.

Pour commencer, nous allons signer nous-mêmes nos clés publiques. C'est la seule solution si vous ne

disposez pas d'une autorité de certification.

Créer le certificat racine

Créons la clé privée de l'autorité de certification racine :

# openssl req -new -x509 -keyout cacert.pem -out cacert.pem -days 3650

Lors de la procédure, le programme demande un mot de passe : c'est celui qui devra être fourni à chaque

demande de signature d'un certificat.

Nous allons maintenant générer le certificat de l'autorité de certification, qui va être utilisé pour valider

les certificats des serveurs ; ce certificat contient donc la clé publique de l'autorité de certification :

# openssl x509 -in cacert.pem -out cacert.crt

Créer la clé privée

Nous allons générer la clé privée du serveur :

# openssl genrsa -out server.key 1024

Puis nous la protégeons pour éviter que quiconque, à part root ou les process autorisés, puissent y

accéder :

# chmod 600 server.key

E. Quinton & D. Olivier – http://www.entraide-info.fr 11

Créer la requête de certificat qui sera validée par l'autorité racine

A partir de la clé privée, nous allons préparer une requête qui sera transmise à l'autorité de certification.

Cette requête contient non seulement la clé publique, mais également un certain nombre d'informations,

dont le nom du serveur.

# openssl req -new -key server.key -out server.csr

Une fois la commande lancée, un certain nombre de champs vont devoir être renseignés. Les champs

laissés à vide doivent comporter un point (.).

Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:. Locality Name (eg, city) []:. Organization Name (eg, company) [Internet Widgits Pty Ltd]: MA SOCIETE Organizational Unit Name (eg, section) []: . Common Name (eg, YOUR name) []:girondetest2 Email Address []: . Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []:

Les deux derniers champs sont laissés à vide.

Attention : le Common Name doit impérativement correspondre au nom du serveur qui va être utilisé

dans les requêtes. Si vous utilisez un serveur DNS, vous devrez donner le nom complet. Sinon, indiquez

uniquement le nom de la machine (et renseignez, sur les clients, le fichier hosts pour faire la

correspondance). De nombreux soucis de fonctionnement de la couche TLS sont liés à une gestion des

noms erronée...

Signer le certificat localement

Si vous n'utilisez pas les services d'une autorité d'enregistrement, vous devez générer vous-même le

certificat :

# openssl x509 -req -days 3650 -in server.csr -CA cacert.pem -out server.crt

Si vous avez un message d'erreur du type :

# cacert.srl: No such file or directory

il faut rajouter l'option suivante : -CAcreateserial, qui va créer le fichier contenant le numéro de série. La

commande devient donc :

# openssl x509 -req -in server.csr -CA cacert.pem -CAkey cacert.pem -out server.crt -Cacreateserial

Ne lancez cette commande qu'une seule fois...

Faire signer le certificat par une autorité d'enregistrement

Si vous disposez d'une autorité de certification, envoyez le fichier qui vient d'être généré (server.csr) pour

recevoir, en retour, la clé publique. En général, les champs Organization Name et Organizational unit

name vous sont imposés : consultez votre autorité de certification pour connaître les bonnes

informations à fournir.

Il vous faut également récupérer le certificat racine (équivalent du cacert.crt, la clé publique de l'autorité

de certification) qui permettra de vérifier la validité du certificat qui vous sera fourni par l'autorité de

certification.

E. Quinton & D. Olivier – http://www.entraide-info.fr 12

Quelques commandes pour consulter les clés et les certificats

Pour visualiser le contenu d'une clé privée :

# openssl rsa -in server.key -text

Pour visualiser la clé publique associée :

# openssl rsa -in server.key -pubout

Pour visualiser un certificat :

# openssl x509 -in server.crt -text -noout

Pour vérifier la validité du certificat :

# openssl verify -CAfile cacert.crt server.crt

4.4 Intégrer les certificats dans ldap

Recopiez la clé publique (server.crt), la clé privée (server.key) et le certificat racine (cacert.crt) dans le

dossier /etc/ldap/. Modifiez les droits pour que :

openldap puisse accéder aux certificats ;

la clé privée soit en mode 600.

Editez le fichier /etc/ldap/ldap.conf, et rajoutez la ligne (ou modifiez-là) :

TLS_CACERT /etc/ldap/cacert.crt

qui va permettre à tous les processus LDAP de vérifier les clés à partir du certificat racine.

4.5 Intégrer les certificats dans webmin

Par défaut, webmin génère ses propres certificats. Il est possible de lui faire utiliser les certificats que

nous venons de générer.

Pour cela :

connectez-vous à webmin (https://serveur:10000)

Choisissez webmin > webmin Configuration

choisissez SSL Encryption, puis positionnez-vous dans l'onglet SSL Settings(l'onglet par défaut)

Sélectionnez sur le serveur l'emplacement de votre clé privée, puis cochez Certificate file : separate file, et indiquez l'emplacement de votre clé publique

Validez : le nouveau certificat va être utilisé à la place de l'ancien.

4.6 Intégrer les certificats dans Apache

Pour que les accès à l'annuaire LDAP à partir de Ldap Account Manager soient protégés, nous aurons

besoin de basculer la liaison en mode SSL. Là aussi, nous pouvons intégrer les certificats que nous

venons de générer dans Apache.

Recopiez les certificats dans le dossier /etc/apache2, puis éditez le fichier /etc/apache2/sites-

available/default-ssl :

SSLCertificateFile /etc/apache2/server.crt SSLCertificateKeyFile /etc/apache2/server.key

Activez le support ssl dans Apache :

# a2enmod ssl

# a2ensite default-ssl

Redémarrez ensuite le service apache :

# service apache2 restart

E. Quinton & D. Olivier – http://www.entraide-info.fr 13

4.7 Une alternative : stocker les clés privées et publiques à un seul endroit

Les certificats sont utilisés par de nombreux processus, et leur emplacement décrit dans de nombreux

fichiers.

Plutôt que de recopier les certificats dans chaque dossier spécifique d'un service, il peut être judicieux

de les stocker à un seul endroit.

Pour cela, recopiez la clé primaire dans le dossier /etc/ssl/private, et donnez-lui les droits suivants :

# chmod 640 /etc/ssl/private/server.key # chown root:ssl-cert /etc/ssl/private/server.key

Recopiez la clé publique et le certificat racine dans /etc/ssl/certs, et vérifiez que les fichiers sont bien

en mode 644.

Nous allons créer un lien vers la valeur de hachage du fichier cacert.crt (la clé racine) :

# cd /etc/ssl/certs # ln -s cacert.crt `openssl x509 -hash -in cacert.crt -noout`.0

Ce lien va permettre de retrouver très rapidement la clé de l'autorité de certification pour pouvoir vérifier

la clé publique. L'empreinte est calculée à partir de la valeur Subject du certificat, qui figure dans notre

certificat public et dans le certificat de l'autorité de certification.

Notre clé privée n'est accessible qu'au compte root et au groupe ssl-cert. Pour que le service Ldap puisse

accéder à cette clé, nous allons intégrer le compte openldap dans le groupe ssl-cert :

# usermod -a -G ssl-cert openldap

Il ne reste plus qu'à modifier les chemins vers les certificats, par exemple, dans le fichier

/etc/ldap/slapd.conf :

TLSCertificateFile /etc/ssl/certs/server.crt TLSCertificateKeyFile /etc/ssl/private/server.key TLSCACertificateFile /etc/ssl/certs/cacert.crt

4.8 Si vous avez besoin de générer plusieurs certificats

Il est fortement conseillé de n'avoir qu'un seul certificat racine : cela simplifie grandement la

configuration des clients.

De fait, l'étape de génération du certificat racine (paragraphe 1 Créer le certificat racine, page 10) n'est à

réaliser qu'une seule fois.

Sur les autres serveurs, après avoir généré la clé privée et la demande de clé publique, il faut :

recopier le fichier .csr (la demande de clé publique) sur le premier serveur

générer le certificat à partir de ce fichier .csr sur ce serveur

recopier le certificat généré (fichier .crt) sur le serveur pour lequel nous générons une nouvelle clé.

Ainsi, le même certificat racine sera utilisé pour valider l'ensemble des certificats de votre infrastructure.

E. Quinton & D. Olivier – http://www.entraide-info.fr 14

5 Configurer l'annuaire LDAP

5.1 Préambule

Nous allons configurer notre annuaire LDAP en respectant quelques points :

la configuration est décrite dans le fichier slapd.conf, et non pas dans le dossier slapd.d, qui semble

être la nouvelle méthode de configuration, depuis la version 2.4. Cette approche a l'avantage de la

continuité par rapport aux anciennes configurations, et est plus simple à mettre en place. Elle

présente toutefois l'inconvénient de nécessiter un redémarrage du service à chaque modification.

La réplication vers les annuaires clients est réalisée par l'intermédiaire d'un compte dédié à cet

usage, ici cn=Replicator,ou=agriculture,o=gouv,c=fr. Le mot de passe de ce compte est défini et

doit être différent du mot de passe du compte manager.

5.2 Récupération du fichier LDIF contenant l'ensemble de l'annuaire

Sur un des serveurs LDAP en production (de préférence en version CS4, que le serveur soit maître ou

non), lancez la commande suivante :

# slapcat -l /root/prod.ldif

Recopiez ce fichier sur le serveur maître.

5.3 Configuration de base

Cette partie de la configuration est valable pour tous les serveurs LDAP.

Modifier les paramètres de lancement de openldap

Editez le fichier /etc/default/slapd, et modifiez les entrées suivantes :

SLAPD_CONF=/etc/ldap/slapd.conf SLAPD_SERVICES="ldap://127.0.0.1:389/ ldapi:/// ldaps:///"

Configurer le fichier slapd.conf

Supprimez (renommez) le dossier suivant :

# mv /etc/ldap/slapd.d /etc/ldap/slapd.d.ori

5.3.1.1 Rajouter le schéma samba.schema

Il faut récupérer le schéma Samba pour l'intégrer dans l'annuaire LDAP :

# gunzip -c /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz > /etc/ldap/schema/samba.schema

5.3.1.2 Modifier le fichier slapd.conf

Nous allons d'abord crypter la clé utilisée pour le compte Manager. Pour cela, tapez la commande

suivante :

# slappasswd -h {SSHA} New password: Re-enter new password: {SSHA}Qhxxxxx

Tapez alors le mot de passe, puis récupérez la valeur fournie par le programme. Cette clé va être insérée

dans le fichier slapd.conf.

E. Quinton & D. Olivier – http://www.entraide-info.fr 15

Editez le fichier /etc/ldap/slapd.conf (en gras, les modifications liée à l'implémentation) :

include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/samba.schema pidfile /var/run/slapd/slapd.pid argsfile /var/run/slapd/slapd.args loglevel none modulepath /usr/lib/ldap moduleload back_hdb sizelimit 500 tool-threads 1 TLSCertificateFile /etc/ldap/server.crt TLSCertificateKeyFile /etc/ldap/server.key TLSCACertificateFile /etc/ldap/cacert.crt backend hdb database hdb suffix "ou=agriculture,o=gouv,c=fr" rootdn "cn=Manager,ou=agriculture,o=gouv,c=fr" rootpw {SSHA}motDePasseCode directory "/var/lib/ldap" dbconfig set_cachesize 0 2097152 0 dbconfig set_lk_max_objects 1500 dbconfig set_lk_max_locks 1500 dbconfig set_lk_max_lockers 1500 index objectClass,entryCSN,entryUUID eq index sambaSID eq index sambaDomainName eq index sambaPrimaryGroupSID eq index cn,sn,uid pres,sub,eq index uidNumber,gidNumber,memberUID pres,eq index uniqueMember eq index sambaGroupType eq index sambaSIDList eq lastmod on checkpoint 512 30 access to attrs=userPassword,shadowLastChange by dn="cn=Manager,ou=agricuture,o=gouv,c=fr" write by anonymous auth by self write by * none access to dn.base="" by * read access to * by dn="cn=Manager,ou=agriculture,o=gouv,c=fr" write by dn.base="cn=Replicator,ou=agriculture,o=gouv,c=fr" write by * read limits dn.exact="cn=Replicator,ou=agriculture,o=gouv,c=fr" time.soft=unlimited time.hard=unlimited size.soft=unlimited size.hard=unlimited

Vérifiez les droits d'accès au fichier :

# chmod 640 /etc/ldap/slapd.conf # chown openldap:openldap /etc/ldap/slapd.conf

5.3.1.3 Supprimer la base ldap existante

Au cas où, il faut supprimer toute trace d'enregistrements dans la base ldap pré-existante :

# cd /var/lib/ldap # rm -f *

Configurer Linux pour qu'il puisse utiliser les comptes Ldap

La couche NSSWITCH permet de rendre accessibles les comptes de l'annuaire LDAP dans le serveur.

Pour cela :

E. Quinton & D. Olivier – http://www.entraide-info.fr 16

Editez le fichier /etc/nsswitch.conf1 :

passwd: compat ldap group: compat ldap shadow: compat hosts: files dns wins

Editez le fichier /etc/ldap.conf :

base ou=agriculture,o=gouv,c=fr uri ldaps:///girondetest2.agriculture.gouv.fr ssl start_tls ssl on tls_checkpeer yes tls_cacertfile /etc/ldap/cacert.crt

Pour vérifier que la couche NSS fonctionne, lancez les commandes :

# getent passwd # getent group

qui doivent vous afficher d'abord les comptes de l'annuaire LDAP, puis les groupes.

Remarque : deux fichiers ldap.conf existent sur le système :

le fichier /etc/ldap.conf est utilisé par la couche NSS pour gérer l'appariement des comptes ldap

avec les comptes linux

le fichier /etc/ldap/ldap.conf est utilisé par toutes les commandes ldap, par exemple ldapsearch.

Leur configuration (syntaxe) est différente, et leur usage aussi...

1Attention : toute modification de nsswitch.conf peut entraîner de grands moments de solitude... En effet, si la

configuration est erronée, vous n'aurez plus la possibilité de vous connecter au serveur. Avant toute opération,

assurez-vous d'avoir au moins 2 consoles ouvertes en parallèle, une vous permettant de revenir à la

configuration initiale en cas de problème. Pensez également, le cas échéant, à faire une sauvegarde des fichiers

de configuration...

E. Quinton & D. Olivier – http://www.entraide-info.fr 17

5.4 Configuration spécifique aux serveurs maîtres

Intégrer l'export du ldap CS3-CS4

Cette opération n'est à faire que sur un seul serveur, le serveur maître principal. Les autres serveurs

récupèreront l'annuaire automatiquement par l'intermédiaire de syncrepl.

Intégrons le fichier ldif généré précédemment. Pour cela :

# cd /var/lib/ldap # rm -f * # slapadd -l /root/prod.ldif # chown -R openldap:openldap .

Pour vérifier que l'import s'est bien déroulé, vous pouvez lancer la commande :

# ls -l total 20716 -rw-r--r-- 1 openldap openldap 2048 oct 26 14:34 alock -rw------- 1 openldap openldap 430080 oct 26 14:39 cn.bdb -rw------- 1 openldap openldap 8192 oct 26 14:44 __db.001 -rw------- 1 openldap openldap 2629632 oct 26 14:44 __db.002 -rw------- 1 openldap openldap 98304 oct 26 14:39 __db.003 -rw------- 1 openldap openldap 565248 oct 26 14:44 __db.004 -rw------- 1 openldap openldap 24576 oct 26 14:39 __db.005 -rw-r--r-- 1 openldap openldap 96 oct 25 16:16 DB_CONFIG -rw------- 1 openldap openldap 167936 oct 26 14:39 dn2id.bdb -rw------- 1 openldap openldap 24576 oct 26 12:57 gidNumber.bdb -rw------- 1 openldap openldap 114688 oct 26 11:17 givenName.bdb -rw------- 1 openldap openldap 2326528 oct 26 14:39 id2entry.bdb -rw------- 1 openldap openldap 10485749 oct 25 16:17 log.0000000001 -rw------- 1 openldap openldap 3682705 oct 26 14:39 log.0000000002 -rw------- 1 openldap openldap 249856 oct 26 11:17 mail.bdb -rw------- 1 openldap openldap 28672 oct 26 11:56 memberUid.bdb -rw------- 1 openldap openldap 131072 oct 26 14:39 objectClass.bdb -rw------- 1 openldap openldap 40960 oct 26 14:38 sambaSID.bdb -rw------- 1 openldap openldap 282624 oct 26 14:39 sn.bdb -rw------- 1 openldap openldap 40960 oct 26 12:57 uid.bdb -rw------- 1 openldap openldap 45056 oct 26 12:57 uidNumber.bdb -rw------- 1 openldap openldap 8192 oct 26 11:56 uniqueMember.bdb

et visualiser que l'import s'est bien déroulé. Vérifiez également les droits sur les fichiers, qui doivent être

en mode 600 et détenus par le compte openldap.

Vous pouvez maintenant démarrer le serveur ldap, puis vérifier qu'il fonctionne bien :

# /etc/init.d/slapd start # ps -ef|grep slapd # openldap 29195 1 0 14:34 ? 00:00:02 /usr/sbin/slapd -g openldap -u openldap -f /etc/ldap/slapd.conf

Vérifiez que le service slapd répond bien en mode ldap et ldaps :

# netstat -antu|grep 389 tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN tcp 0 0 192.168.1.10:389 192.168.1.11:35324 ESTABLISHED tcp6 0 0 :::389 :::* LISTEN # netstat -antu|grep 636 tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN tcp6 0 0 :::636 :::* LISTEN

Lancez la recherche en mode non crypté :

# ldapsearch -x -b "ou=agriculture,o=gouv,c=fr" "(objectclass=*)" -H ldap://localhost

puis en mode crypté :

# ldapsearch -x -b "ou=agriculture,o=gouv,c=fr" "(objectclass=*)" -H ldaps://localhost

Si, en mode crypté, la commande ne répond pas correctement, essayez avec le nom du serveur (p. e.,

girondetest2) avant de vous affoler : le certificat que nous avons généré l'est au nom du serveur et non

E. Quinton & D. Olivier – http://www.entraide-info.fr 18

pas localhost, et le certificat est vérifié en comparant le nom présenté par rapport au nom du serveur

interrogé...

Dans les deux cas, vous devez récupérer les 500 premiers enregistrements de l'annuaire.

Configuration de la réplication en mode miroir

Les deux serveurs maîtres vont fonctionner en mode miroir : toute modification apportée à l'un des

serveurs doit être répliquée sur le second.

Le fichier /etc/ldap/slapd.conf est modifié, en rajoutant les lignes suivantes :

Avant la ligne :

database hdb

Rajouter :

ServerID 2

Le ServerID doit être unique pour votre réseau ! Le serveur maitre principal aura donc le numéro 1, le

maitre secondaire le numéro 2.

Puis, en fin de fichier :

syncrepl rid=001 provider=ldaps://girondetest2 tls_cacert=/etc/ldap/cacert.crt type=refreshAndPersist retry="60 5 300 +" searchbase="ou=agriculture,o=gouv,c=fr" scope=sub schemachecking=off bindmethod=simple binddn="cn=Replicator,ou=agriculture,o=gouv,c=fr" credentials="motDePasseReplicator" mirrormode true moduleload syncprov overlay syncprov syncprov-checkpoint 100 10 syncprov-sessionlog 100

Quelques explications :

provider : le nom de l'autre serveur maître (identique à la valeur présente dans le certificat

numérique)

tls_cacert : le chemin vers le certificat racine, qui va permettre de valider le certificat présenté par

le serveur distant. Ce paramètre n'est pas forcément nécessaire ici, s'il a été renseigné dans le

fichier /etc/ldap/ldap.conf

type : refreshOnly : la mise à jour est réalisée à intervalle régulier (champ interval à insérer).

RefreshAndPersist : la connexion est maintenue avec le serveur maître, les réplications sont

réalisées au fil de l'eau. Le champ retry permet de définir ce qu'il faut faire quand la connexion est

rompue. Ici, un essai toutes les 60 secondes pendant 5 fois, puis toutes les 300 secondes jusqu'à

la reprise de la connexion

schemachecking : si à on, le programme vérifie avant la réplication que le schéma répliqué depuis

le maître existe bien sur l'esclave

binddn : le compte utilisé pour la réplication. Le mot de passe est défini en clair dans le champ

credentials.

mirrormode : le paramètre doit impérativement être à true pour que le serveur puisse réaliser des

modifications.

Si vous ne disposez pas d'un serveur DNS, il est possible que vous soyez obligés de modifier le fichier

/etc/hosts, pour que le nom du serveur distant soit associé à son adresse IP.

Faites la modification sur les deux serveurs. Relancez le serveur maître principal, puis lancez le maître

secondaire : si tout se passe bien, l'annuaire va être recopié.

E. Quinton & D. Olivier – http://www.entraide-info.fr 19

Sur chaque serveur maitre, la commande suivante vous permet de vérifier que la connexion syncrepl est

bien active en mode ldaps :

# netstat -antu|grep 636 tcp 0 0 0.0.0.0:636 0.0.0.0:* LISTEN tcp 0 0 192.168.1.10:636 192.168.1.11:46851 ESTABLISHED

5.5 Configuration spécifique des serveurs secondaires

Nous allons simplement rajouter les commandes permettant de récupérer les données depuis les deux

serveurs maîtres. Attention : ce n'est pas parce que les deux maîtres sont en miroir qu'il ne faut pas

configurer la synchronisation vers les deux maîtres : en effet, un maître ne distribue que les modifications

dont il est l'auteur.

Nous rajoutons donc en fin du fichier /etc/ldap/slapd.conf les commandes suivantes :

syncrepl rid=001 provider=ldaps://girondetest1.local.draf-aquitaine.agri tls_cacert=/etc/ssl/certs/igca-racine-serveur.crt type=refreshAndPersist retry="60 5 300 +" searchbase="ou=agriculture,o=gouv,c=fr" scope=sub schemachecking=off bindmethod=simple binddn="cn=Replicator,ou=agriculture,o=gouv,c=fr" credentials="motdepasseReplicator" syncrepl rid=002 provider=ldaps://girondetest2.local.draf-aquitaine.agri tls_cacert=/etc/ldap/cacert.crt type=refreshAndPersist retry="60 5 300 +" searchbase="ou=agriculture,o=gouv,c=fr" scope=sub schemachecking=off bindmethod=simple binddn="cn=Replicator,ou=agriculture,o=gouv,c=fr" credentials="motdepasseReplicator"

5.6 Quelques commandes utiles pour manipuler un annuaire LDAP...

Afficher un enregistrement

# ldapsearch -x -b "ou=agriculture,o=gouv,c=fr" "(uid=test4)" -H ldaps://girondetest2

Modifier un enregistrement

créez un fichier modif.ldif :

dn: uid=test3,ou=People,ou=agriculture,o=gouv,c=fr changetype: modify replace: givenName givenname: tito

Lancez ensuite la commande : # ldapmodify -f /root/modif.ldif -D cn=manager,ou=agriculture,o=gouv,c=fr -W

Le programme demandera le mot de passe manager (option -W), puis réalisera l'opération.

Ces deux commandes sont très utiles pour vérifier que les synchronisations/réplications fonctionnent

correctement... N'hésitez pas à tester dans tous les sens.

E. Quinton & D. Olivier – http://www.entraide-info.fr 20

Supprimer un enregistrement

# ldapdelete "cn=Domain Users,ou=group,ou=agriculture,o=gouv,c=fr" -H ldap://localhost -D cn=manager,ou=agriculture,o=gouv,c=fr -W

Cette commande va supprimer l'enregistrement « Domain Users » dans la branche group.

5.7 Configurer ldap-account-manager - LAM

Ldap-account-manager (LAM) est un outil préconisé par le projet SAMBA pour gérer les comptes LDAP du

domaine. Un paquetage DEB est fourni par Ubuntu, mais je vous déconseille de l'utiliser, j'ai rencontré

des problèmes dans son utilisation. De plus, la version disponible sur le site est plus récente que celle

fournie par Ubuntu.

Récupérer et installer LAM

Depuis le site http://www.ldap-account-manager.org, téléchargez le fichier tar.gz (source code).

Décompressez-le dans le dossier /var/www/

Créez ensuite un lien symbolique :

# cd /var/www/ # ln -s ldap-account-manager-3.2.0/ lam

Modifiez ensuite les droits :

# chmod -R o-r,o-w,o-x dap-account-manager-3.2.0 # chown -R www-data dap-account-manager-3.2.0

Dans un navigateur, testez le fonctionnement :

http://serveur/lam/

Vous devez arriver à la page de login.

Activer le mode SSL pour l'accès à LAM

Nous allons rediriger tout le trafic web vers le mode SSL, pour que les modifications, et notamment de

mot de passe, ne puissent être captées.

Il existe de nombreuses méthodes. Voici celle qui permet de rediriger tout le trafic web en mode SSL.

Vérifiez que vous avez bien intégré les certificats Apache, comme décrit dans le paragraphe F

Intégrer les certificats dans Apache, page 12.

Modifiez le fichier /etc/apache2/sites-available/default, et rajoutez les lignes suivantes dans la

section <VirtualHost> :

RewriteEngine on RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]

Redémarrez ou rechargez Apache pour que les nouveaux paramètres soient pris en compte : # service apache2 restart

Maintenant, l'ensemble des flux http sera redirigé en https.

Récupérer la configuration de LAM

Depuis l'ancien serveur hébergeant LdapAccountManager, récupérez le fichier contenant la configuration

de lam, dans le dossier lam/config (en principe, nom_du_domaine.conf). Recopiez-le dans le dossier

config, et donnez-lui les droits :

# chown www-data domaine.conf

Récupérez également le fichier config.cfg.

E. Quinton & D. Olivier – http://www.entraide-info.fr 21

Vérifier la configuration du fichier domaine.conf

Editez le fichier récupéré. Vérifiez au moins les informations suivantes :

serverURL: ldap://localhost admins: cn=Manager,ou=agriculture,o=gouv,c=fr passwd: {SSHA}mpcI9EM treesuffix: ou=agriculture,o=gouv,c=fr defaultLanguage: fr_FR.utf8:UTF-8:Français (France) activeTypes: user,group,host,smbDomain

Editer ensuite le fichier config.cfg, et mettez par défaut le domaine que l'on vient de rajouter :

default: gironde

Configurer LAM

Connectez-vous au profil serveur, puis :

5.7.1.1 Editer le profil par défaut

Cliquez sur le bouton Outils (en haut à droite), puis Editeur de profils. Modifiez le profil par défaut des

utilisateurs :

groupe primaire : sambausers

groupes supplémentaires : draf répertoire utilisateur /home/$user

Groupe Samba3 :

automatically add this extension : coché

date expiration du compte : 1/1/2030

script de connexion : draf.bat

groupe windows : Utilisateurs du domaine

5.7.1.2 Editer les paramètres généraux du domaine

Connectez-vous à l'interface, choisissez Domaines Samba, modifier le domaine, et indiquez au moins les

informations suivantes :

longueur de mot de passe minimum : 8

longueur de l'historique des mots de passe : 15

longévité de mot de passe minimum : 0 (les utilisateurs peuvent changer immédiatement leur mot

de passe)

longévité de mot de passe maximum : 15552000, ce qui correspond à 180 jours (exprimé en

secondes)

durée de blocage : 10

raz du temps après blocage : 5

Et pour travailler sur les deux serveurs maîtres...

Si vous disposez d'un serveur web « central », vous pouvez installer le programme LAM sur ce serveur, et

créer deux profils serveurs différents : l'un pointant vers le premier serveur, l'autre vers le second. Ainsi,

en cas de panne du serveur primaire, vous pourrez continuer à gérer votre annuaire en sélectionnant le

second profil.

Pour cela, recopiez le fichier domaine.conf en domaine-2.conf, et éditez le second fichier en modifiant

l'adresse du serveur LDAP.

E. Quinton & D. Olivier – http://www.entraide-info.fr 22

5.8 En cas de problème avec un compte...

Si vous avez intégré un annuaire LDAP un peu ancien, il est possible que certains comptes de login ne

fonctionnent plus correctement (impossibilité de se connecter, de changer le mot de passe...). Il va falloir

le recréer : mais si vous ne faites pas attention, l'utilisateur va se retrouver avec un nouveau compte, et

va devoir reconfigurer sa session Windows : pas sûr qu'il soit très content...

Nous allons donc recréer son compte à l'identique. Pour cela, connectez-vous à LAM, puis notez

l'ensemble des informations de l'utilisateur, et en particulier:

onglet Personnel : toutes les informations...

onglet Unix : nom d'utilisateur, nom courant, et surtout UID

Editez les groupes, et notez les groupes complémentaires où l'utilisateur est présent

onglet samba : date d'expiration du compte, script de connexion, voire d'autres informations si

vous les utilisez habituellement (machines de connexion, heures...).

Attention : l'export PDF, proposé par LAM, ne suffit pas ! Il ne comprend notamment pas l'UID, qui est

indispensable...

Vous pouvez maintenant supprimer le compte, puis le recréer. L'information essentielle, vous l'avez

compris, c'est L'UID : en remettant le même, les machines Windows ne se rendront pas compte que le

login a été recréé...

6 Configuration de samba

Nous avons deux types de serveurs : les serveurs maîtres, et les serveurs secondaires. Les serveurs

maîtres sont tous les deux contrôleurs principaux du domaine et serveurs wins : en cas de panne du

premier, le second prend le relais, et reconstruit au besoin sa base wins.

Les serveurs secondaires Samba vont utiliser par défaut l'annuaire LDAP des maîtres, pour que les

modifications des mots de passe puissent être prises en compte : dans la configuration LDAP que nous

avons mise en place, les serveurs secondaires LDAP ne sont pas capables de modifier une information.

L'annuaire LDAP installé sur ces serveurs va être utilisé en lecture par les serveurs bureautiques locaux

pour la gestion des accès aux ressources, et servira de secours en cas de panne du réseau étendu.

E. Quinton & D. Olivier – http://www.entraide-info.fr 23

6.1 Configuration commune à tous les serveurs

Configuration des smbldap-tools

Les smbldap-tools sont des scripts mis au point par IDEALX, qui permettent de réaliser des opérations

dans l'annuaire LDAP depuis la ligne de commande, mais surtout depuis samba.

Pour pouvoir les utiliser, il convient auparavant de les paramétrer. Créez le fichier /etc/smbldap-

tools/smbldap.conf par la commande suivante :

# gunzip /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz -c > /etc/smbldap-tools/smbldap.conf

puis adaptez les informations suivantes (en gras) :

SID="S-1-5-21-780963018-3475948656-12345678" sambaDomain="GIRONDE" slaveLDAP="127.0.0.1" slavePort="389" masterLDAP="127.0.0.1" masterPort="389" ldapTLS="0" verify="require" cafile="/etc/smbldap-tools/ca.pem" clientcert="/etc/smbldap-tools/smbldap-tools.pem" clientkey="/etc/smbldap-tools/smbldap-tools.key" suffix="ou=agriculture,o=gouv,c=fr" dn="cn=Manager,ou=agriculture,o=gouv,c=fr" usersdn="ou=People,${suffix}" computersdn="ou=Hosts,${suffix}" groupsdn="ou=Group,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" scope="sub" hash_encrypt="SSHA" crypt_salt_format="%s" userLoginShell="/bin/bash" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" defaultMaxPasswordAge="180" userSmbHome= userProfile= userHomeDrive="L:" userScript="logon.bat" mailDomain="idealx.com" with_smbpasswd="0" smbpasswd="/usr/bin/smbpasswd" with_slappasswd="0" slappasswd="/usr/sbin/slappasswd"

Editez ensuite le fichier /etc/smbldap-tools/smbldap_bind.conf :

slaveDN="cn=Manager,ou=agriculture,o=gouv,c=fr" slavePw="motDePasse" masterDN="cn=Manager,ou=agriculture,o=gouv,c=fr" masterPw="motDePasse"

Et protégez le fichier (le mot de passe est en clair) :

# chmod 600 /etc/smbldap-tools/smbldap_bind.conf

E. Quinton & D. Olivier – http://www.entraide-info.fr 24

Reconfigurer le ldap pour qu'il soit pleinement compatible avec la version courante

En raison des modifications liées à la structure de l'annuaire LDAP, il n'est pas impossible que certaines

informations manquent dans l'annuaire LDAP pour que samba et les outils SMBLDAP fonctionnent

correctement. Pour cela, nous allons lancer la commande :

# smbldap-populate

qui va réaliser un certain nombre de modifications dans l'annuaire LDAP, à partir des informations

présentes dans le fichier smbldap.conf.

Indiquez le mot de passe de root, qui sera utilisé comme compte de base système.

Vérifier la structure du ldap

Après exécution de smbldap-populate, vérifiez la structure de votre annuaire ldap grâce à la vue

arborescence de LAM. Vérifiez également que le SID du domaine est correct : s'il y a un problème, vous

n'arriverez jamais à vous connecter à une machine.

Supprimer les groupes redondants

La commande smbldap-populate crée les groupes avec un nom anglais, et certains vont être redondants

avec ceux de votre annuaire (même GID). Pour éviter les problèmes, il vaut mieux supprimer ceux qui sont

en double.

Dans LAM, vue arborescence, supprimez le groupe Domain Admins, puis rajoutez, dans le groupe Admins

du domaine, le compte root dans l'attribut memberUid.

Supprimez de la même façon les groupes suivants (s'ils sont en double, bien sûr – vérifiez avec le GID) :

Domain guest

Domain Users

Administrators

Account Operators

Print Operators

Backup Operators

Replicators

Créer les dossiers partagés

Créez les dossiers qui seront accessibles en partage samba :

# mkdir /opt/share_netlogon # mkdir /opt/share_Profiles # mkdir /opt/donnees

Insérez un fichier dans le partage donnees, pour pouvoir réaliser des tests :

# cat /etc/issue > /opt/donnees/test.txt

Et modifiez les droits pour /opt/donnees :

# chmod -R 770 /opt/donnees # chgrp draf /opt/donnees

(le groupe draf correspond au groupe général des utilisateurs du domaine).

E. Quinton & D. Olivier – http://www.entraide-info.fr 25

Créer le script de création du dossier /home

Lors de la connexion au serveur, un compte /home/login va être créé automatiquement, et pourra être

utilisé, le cas échéant, par les utilisateurs pour stocker leurs informations personnelles.

Pour que la création de ce dossier puisse se dérouler correctement, créez le fichier

/etc/samba/creationhome :

#!/bin/bash utilisateur=$1 groupe=$2 PROFILE="/home/$utilisateur" if [ ! -e $PROFILE ]; then mkdir -pm700 "$PROFILE" cp -a /etc/skel/{*,.[a-zA-Z]*} "$PROFILE" chown -R "$utilisateur" "$PROFILE" fi

Rendez-le exécutable :

# chmod +x /etc/samba/creationhome

Saisir le mot de passe LDAP dans le fichier secrets.tdb

Pour que Samba puisse dialoguer avec l'annuaire LDAP, nous allons stocker le mot de passe dans le

fichier /etc/samba/secrets.tdb, grâce à la commande :

# smbpasswd -W

C'est ce qui va permettre à Samba de réaliser les modifications dans l'annuaire ldap.

6.2 Configurer le fichier smb.conf pour les serveurs maîtres

Créez le fichier /etc/samba/smb.conf, qui va contenir les informations suivantes (en gras, les

informations à modifier) :

[global] workgroup = gironde netbios name = girondetest2 server string = girondetest2 log file = /var/log/samba/samba.log max log size = 500 interfaces = eth0:0 bind interfaces only = Yes log level = 0 map to guest = bad user security = user encrypt passwords = yes pam password change = yes passwd program = /usr/sbin/smbldap-passwd '%u' unix password sync = no socket options = TCP_NODELAY SO_RCVBUF=4096 SO_SNDBUF=4096 passwd chat = *New*UNIX*password* %n\n *Re*ype*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* unix extensions = no guest account = nobody local master = yes os level = 80 domain master = yes preferred master = yes domain logons = yes add user script = /usr/sbin/smbldap-useradd -m '%u' ldap delete dn = yes delete user script = /usr/sbin/smbldap-userdel '%u' add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g' delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g' set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u' add group script = /usr/sbin/smbldap-groupadd '%g' delete group script = /usr/bin/smbldap-groupdel '%g'

E. Quinton & D. Olivier – http://www.entraide-info.fr 26

add machine script = /usr/sbin/smbldap-useradd -w "%u" logon path =

logon home = preserve case = no short preserve case = no default case = lower case sensitive = no passdb backend = ldapsam:ldap://localhost/ ldap admin dn = "cn=Manager,ou=agriculture,o=gouv,c=fr" ldap suffix = ou=agriculture,o=gouv,c=fr ldap group suffix = ou=Group ldap user suffix = ou=People ldap machine suffix = ou=Hosts ldap idmap suffix = ou=People ldap passwd sync = yes ldap ssl = no dns proxy = no nt acl support = no inherit acls = no dos charset = cp850 unix charset = UTF-8 display charset = UTF-8 inherit permissions = yes name resolve order = wins lmhosts bcast wins support = yes [homes] path = /home/%S comment = Home Directories browseable = yes writable = yes public = yes [Profiles] create mask = 0600 directory mask = 0700 writeable = yes path = /opt/share_Profiles hide files = /desktop.ini/ [netlogon] guest ok = yes comment = Network Logon Service writable = no path = /opt/share_netlogon [donnees] recycle:touch = yes writeable = yes recycle:excludedir = /tmp /temp /trash path = /opt/donnees vfs object = recycle recycle:exclude = *.tmp *.temp ~$* .~lock* recycle:keeptree = True recycle:mode = KEEP_DIRECTORIES public = yes recycle:versions = no recycle:repository = .recycle follow symlinks = yes wide links = yes

Quelques remarques :

interfaces et bind interfaces only sont utilisés pour forcer Samba à ne travailler que sur l'interface définie.

C'est ce qui nous permet de mettre en place un réseau de test, avec des adresses différentes des

adresses utilisées couramment par la société (cf. paragraphe C

E. Quinton & D. Olivier – http://www.entraide-info.fr 27

Configurer un sous-réseau de test, page 8).

os level : si les deux serveurs maîtres sont sur le même site, indiquez 60 pour le second serveur.

Ainsi, le premier sera toujours le gagnant lors des élections.

nt acl support et inherit acl sont à no dans cet exemple. Dans ce cas de figure, nous empêchons

les utilisateurs de modifier les ACL, qui ne peuvent donc être modifiés que par des administrateurs.

C'est un choix de configuration...

la connexion au serveur ldap s'effectue en mode non crypté : le cryptage n'est pas utile ici,

l'annuaire ldap et samba sont sur la même machine.

Une fois les modifications effectuées, il ne reste plus qu'à démarrer samba :

# /etc/init.d/smbd start # /etc/init.d/nmbd start

6.3 Configurer le fichier smb.conf pour les serveurs secondaires

[global] workgroup = gironde netbios name = svgirsec server string = svgirsec log file = /var/log/samba/samba.log max log size = 500 interfaces = eth1:0 bind interfaces only = Yes log level = 0 map to guest = bad user security = user encrypt passwords = yes pam password change = yes passwd program = /usr/sbin/smbldap-passwd '%u' unix password sync = no socket options = TCP_NODELAY SO_RCVBUF=4096 SO_SNDBUF=4096 passwd chat = *New*UNIX*password* %n\n *Re*ype*new*UNIX*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* unix extensions = no guest account = nobody local master = yes os level = 60 domain master = no preferred master = no domain logons = yes add user script = /usr/sbin/smbldap-useradd -m '%u' ldap delete dn = yes delete user script = /usr/sbin/smbldap-userdel '%u' add user to group script = /usr/sbin/smbldap-groupmod -m '%u' '%g' delete user from group script = /usr/sbin/smbldap-groupmod -x '%u' '%g' set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u' add group script = /usr/sbin/smbldap-groupadd '%g' delete group script = /usr/bin/smbldap-groupdel '%g' add machine script = /usr/sbin/smbldap-useradd -w "%u" logon path = logon home = preserve case = no short preserve case = no default case = lower case sensitive = no passdb backend = ldapsam:"ldaps://girondetest2 ldaps://girondetest3 ldaps://svgirsec" ldap admin dn = "cn=Manager,ou=agriculture,o=gouv,c=fr" ldap suffix = ou=agriculture,o=gouv,c=fr ldap group suffix = ou=Group ldap user suffix = ou=People ldap machine suffix = ou=Hosts ldap idmap suffix = ou=People ldap passwd sync = yes ldap ssl = start tls dns proxy = no nt acl support = no dos charset = cp850

E. Quinton & D. Olivier – http://www.entraide-info.fr 28

unix charset = UTF-8 display charset = UTF-8 inherit permissions = yes inherit acls = no map acl inherit = no name resolve order = wins lmhosts bcast wins server = adresse_ip_serveur_maitre1 adresse_ip_serveur_maitre2 # Creation du dossier /home root preexec = /etc/samba/creationhome %u %g [homes] path = /home/%S comment = Home Directories browseable = yes writable = yes public = yes [Profiles] create mask = 0600 directory mask = 0700 writeable = yes path = /opt/share_Profiles hide files = /desktop.ini/ [netlogon] guest ok = yes comment = Network Logon Service writable = no path = /opt/share_netlogon [donnees] recycle:touch = yes writeable = yes recycle:excludedir = /tmp /temp /trash path = /opt/donnees vfs object = recycle recycle:exclude = *.tmp *.temp ~$* .~lock* recycle:keeptree = True recycle:mode = KEEP_DIRECTORIES public = yes recycle:versions = no recycle:repository = .recycle follow symlinks = yes wide links = yes

Les modifications, par rapport aux serveurs maîtres, sont les suivantes :

la connexion au serveur ldap ne se fait plus localement, mais vers le serveur maitre principal, puis

vers le serveur maitre secondaire, et enfin vers le serveur ldap local (en cas de panne du réseau

étendu) ;

le serveur est un serveur maitre local, et sert de serveur de connexion.

Démarrez samba :

# /etc/init.d/smbd start # /etc/init.d/nmbd start

Attention : les machines d'identification (serveurs maîtres et serveurs secondaires) ne peuvent pas être

intégrées au domaine par la commande net rpc join. Cela ne pose en revanche aucun problème de

fonctionnement.

E. Quinton & D. Olivier – http://www.entraide-info.fr 29

6.4 Configurer le fichier smb.conf pour des machines membres du domaine

Ces machines vont s'identifier aux serveurs d'identification disponibles sur le site.

[global] workgroup = GIRONDE security = domain encrypt passwords = true password server = * log file = /var/log/samba/samba.log max log size = 50 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 os level = 18 local master = No dns proxy = No template homedir = /home/%U template shell = /bin/bash wins server = adresse_ip_serveur_maitre1 adresse_ip_serveur_maitre2 Nt acl support = no Inherit acls = No Inherit permissions = No Create mask = 0600 Directory mask = 0700 unix extensions = yes root preexec = /etc/creationhome %u %g [donnees] recycle:touch = yes writeable = yes recycle:excludedir = /tmp /temp /trash path = /opt/donnees vfs object = recycle recycle:exclude = *.tmp *.temp ~$* .~lock* recycle:keeptree = True recycle:mode = KEEP_DIRECTORIES public = yes recycle:versions = no recycle:repository = .recycle follow symlinks = yes wide links = yes

Démarrez samba :

# /etc/init.d/smbd start # /etc/init.d/nmbd start

et intégrez la machine au domaine :

# net rpc join gironde -U root [-S girondetest2]

6.5 Désactiver le démarrage automatique de samba

Si vous avez besoin de désactiver le démarrage automatique de samba, il faut renommer les fichiers

/etc/init/smbd.conf et /etc/init/nmbd.conf en .old, par exemple.

Samba ne démarre pas par défaut en utilisant le mécanisme des services...

7 Intégrer des machines dans le domaine

7.1 Intégrer une machine Linux

La commande à utiliser :

# net rpc join NOM_DU_DOMAINE -U root [-S serveurMaitre]

puis indiquez le mot de passe du compte root.

Il est possible également d'utiliser un compte membre du groupe Admins du domaine, si sa structure est

correcte (certains comptes ne fonctionnent pas, en raison d'une structure interne obsolète).

E. Quinton & D. Olivier – http://www.entraide-info.fr 30

7.2 Intégrer une machine Windows 7

Vous devez modifier deux clés dans la base de registres pour que l'intégration au domaine fonctionne (lié

à l'absence d'Active Directory).

HKLM\System\CCS\Services\LanmanWorkstation\Parameters DWORD DomainCompatibilityMode = 1 DWORD DNSNameResolutionRequired = 0

Pour faciliter la modification de ces clés, un fichier .reg peut être créé, qui doit contenir les lignes

suivantes :

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters] "DNSNameResolutionRequired"=dword:00000000 "DomainCompatibilityMode"=dword:00000001

Après avoir modifié la base de registres, soit vous redémarrez la machine, soit vous relancez le service

Lanman Workstation.

Lors de l'intégration au domaine, un message d'alerte va être affiché, concernant l'impossibilité de

contacter le domaine : il faut passer outre, c'est simplement lié à un bug de Windows 7 lorsqu'il ne peut

pas s'identifier sur un AD (un patch Microsoft peut être téléchargé pour éviter d'avoir ce message).

Ne modifiez pas d'autres clés de la base de registre (ce qu'on peut trouver dans certaines

documentations du Net). Au besoin, vérifiez que ces deux clés sont à 1 :

HKLM\System\CCS\Services\Netlogon\Parameters DWORD RequireSignOrSeal = 1 DWORD RequireStrongKey = 1

8 Quelques tests... non exhaustifs

N'hésitez pas à me faire parvenir votre plan de test : je n'ai pas écrit le mien (ce n'est pas bien du tout...).

Mais bon, j'ai rédigé cette doc...

9 Sauvegarde des serveurs

Ce n'est pas parce qu'il y a de la redondance que rien ne doit être sauvegardé ! En cas d'anomalie dans

l'annuaire LDAP, vous serez content de pouvoir vous référer à une ancienne version...

Voici les informations minimales à sauvegarder :

un export texte de l'annuaire LDAP

les fichiers de configuration ldap et samba

les certificats

les bases de travail de samba (fichiers tdb) : si elles se corrompent, vous aurez le plus grand mal à

faire fonctionner samba...

E. Quinton & D. Olivier – http://www.entraide-info.fr 31

9.1 Création d'un script de sauvegarde

Voici un exemple de script :

#!/bin/sh #Sauvegarde annuaire ldap mkdir -p /root/backup/ldap slapcat -l /root/backup/ldap/ldapBackup.ldif # Sauvegarde samba mkdir -p /root/backup/samba/cache/printing cd /root/backup/samba/cache tdbbackup /var/cache/samba/*.tdb 2>/var/log/errortdb mv -f /var/cache/samba/*.bak . mkdir -p /root/backup/samba/var/lib cd /root/backup/samba/var/lib tdbbackup /var/lib/samba/*.tdb 2>>/var/log/errortdb mv -f /var/lib/samba/*.tdb.bak . cd /root/backup/samba/cache/printing tdbbackup /var/cache/samba/printing/*.tdb 2>>/var/log/errortdb mv -f /var/cache/samba/printing/*.bak . # Envoi d'un message en cas d'erreur if [ -s /var/log/errortdb ]; then mail -s "Echec sauvegarde fichiers tdb sur $HOSTNAME" root </var/log/errortdb fi # Recopie des fichiers de configuration mkdir -p /root/backup/etc/samba cp -R /etc/samba/* /root/backup/etc/samba/ mkdir -p /root/backup/etc/ldap cp -R /etc/ldap/* /root/backup/etc/ldap/ cp /etc/ldap.conf /root/backup/etc/

Bien sûr, il s'agit d'une configuration minimale. Il faudra ensuite sauvegarder l'ensemble du dossier

/root/ sur un autre serveur ou un support amovible !

Le script peut être programmé dans la crontab :

00 20 * * * /root/backup.sh

Dans cet exemple, le script backup.sh se déclenchera tous les jours, à 20 heures.

Pour ma part, je complète ces commandes avec les instructions suivantes :

mkdir -p /home/sauvegarde/ tar -cf /home/sauvegarde/root.tar /root/* gzip -f /home/sauvegarde/root.tar tar -cf /home/sauvegarde/etc.tar /etc/* gzip -f /home/sauvegarde/etc.tar tar -cf /home/sauvegarde/var.tar /var/* gzip -f /home/sauvegarde/var.tar

La recopie vers un autre serveur peut être réalisée de plusieurs manières. Une des plus simples est

d'utiliser rsync ou scp.

9.2 Préparer la recopie des données

Par défaut, la connexion à un autre serveur impose la saisie d'un mot de passe, ce qui est difficilement

compatible avec le lancement de scripts automatisés. Nous allons donc utiliser un autre mode de

connexion SSL, celui par échange de clés. Voici le principe :

nous voulons nous connecter (ou copier des données) depuis le serveur 1 vers le serveur 2

nous allons générer une clé privée et une clé publique sur le serveur 1

le serveur 2 va être le seul à décider s'il accepte ou non la connexion du serveur 1. Pour cela, nous

intègrerons la clé publique du serveur 1 dans un fichier dédié à cet effet.

E. Quinton & D. Olivier – http://www.entraide-info.fr 32

Créer les clés sur le serveur 1

Créez le dossier /root/.ssh, puis générez les clés :

# mkdir /root/.ssh # cd /root/.ssh # ssh-keygen -t dsa

Conservez tous les choix par défaut, ne renseignez- pas de passphrase. Le programme a généré deux

fichiers : id_dsa, la clé privée, et id_dsa.pub, la clé publique.

Intégrer la clé publique du serveur 1 dans le serveur 2

Recopiez la clé publique du serveur 1 dans le serveur 2 :

# scp id_dsa.pub serveur_2:/root/

Puis recopiez la clé publique dans le fichier ad-hoc :

# ssh serveur2 mkdir /root/.ssh # ssh serveur2 cat /root/id_dsa.pub >> /root/.ssh/authorized_keys

Et enfin, supprimez la clé publique dans le serveur 2 :

# ssh serveur2 rm /root/id_dsa.pub

Si tout s'est bien passé, lors de la dernière commande, le programme ne vous aura pas demandé de mot

de passe !

9.3 Recopier les données

Il est possible de travailler soit avec rsync, soit avec scp. Pour rsync :

# rsync -plogtzrx /home/sauvegarde serveur2:/chemin_de_sauvegarde

Pour scp :

# scp -r /home/sauvegarde/* serveurs2:/chemin_de_sauvegarde/

Il suffit alors de programmer la sauvegarde, ou de rajouter une de ces lignes dans le script précédent.

10 Outils complémentaires

Ces informations complètent la configuration d'un serveur. Ce sont les opérations que je réalise pour tout

nouveau serveur...

10.1 Messagerie système

Les messages sont expédiés vers un relai de messagerie. Installez les paquets suivants :

# apt-get install postfix mailutils

Lors de l'installation, le programme propose de renseigner le serveur de messagerie relai. Si vous

modifiez les paramètres à ce moment-là, vous n'avez pas à toucher au fichier /etc/postfix/main.cf, qui

contient la configuration de Postfix.

Editez ensuite le fichier /etc/aliases, et rajoutez la ligne :

root: [email protected]

pour que les messages soient redirigés vers cette boite. Pour activer cette configuration, lancez la

commande :

# postalias /etc/aliases # service postfix restart

E. Quinton & D. Olivier – http://www.entraide-info.fr 33

10.2 Supervision Nagios via NRPE

Le serveur va être supervisé par Nagios, en utilisant NRPE, qui permet de vérifier un certain nombre de

paramètres propres à la machine (espaces disques, notamment).

Lancez l'installation de Nagios-NRPE :

# apt-get install nagios-nrpe-server nagios-nrpe-plugin nagios-plugins-standard # service nagios3 stop

Puis supprimez le démarrage automatique du serveur nagios3, par l'intermédiaire de sysv-rc-conf.

Editez le fichier /etc/nagios/nrpe.cfg, et modifiez la valeur de allowed_hosts, pour la remplacer par

l'adresse ou le nom DNS de votre serveur nagios. Rajoutez également les commandes de supervision que

vous utilisez habituellement, puis redémarrez le service :

# service nagios-nrpe-server restart

Pensez également à modifier en conséquence la configuration de votre serveur NAGIOS.

10.3 Installation du client OCS-NG

Installez en premier lieu les paquets suivants :

# apt-get install make perl libnet-ssleay-perl libproc-pid-file-perl libproc-daemon-perl nmap libnet-ip-perl libcrypt-ssleay-perl libxml-simple-perl

Téléchargez le client depuis http://www.ocsinventory-ng.org/index.php?page=downloads

puis :

# tar xvf Ocsinventory-Agent-1.1.2.tar.gz # cd Ocsinventory-Agent-1.1.2/ # perl Makefile.PL # make # make install

10.4 Installation de webmin

Webmin est surtout utile en raison de sa console, qui permet d'exécuter depuis un navigateur un certain

nombre de commandes. Par contre, évitez de trop toucher les fichiers de paramétrage du système,

webmin ayant la fâcheuse habitude de réécrire les fichiers de configuration en fonction de ses critères à

lui...

Récupérez la dernière version de webmin à partir du site http://www.webmin.com/download.html.

Lancez l'installation du paquetage :

# dpkg -i webmin_1.520_all.deb

Cette installation va échouer, en raison de certains paquets manquants. Pas de panique, nous allons

demander à Ubuntu de corriger ce qui manque :

# apt-get -f install

Les paquets manquants vont être automatiquement installés.

34

11 Récapitulatif des opérations à effectuer

11.1 Opérations sur les serveurs du nouveau domaine

Serv

eur

maît

re

pri

ncip

al

Serv

eur

maît

re

secondair

e

Serv

eurs

secondair

e

s

Adresse IP

Opérations générales

Installation OS et mise à jour

Modification des fichiers /etc/hosts,

/etc/hostname, /etc/network/interfaces

(déploiement de machines virtuelles à partir d'une

image unique)

Sysv-rc-conf, nscd

Mise à l'heure ntp

Webmin

35

Serv

eur

maît

re

pri

ncip

al

Serv

eur

maît

re

secondair

e

Serv

eurs

secondair

e

s

Postfix et configuration messagerie (envoi de

messages systèmes)

Supervision Nagios via NRPE

Client OCS-NG

Samba, smb-client, slapd, ldap-utils...

Apache2

Intégration annuaire LDAP

Configuration LDAP générale

Import LDIF

Configuration réplication serveurs maîtres

Installation et configuration LAM

36

Serv

eur

maît

re

pri

ncip

al

Serv

eur

maît

re

secondair

e

Serv

eurs

secondair

e

s

Gestion SSL et certificats

Génération clé privée

Génération clé publique

Intégration des clés dans /etc/ssl

Configuration : ldap

Samba

Apache2

webmin

Configuration de samba

Installation et paramétrage smbldap-tools

37

Serv

eur

maît

re

pri

ncip

al

Serv

eur

maît

re

secondair

e

Serv

eurs

secondair

e

s

Reconfiguration annuaire ldap (smbldap-populate)

Vérification de la structure du LDAP

Création des dossiers partagés

Script de création du dossier /home

Stockage mot de passe ldap dans secrets.tdb

Configuration smb.conf

Intégration serveur dans le domaine

Mise en place de la sauvegarde et des tâches planifiées

Script de sauvegarde des fichiers TDB

Export de l'annuaire LDAP au format LDIF

38

Serv

eur

maît

re

pri

ncip

al

Serv

eur

maît

re

secondair

e

Serv

eurs

secondair

e

s

Sauvegarde des données sur un autre serveur

Sauvegarde d'un exemplaire de chaque machine

virtuelle

Planification des tâches de sauvegarde

11.2 Opérations connexes sur les autres serveurs par site

Site Serveurs Arrêt définitif Reconfiguration ex serveur de domaine Reconfiguration autre serveur Reconfiguration DHCP

(adresse wins)

Concerné Réalisé Concerné Arrêt LDAP Reconfiguration smb.conf Concerné Modification ldap cible

Concerné Fait

Site 1 serveur1 X

serveur2 X X

Gironde1ancien X

gironde2ancien X

39

Site Serveurs Arrêt définitif Reconfiguration ex serveur de domaine Reconfiguration autre serveur Reconfiguration DHCP

(adresse wins)

Site 2 Serveur 3 X X

Gironde3ancien X X

12 Que faire en cas d'incident ?

Les causes de panne peuvent être nombreuses... Commencez par analyser les traces, les fichiers présents dans /var/log/.

Si vous ne savez pas par où commencer, une suggestion : téléchargez l'outil d'aide au diagnostic des incidents sous Linux (présentation Impress) ici :

http://eric.quinton.free.fr/spip.php?article24. S'il n'est probablement pas exhaustif ni totalement à jour, il a rendu service à de nombreux collègues...

I. Licence de Documentation Libre GNU (GNU Free Documentation

License)

Free Software Foundation

Version 1.1, mars 2000 Copyright (C) 2000 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston,

MA 02111-1307 États-Unis d'Amérique. La copie et la distribution de copies exactes de ce document sont

autorisées, mais aucune modification n'est permise.

This is an unofficial translation of the GNU Free Documentation License into French. It was not published by the

Free Software Foundation, and does not legally state the distribution terms for software that uses the GNU FDL--

only the original English text of the GNU FDL does that. However, we hope that this translation will help language

speakers understand the GNU FDL better. Voici une adaptation non officielle de la Licence de Documentation

Libre du projet GNU. Elle n'a pas été publiée par la Free Software Foundation et son contenu n'a aucune portée

légale car seule la version anglaise de ce document détaille le mode de distribution des logiciels sous GNU FDL.

Nous espérons cependant qu'elle permettra aux francophones de mieux comprendre la FDL.

A. DOMAINE D'APPLICATION ET DÉFINITIONS

La présente Licence s'applique à tout manuel ou travail contenant une mention placée par le détenteur du

copyright indiquant que le document peut être distribué selon les termes de la présente Licence. Le terme «

Document », ci-dessous, se réfère à tout manuel ou travail remplissant cette condition. Tout membre du public

est bénéficiaire de la licence et se trouve ici désigné par « vous ».

Une « Version Modifiée » du Document signifie : tout travail contenant le Document, en intégralité ou en partie,

aussi bien une copie verbatim ou avec des modifications qu'une traduction dans une autre langue.

Une « Section Secondaire » est une annexe ou un avant-propos du Document qui concerne exclusivement le

rapport de l'éditeur ou des auteurs du Document avec le sujet général du Document (ou des domaines voisins) et

ne contient rien qui puisse tomber directement sous le coup du sujet général (par exemple, si le Document est en

quelque partie un manuel de mathématiques, une Section Secondaire n'enseignera pas les mathématiques). Le

rapport peut être une connexion historique avec le sujet ou des domaines voisins, ou une précision légale,

commerciale, philosophique, éthique ou politique les concernant.

Les « Sections Invariables » sont certaines Sections Secondaires désignées par leurs titres comme Sections

Invariables dans la mention qui indique que le Document est couvert par la présente Licence.

Les « Textes de Couverture » sont certains courts passages du texte listés comme « Textes de Première de

Couverture » ou « Textes de Quatrième de Couverture » dans la mention qui indique que le Document est couvert

par la présente Licence.

Une copie « Transparente » du Document signifie : une copie lisible par une machine, réalisée dans un format dont

les spécifications sont disponibles au grand public, et dont le contenu peut être directement visualisé et édité

avec des éditeurs de texte génériques ou (pour les images composées de pixels) avec des programmes de

composition d'images génériques ou (pour les figures techniques) un éditeur de dessin vectoriel largement

disponible, et qui soit approprié aux logiciels qui mettent le texte en forme et le calibrent (formateurs de texte) ou

au transcodage automatique vers un assortiment de formats appropriés aux formateurs de texte. Une copie

réalisée dans un format de fichier habituellement Transparent mais dont le balisage a été conçu pour contrecarrer

ou décourager des modifications ultérieures par le lecteur n'est pas Transparente. Une copie qui n'est pas «

Transparente » est appelée « Opaque ».

Les formats appropriés aux copies Transparentes sont par exemple l'ASCII brut sans balises, le format Texinfo, le

format LaTeX, SGML ou XML utilisant une DTD publiquement disponible, et l'HTML simple et conforme à la norme,

conçu en vue d'une modification manuelle. Les formats Opaques incluent PostScript, PDF, les formats

propriétaires qui ne peuvent être lus et édités que par des traitements de texte propriétaires, SGML et XML dont

les DTD et/ou les outils de rendu ne sont pas généralement disponibles, et l'HTML généré automatiquement par

certains traitements de texte à seule fin d'affichage.

La « Page de Titre » désigne, pour un livre imprimé, la page de titre proprement dite, plus les pages suivantes qui

sont nécessaires pour faire figurer, lisiblement, les éléments dont la présente Licence requiert qu'ils apparaissent

dans la Page de Titre. Pour les travaux dont le format ne comporte pas de page de titre en tant que telle, « Page

de Titre » désigne le texte jouxtant l'apparition la plus marquante du titre de ce travail, qui précède le début du

corps du texte.

B. COPIES VERBATIM

Vous pouvez copier et distribuer le Document sur tout support, aussi bien commercialement que non, pour autant

que la présente Licence, les mentions de copyright, et les mentions de licence indiquant que la présente Licence

s'applique au Document soient reproduites sur toutes les copies, et que vous n'ajoutiez aucune autre condition à

celles de la présente Licence. Vous ne pouvez pas user de moyens techniques à des fins d'obstruction ou de

D. Olivier – http://www.entraide-info.fr 41

contrôle de la lecture ou de la duplication des copies que vous réalisez ou distribuez. Vous pouvez cependant

accepter des compensations en échange de la cession de copies. Si vous distribuez un assez grand nombre de

copies, vous devez aussi suivre les conditions de la section Copies en quantité.

Vous pouvez aussi prêter des copies, selon les mêmes conditions que celles mentionnées ci-dessus, et vous

pouvez exposer publiquement des copies.

C. COPIES EN QUANTITÉ

Si vous publiez des copies imprimées du Document à plus de 100 exemplaires, et que la mention de la licence du

Document exige des Textes de Couverture, vous devez inclure les copies dans des couvertures où figurent,

clairement et lisiblement, tous ces Textes de Couverture : les Textes de Première de Couverture sur la première

de couverture, et les Textes de Quatrième de Couverture sur la quatrième de couverture. Les deux faces de la

couverture doivent également clairement et lisiblement vous identifier comme étant l'éditeur de ces copies. La

première de couverture doit présenter le titre complet, titre dont tous les mots doivent être également mis en

valeur et visibles. Vous pouvez ajouter des éléments supplémentaires sur les couvertures. Toute copie avec des

changements limités aux couvertures, pour autant qu'ils préservent le titre du Document et satisfont ces

conditions, peut être considérée comme une copie verbatim à tous les autres égards.

Si les textes destinés à l'une ou l'autre page de couverture sont trop volumineux pour y figurer lisiblement, vous

devez en mettre les premiers (autant qu'il est raisonnablement possible) sur la couverture proprement dite, et

poursuivre sur les pages adjacentes.

Si vous publiez ou distribuez des copies Opaques du Document à plus de 100 exemplaires, vous devez soit inclure

une copie Transparente dans un format lisible par une machine, adapté au traitement automatisé, en

accompagnement de chaque copie Opaque, soit indiquer aux côtés de ou dans chaque copie Opaque une adresse

de réseau électronique publiquement accessible, qui permette d'obtenir une copie Transparente du Document,

sans éléments ajoutés, à laquelle le grand public puisse accéder pour téléchargement anonyme et sans frais en

utilisant des protocoles de réseau publics et standard. Si vous retenez la dernière option, vous devez procéder

prudemment et prendre les mesures nécessaires, lorsque vous commencez la distribution de copies Opaques en

quantité, afin de vous assurer que cette copie Transparente demeurera accessible au public pendant au moins

une année après le moment de la distribution (directement ou par l'intermédiaire de vos agents ou revendeurs)

de la dernière copie Opaque de cette édition.

Il est souhaité, mais non exigé, que vous contactiez les auteurs du Document bien avant la redistribution de tout

grand nombre de copies, afin de leur laisser la possibilité de vous fournir une version mise à jour du Document.

D. MODIFICATIONS

Vous pouvez copier et distribuer une Version Modifiée du Document selon les conditions des sections Copies

verbatim et Copies en quantité qui précèdent, pourvu que vous diffusiez la Version Modifiée sous couvert

précisément de la présente Licence, avec la Version Modifiée remplissant alors le rôle du Document, et ainsi

autoriser la distribution et la modification de la Version Modifiée à quiconque en possède une copie. En

complément, vous devez accomplir ce qui suit sur la Version Modifiée :

A. Utilisez dans la Page de Titre (et sur les couvertures, le cas échéant) un titre distinct de celui du Document et

de ceux des précédentes versions (qui doivent, s'il en existe, être citées dans la section « Historique » du

Document). Vous pouvez utiliser le même titre qu'une version précédant la vôtre si l'éditeur original vous en donne

la permission.

B. Indiquez sur la Page de Titre, comme auteurs, une ou plusieurs personnes ou entités responsables de l'écriture

des modifications de la Version Modifiée, ainsi qu'au moins cinq des principaux auteurs du Document (ou tous les

auteurs principaux, s'ils sont moins de cinq).

C. Apposez sur la Page de Titre de nom de l'éditeur de la Version Modifiée, en tant qu'éditeur.

D. Préservez toutes les mentions de copyright du Document.

E. Ajoutez une mention de copyright appropriée à vos modifications, aux côtés des autres mentions de copyright.

F. Incluez, immédiatement après les mentions de copyright, une mention de licence qui accorde la permission

publique d'utiliser la Version Modifiée selon les termes de la présente Licence, sous la forme présentée dans la

section Addendum ci-dessous.

G. Préservez dans cette mention de licence les listes complètes des Sections Invariables et des Textes de

Couverture exigés, données dans la mention de licence du Document.

H. Incluez une copie non altérée de la présente Licence.

I. Préservez la section intitulée « Historique », et son titre, et ajoutez-y un article indiquant au moins le titre, l'année,

les nouveaux auteurs, et l'éditeur de la Version Modifiée telle qu'elle apparaît sur la Page de Titre. Si le Document

ne contient pas de section intitulée « Historique », créez-en une et indiquez-y le titre, l'année, les auteurs et

D. Olivier – http://www.entraide-info.fr 42

l'éditeur du Document tels qu'indiqués sur la Page de Titre, puis ajoutez un article décrivant la Version Modifiée,

comme exposé dans la phrase précédente.

J. Préservez, le cas échéant, l'adresse de réseau électronique donnée dans le Document pour accéder

publiquement à une copie Transparente du Document, et préservez de même les adresses de réseau électronique

données dans le Document pour les versions précédentes, sur lesquelles le Document se fonde. Cela peut être

placé dans la section « Historique ». Vous pouvez omettre l'adresse de réseau électronique pour un travail qui a

été publié au moins quatre ans avant le Document lui-même, ou si l'éditeur original de la version à laquelle il se

réfère en donne l'autorisation.

K. Dans toute section intitulée « Remerciements » ou « Dédicaces », préservez le titre de section et préservez dans

cette section le ton et la substance de chacun des remerciements et/ou dédicaces donnés par les contributeurs.

L. Préservez toutes les Sections Invariables du Document, non altérées dans leurs textes et dans leurs titres. Les

numéros de sections ou leurs équivalents ne sont pas considérés comme faisant partie des titres de sections.

M. Supprimez toute section intitulée « Approbations ». Une telle section ne doit pas être incluse dans la Version

Modifiée.

N. Ne changez pas le titre d'une section existante en « Approbations » ou en un titre qui entre en conflit avec celui

d'une Section Invariable quelconque.

Si la Version Modifiée inclut de nouvelles sections d'avant-propos ou des annexes qui remplissent les conditions

imposées aux Sections Secondaires et ne contiennent aucun élément tiré du Document, vous pouvez, à votre

convenance, désigner tout au partie de ces sections comme « Invariables ». Pour ce faire, ajoutez leurs titres à la

liste des Sections Invariables dans la mention de licence de la Version Modifiée. Ces titres doivent être distincts

de tout autre titre de section.

Vous pouvez ajouter une section intitulée « Approbations », pourvu qu'elle ne contienne rien d'autre que

l'approbation de votre Version Modifiée par diverses parties -- par exemple, indication d'une revue par les pairs

ou bien que le texte a été approuvé par une organisation en tant que définition de référence d'un standard.

Vous pouvez ajouter un passage de cinq mots ou moins en tant que Texte de la Première de Couverture, et un

passage de 25 mots ou moins en tant que Texte de Quatrième de Couverture, à la fin de la liste des Textes de

Couverture de la Version Modifiée. Toute entité peut ajouter (ou réaliser, à travers des arrangements) au plus un

passage en tant que Texte de la Première de Couverture et au plus un passage en tant que Texte de la Quatrième

de Couverture. Si le Document inclut déjà un texte de Couverture pour la même couverture, précédemment ajouté

par vous ou, selon arrangement, réalisé par l'entité pour le compte de laquelle vous agissez, vous ne pouvez en

ajouter un autre ; mais vous pouvez remplacer l'ancien, avec la permission explicite de l'éditeur qui l'a

précédemment ajouté.

Le ou les auteur(s) et le ou les éditeur(s) du Document ne confèrent pas par la présente Licence le droit d'utiliser

leur nom à des fins publicitaires ou pour certifier ou suggérer l'approbation de n'importe quelle Version Modifiée.

E. MÉLANGE DE DOCUMENTS

Vous pouvez mêler le Document à d'autres documents publiés sous la présente Licence, selon les termes définis

dans la section Modifications ci-dessus, traitant des versions modifiées, pour autant que vous incluiez dans ce

travail toutes les Sections Invariables de tous les documents originaux, non modifiées, et en les indiquant toutes

comme Sections Invariables de ce travail dans sa mention de licence.

Le travail issu du mélange peut ne contenir qu'une copie de cette Licence, et de multiples Sections Invariables

identiques peuvent n'être présentes qu'en un exemplaire qui les représentera toutes. S'il existe plusieurs Sections

Invariables portant le même nom mais des contenus différents, faites en sorte que le titre de chacune de ces

sections soit unique, en indiquant à la fin de chacune d'entre elles, entre parenthèses, le nom de l'auteur original

ou de l'éditeur de cette section s'il est connu, ou un numéro unique dans les collisions restantes. Pratiquez les

mêmes ajustements pour les titres de sections, dans la liste des Sections Invariables de la mention de licence de

ce travail mélangé.

Dans le mélange, vous devez regrouper toutes les sections intitulées « Historique » dans les divers documents

originaux, afin de constituer une unique section intitulée « Historique » ; combinez de même toutes les sections

intitulée « Remerciements », et toutes les sections intitulées « Dédicaces ». Vous devez supprimer toutes les

sections intitulées « Approbations ».

F. RECUEILS DE DOCUMENTS

Vous pouvez réaliser un recueil regroupant le Document et d'autres documents publiés sous la présente Licence,

et remplacer les diverses copies de la présente Licence figurant dans les différents documents par une copie

unique incluse dans le recueil, pour autant que vous suiviez les règles de la présente Licence relatives à la copie

verbatim pour chacun de ces documents, dans tous les autres aspects.

D. Olivier – http://www.entraide-info.fr 43

Vous pouvez n'extraire qu'un seul document d'un tel recueil, et le distribuer individuellement sous la présente

Licence, pour autant que vous insériez une copie de la présente Licence dans le document extrait, et que vous

suiviez la présente Licence dans tous ses autres aspects concernant la reproduction verbatim de ce document.

G. AGRÉGATION AVEC DES TRAVAUX INDÉPENDANTS

Une compilation du Document ou de ses dérivés avec d'autres documents ou travaux séparés et indépendants,

ou bien sur une unité de stockage ou un support de distribution, ne compte pas comme une Version Modifiée de

ce Document, pour autant qu'aucun copyright de compilation ne soit revendiqué pour la compilation. Une telle

compilation est appelée une « agrégation », et la présente Licence ne s'applique pas aux autres travaux contenus

et ainsi compilés avec le Document, sous prétexte du fait qu'ils sont ainsi compilés, s'ils ne sont pas eux-mêmes

des travaux dérivés du Document.

Si les exigences de la section Copies en quantité en matière de Textes de Couverture s'appliquent aux copies du

Document, et si le Document représente moins du quart de la totalité de l'agrégat, alors les Textes de Couverture

du Document peuvent n'être placés que sur les couvertures qui entourent le document, au sein de l'agrégation.

Dans le cas contraire, ils doivent apparaître sur les couvertures entourant tout l'agrégat.

H. TRADUCTION

La traduction est considérée comme un type de modification, de sorte que vous devez distribuer les traductions

de ce Document selon les termes de la section Modifications. La substitution des Sections Invariables par des

traductions requiert une autorisation spéciale de la part des détenteurs du copyright, mais vous pouvez ajouter

des traductions de tout ou partie des Sections Invariables en sus des versions originales de ces Sections

Invariables. Vous pouvez inclure une traduction de la présente Licence pourvu que que vous incluiez la version

originale, en anglais, de la présente Licence. En cas de désaccord entre la traduction et la version originale, en

anglais, de la présente Licence, la version originale prévaudra.

I. RÉVOCATION

Vous ne pouvez copier, modifier, sous-licencier ou distribuer le Document autrement que selon les conditions

expressément prévues par la présente Licence. Toute tentative de copier, modifier, sous-licencier ou distribuer

autrement le Document est nulle et non avenue, et supprimera automatiquement vos droits relatifs à la présente

Licence. De même, les parties qui auront reçu de votre part des copies ou des droits sous couvert de la présente

Licence ne verront pas leurs licences révoquées tant que ces parties demeureront en pleine conformité avec la

présente Licence.

J. RÉVISIONS FUTURES DE LA PRÉSENTE LICENCE

La Free Software Foundation (« fondation du logiciel libre ») peut publier de nouvelles versions révisées de la

présente GNU Free Documentation License de temps à autre. Ces nouvelles versions seront similaires, dans

l'esprit, à la présente version, mais peuvent différer dans le détail pour prendre en compte de nouveaux problèmes

ou de nouvelles inquiétudes. Consultez http://www.gnu.org/copyleft/.

Chaque version de la Licence est publiée avec un numéro de version distinctif. Si le Document précise qu'une

version particulière de la présente Licence, « ou toute version postérieure » s'applique, vous avez la possibilité de

suivre les termes et les conditions aussi bien de la version spécifiée que de toute version publiée ultérieurement

(pas en tant que brouillon) par la Free Software Foundation. Si le Document ne spécifie pas un numéro de version

de la présente Licence, vous pouvez choisir d'y appliquer toute version publiée (pas en tant que brouillon) par la

Free Software Foundation.