migrer et installer une architecture samba/ldap avec ubuntu...
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.