Rapport d'installation d'un serveur Samba 3 PDC – LDAP – Serveur d'impression EDGE-IT SARL au capital de 10 000€– RCS PARIS B 444 481 204 19, rue de Turbigo 75002 PARIS Tel : 01 44 82 78 85 – Fax : 01 44 82 78 89 Auteur : Loïc Vaillant document : Rapport d'installation de la solution SmartShare - Document Type Référence : DT-RI-SmartShare-DocumentMaitre.sxg Date : 18/11/04
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Licence du document.........................................................................................5Conventions de lecture......................................................................................6Objectif : Serveur PDC/LDAP + Serveur de fichier + Serveur d'impression.....71 Installation de la machine et des services......................................................8
1.5 Samba....................................................................................................102 Configuration des services............................................................................11
2.1 Configuration réseau..............................................................................112.1.a Le nom de la machine......................................................................112.1.b La configuration DNS......................................................................122.1.c La connexion au réseau...................................................................12
2.4 Pam & NSS, authentification LDAP.......................................................212.5 Cups :.....................................................................................................242.5.a Configuration générale....................................................................242.5.b Préparatifs pour Samba...................................................................252.5.c Définition d'une imprimante............................................................26
2.6 Samba :..................................................................................................272.6.a Hypothèses de travail......................................................................272.6.b Le fichier de configuration Samba..................................................272.6.c Création de l'utilisateur administrateur..........................................34
3 Association des services et test de Samba :..................................................363.1 Vérification de la configuration Samba avec testparm..........................36
3.2 SID et création de l'utilisateur administrateur .....................................383.3 Rôle du Serveur.....................................................................................393.4 Samba - LDAP : Authentification............................................................403.5 Connexion aux services (partie fichiers)................................................403.6 Création des imprimantes sous Samba..................................................413.7 Les répertoires à créer et leurs droits...................................................44
4 Outils optionnels...........................................................................................454.1 Les prérequis.........................................................................................454.2 Liste des outils disponibles....................................................................454.3 Configuration.........................................................................................464.4 Manipulation..........................................................................................484.5 Détails des commandes disponibles.......................................................50
4.5.a Les utilisateurs................................................................................50
4.5.b Les groupes.....................................................................................564.5.c Les machines...................................................................................584.5.d Les autres outils..............................................................................59
5 Intégration de clients Windows....................................................................605.1 Inscription On-The-Fly...........................................................................605.2 Inscription manuelle..............................................................................665.3 Connexion d'un utilisateur.....................................................................67
6 Configuration des imprimantes du PDC.......................................................72 Annexes...........................................................................................................77Fichier auto_inst.cf..........................................................................................78Les fichiers de configuration complets............................................................81
Ce document est réservé au seul usage des administrateurs duréseau informatique interne du client (Le CLIENT). Il peut en êtreréalisé des copies pour une utilisation de ce support dans ce cadreprécis.
Il ne peut pas en être fourni une reproduction papier ou électroniqueà un tiers, sur le Net ou sur le réseau interne. Il ne peut pas en être vendu une copie totale ou partielle sans l'accord écrit d'EDGE-IT.
Les noms de fichiers, de répertoires ou de packages1, ainsi que les attributsde fichiers de configuration sont en courier-10 :• /etc/openldap/slapd.conf
• bind-utils
• /usr/share/samba3/scripts/smbldap-useradd3 -g users -a -P utilisateur1
Les commandes et leurs résultats sont présentés dans des cadres à fondgrisé en courier-10. Les commandes sont précédées du signe $ représentant leprompt de votre shell :
$ cat /etc/resolv.conf
search edge-it.subnet
nameserver 192.168.10.2
nameserver 193.252.19.3
Certains résultats notables sont affichés en gras :$ testparm3
Objectif : Serveur PDC/LDAP + Serveur de fichier +Serveur d'impression
Ce document a pour but de présenter l'installation d'un serveurSamba (contrôleur principal de domaine, authentification etautorisations, serveur de fichiers et d'impression) basé sur un annuaireLDAP pour la gestion des utilisateurs.
Il décrit la méthode d'installation, les éléments spécifiques auxbesoins du service ainsi que la configuration mise en oeuvre.
On trouvera aussi une notice explicative des outils de base pourtester le service et ajouter les premiers utilisateurs.
La distribution sur laquelle se base l'installation de ce service est uneMandrakeLinux 9.2 (fivestar)2. Plutôt que de sélectionner les packagesmanuellement lors de chaque installation, une procédure d'installation, dite"kickstart", permet d'effectuer un grand nombre d'étapes (voire toutes)automatiquement.
Cette méthode permet donc de disposer d'un système d'exploitation allégé,
contenant uniquement les briques logicielles nécessaires à la mise en oeuvredu service, à savoir :* l'annuaire OpenLDAP* le serveur de fichiers Samba* le serveur d'impression CUPS
On installe aussi les clients correspondants afin de pouvoir tester lasolution, étape par étape.
Pour faciliter l'administration de ce serveur, le serveur OpenSSH est aussiinstallé pour une prise de contrôle à distance.
1.1 M É THODE D ' INSTALLATION : « K ICKSTART »
Parfaitement intégrée dans les procédures d'installation standards de laMandrakeLinux 9.2 (fivestar), la méthode kickstart permet l'installation rapidede clones. Ainsi, en modifiant quelques paramètres systèmes (réseau,matériel...) dans le fichier approprié (auto_inst.cfg), on peut déployer unemême solution rapidement sur un grand nombre de machines.
Via ce système de kickstart, la configuration système (clavier, souris, écran,réseau, utilisateurs de base) est prédéfinie. Toutes les opérations peuvent êtreautomatisées, mais on peut néanmoins en rendre certaines (comme lepartitionnement) interactives, afin de les adapter à la machine cible.
On pourra générer son premier fichier de configuration kickstart via laprocédure d'installation interactive de la distribution. Après une installationmanuelle, un fichier auto_inst.cfg est généré dans le répertoire /root/drakx/. Ilsera reporté sur disquette avec la commande drakautoinst (disponible dans lepackage drakxtools-newt).
Ce mécanisme de kickstat n'inclut pas de post-configuration permettant lamodification interactive des fichiers de configuration des services installés.L'équipe Edge-IT a donc intégré un certain nombre de fichiers "templates"afin de faciliter le travail de mise en oeuvre du service. Un mécanismestandard "mandrake-firstime3", modifié par nos soins, prépare ces fichiers en lesrecopiant d'un CD additionnel vers le disque de la machine.
Vous trouverez en annexe le fichier utilisé pour le kickstart lors dudéploiement.
1.2 O PEN SSH
OpenSSH fournit un accès distant à la machine via une connexion sécurisée(SSH = Secure SHell). L'administration des différents services peut ainsi seréaliser à partir de n'importe quel poste, pour autant que la connexion réseausoit possible.
Site Officiel : http://www.openssh.org Version installée : 3.6.1p2-8mdk
L'authentification pour ce service est principalement assurée par lesfichiers système classiques( /etc/passwd notamment). On peut néanmoinsenvisager de pouvoir authentifier des utilisateurs LDAP.
1.3 O PEN LDAP
Il s'agit d'un service d'annuaire permettant (notamment) la centralisationdes informations d'authentification des utilisateurs d'un ou plusieurs services
répartis sur une ou plusieurs machines.
Site officiel : http://www.openldap.org Version installée : 2.1.22-5mdk
L'annuaire LDAP contient les informations système et Samba/Windowsconcernant les utilisateurs, les groupes auxquels ils peuvent appartenir, ainsique les informations concernant les machines qui sont autorisées à joindre ettravailler sur le domaine.
Dans le cadre d'un PDC4, Samba interroge et met à jour les informations
3 Fichier /etc/init.d/mandrake_firstime4 Primary Domain Controler ou Contrôleur Principal de Domaine
Il s'agit d'un serveur d'impression gérant les files d'attente, ainsi que lepartage des imprimantes pour des postes clients.
Site officiel : http://www.cups.org/ Version installée : 1.1.19-10mdk
En configurant des imprimantes au niveau de CUPS, Samba est capable dedialoguer avec ce service pour les proposer à ses clients Windows. CUPSpropose des outils de gestion des imprimantes pour Samba afin de ne pasavoir à installer les drivers sur les postes clients. Le serveur d'impression peutainsi les mettre à disposition directement.
1.5 S AMBA
Samba gère principalement le rôle de serveur de fichiers et/oud'impression. Il est possible de l'intégrer à un workgroup ou à un domaineexistant. Mais il peut aussi être le PDC (voire le contrôleur secondaire ouBDC).
Site Officiel : http://www.samba.org Version installée : 3.0.2a (Edge-IT)
Samba gère donc le partage de fichiers ainsi que la gestion des droitsd'accès sur ces fichiers (il faut néanmoins un système de fichiers particulierpour cela - XFS par exemple qui est intégré dans la solution présentée dans ce
document). Pour reconnaître les utilisateurs et les groupes, il se base sur lesinformations contenues dans l'annuaire LDAP.
Il transmet aussi les ordres d'impression à CUPS pour le serviced'impression.
Une fois la procédure d'installation du serveur et des packages terminée, ilest nécessaire de mettre en place l'ensemble des services. Etape par étape,ces derniers seront configurés, puis testés afin de valider le bonfonctionnement de l'ensemble.
2.1 C ONFIGURATION R É SEAU
Le kickstart est préparé de manière à positionner la configurationcorrectement. Il contient les informations de base pour la configuration duréseau.
Les fichiers système suivants contiennent les principales informations,e tpermettent de compléter la configuration, le cas échéant :
2.1. A LE NOM DE LA MACHINE
$ cat /etc/hosts
127.0.0.1 localhost
192.168.10.107 bohrium.edge-it.subnet bohrium
Ce fichier contient un enregistrement par ligne, faisant correspondre uneadresse IP avec un nom. Pour la qualification du nom, la forme longue5 serasouvent complétée par une forme courte sans le nom de domaine. On pourraplacer dans ce fichier toutes les machines que doit pouvoir contacter leserveur si on ne se sert pas d'un serveur DNS.
Ici, il est spécifié le loopback, ainsi que l'IP et le nom officiels de lamachine.
Un deuxième fichier contient le nom de la machine :
$ cat /etc/sysconfig/network
HOSTNAME=bohrium
NETWORKING=yes
GATEWAY=192.168.10.1
Il contient aussi quelques informations réseaux détaillées plus loin dans cedocument.
On peut momentanément changer localement le nom de la machine avec la
commande hostname, mais cette modification sera perdue au prochain reboot.Les deux fichiers présentés ci-dessus sont les seuls qui pérennisent lamodification.
2.1.B L A CONFIGURATION DNS
Si ce service n'est pas obligatoire, il évite néanmoins d'avoir à remplirmanuellement le fichier /etc/hosts.
$ cat /etc/resolv.conf
search edge-it.subnet
nameserver 192.168.10.2
nameserver 193.252.19.3
La première ligne sert à compléter le nom d'une machine si on utilise sonnom court. Ce dernier devient donc un FQDN6, traduit ensuite en adresse IPafin d'accéder à la machine.
La ou les lignes suivantes spécifient les serveurs DNS à interroger pourcette transformation nom<->IP. On pourra ajouter autant de lignes qu'on lesouhaite, la résolution s'arrêtant dès qu'une réponse est renvoyée par lesserveurs, interrogés dans l'ordre du fichier.
Si le package bind-utils est installé, les commandes host et nslookup
permettent de vérifier le bon fonctionnement de la configuration (à conditionque le réseau soit déjà configuré) :
$ host helium
helium.edge-it.subnet has address 192.168.10.2
$ nslookup helium
Note: nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead. Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server: 192.168.10.2Address: 192.168.10.2#53
Name: helium.edge-it.subnet
Address: 192.168.10.2
2.1.C L A CONNEXION AU RÉSEAU
Il s'agit de configurer la carte réseau puis de configurer les routes afin depouvoir communiquer avec d'autres machines.
L'adresse IP, le BROADCAST et le NETMASK apparaissent.
$ route -n
Table de routage IP du noyau
Destination Passerelle Genmask Indic Metric Ref Use Iface
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
0.0.0.0 192.168.10.1 0.0.0.0 UG 0 0 0 eth0
La route par défaut (0.0.0.0) passe bien par la passerelle spécifiée dans lefichier de configuration.
Si le package iputils est installé, la commande ping est un test simple pour vérifier le fonctionnement du réseau. Néanmoins, si elle ne répond rien, celane signifie pas que le réseau ne fonctionne pas, il est possible que l'adressequ'on cherche à atteindre soit protégée par un firewall refsant les connexionsICMP (ping). Les commandes host et nslookup par exemple complètent le test.
2.2 O PEN SSH
L'installation du package suffit à la mise en oeuvre du service. Tous les
utilisateurs définis sur le système (dans /etc/passwd, i.e. root, admin...) pourrontaccéder à distance à la machine.
De même, via ce canal sécurisé, il est possible de lancer des applicationsgraphiques dont l'interface apparaît sur la machine client.
Si ces fonctionnalités sont intéressantes dans certains cas précis, il estnéanmoins conseillé de les désactiver :
$ cat /etc/ssh/sshd_config
...
# on empêche le login direct en root
PermitRootLogin no
...
# on ne lance pas d'applications graphiques à travers SSH
X11Forwarding no
...
Ces deux lignes pourront passer à yes pour réactiver l'option concernée. Laprise en compte d'une modification sera faite par la commande suivante :
(Ce document considère que le lecteur possède les connaissances de base concernant LDAP).
L'installation se décompose en une partie serveur, et une partie client.Cette dernière nous servira autant pour les tests de la partie serveur que pourla communication entre Samba et OpenLDAP.
Pour cette installation, l'arbre LDAP utilisé est le plus plat possible :
dc=edge-it,dc=fr
|
|- ou=Users (contiendra les utilisateurs)|
|- ou=Groups (contiendra les groupes)
|
|- ou=Computers (contiendra les machines du domaine)
|
|-...
2.3. A SERVEUR OPENLDAP
$ less /etc/openldap/slapd.conf
# La liste des schémas à inclure
include /usr/share/openldap/schema/core.schema
include /usr/share/openldap/schema/cosine.schema
include /usr/share/openldap/schema/corba.schema
include /usr/share/openldap/schema/inetorgperson.schema
include /usr/share/openldap/schema/java.schema
include /usr/share/openldap/schema/krb5-kdc.schema
include /usr/share/openldap/schema/kerberosobject.schema
include /usr/share/openldap/schema/misc.schema
include /usr/share/openldap/schema/nis.schema
include /usr/share/openldap/schema/openldap.schema
include /usr/share/openldap/schema/rfc822-MailMember.schema
include /usr/share/openldap/schema/mailrouter.schema
# Le schéma Samba
include /usr/share/doc/samba3-doc-3.0.0/examples/LDAP/samba.schema
# les éventuels schémas personnels sur la machine
include /etc/openldap/schema/local.schema
pidfile /var/run/ldap/slapd.pid
argsfile /var/run/ldap/slapd.args
modulepath /usr/lib/openldap
# la configuration pour LDAPSTLSCertificateFile /etc/ssl/openldap/ldap.pem
* suffix : on définit la base de l'arborescence LDAP a utiliser
* rootdn : on définit un super-utilisateur LDAP* rootpw : le mot de passe du super-utilisateur peut être en clair ou
crypté
Les ACLs permettent de masquer certains attributs en fonction del'utilisateur qui interroge l'annuaire. Elles ne sont pas indispensables au bonfonctionnement de la solution, mais elles sécurisent l'application. Il est doncpréférable de maîtriser leur fonctionnement.
Il suffit ensuite de démarrer le serveur avec la commande suivante :
$ service ldap start
2.3.B CLIENTS OPENLDAP
Afin de pouvoir interroger le serveur, il faut compléter un fichier deconfiguration qui renseignera les clients LDAP. Les commandes de base,ldapsearch par exemple, acceptent des paramètres afin de spécifier la partie del'arbre à interroger. En enregistrant ces informations dans le fichier /
etc/openldap/ldap.conf (ou /etc/ldap.conf qui sera en général un liensymbolique sur le précédent), il ne sera plus nécessaire de les spécifier.
$ cat /etc/openldap/ldap.conf
# Caractéristiques du serveur LDAP a interroger
host 127.0.0.1
port 389
ssl no
# partie de l'arbre a interroger
base dc=edge-it,dc=fr
# utilisateur interrogeant l'annuaire
#binddn cn=Manager,dc=edge-it,dc=fr
# le mot de passebindpw secret
# idem quand on est root (souvent le manager lui-même)
# le mot de passe sera dans /etc/ldap.secret
rootbinddn cn=Manager,dc=edge-it,dc=fr
# la requête utilise le scope ci-dessous par défaut
# sub/one/base
scope sub
# le filtre par défaut d'un utilisateur système
pam_filter objectclass=posixaccount
# le nom système (login) de l'utilisateur est dans le champs spécifie icipam_login_attribute uid
# les mots de passe sont au format MD5pam_password md5
# les OUs où se trouvent les utilisateurs et groupes
nss_base_passwd o=edge-it,dc=fr?sub
nss_base_shadow o=edge-it,dc=fr?sub
nss_base_group ou=Groups,o=edge-it,dc=fr?sub
L'option base peut être une sous-partie de l'arbre définie dans LDAP (parexemple, ou=Users,dc=edge-it,dc=fr).
L'option binddn n'est pas obligatoire. Si elle n'est pas spécifiée, l'annuairesera interrogé de manière anonyme (à condition que les ACLs définies dans /
etc/openldap/slapd.conf le permettent) si la requête est effectuée par un autreutilisateur que root.
L'option rootbinddn ne contient pas obligatoirement le manager LDAP, maisun utilisateur qui aura les droits de lecture (voire d'écriture) sur l'arbre LDAP(à condition que les ACLs définies dans /etc/openldap/slapd.conf lepermettent). Ce sera l'utilisateur utilisé lorsque root fera des requêtes.
L'option scope peut être modifiée pour éviter un parcours massif de l'arbre,mais cela obligera à spécifier la méthode de recherche sur la ligne decommande dès qu'on souhaitera une requête sur tout l'arbre. (base présentel'entrée correspondant exactement à l'élément recherché; one présente les
entrées dont le parent direct est l'élément de recherche indiqué; sub présentetoutes les entrées de la sous-arborescence de l'élément recherché).
La définition d'un utilisateur système peut être basée sur un autreobjectclass que posixAccount. Néanmoins, c'est ce dernier qui définit demanière standard les mêmes champs que le fichier /etc/passwd. De même, lechamp uid est prévu à cet effet.
On cryptera les mots de passe en MD5, interprétables par la plupart desclients LDAP.
Les options nss_base pourraient restreindre la recherche des utilisateursdans l'OU concernée (ou=Users), mais en faisant cela, on provoque une mauvaisegestion des uidNumber pour la création des utilisateurs et des machines. Eneffet, les machines ne sont que des utilisateurs un peu particuliers. Lors de lacréation d'une machine dans l'arbre LDAP, il faut que l'on soit capable dedéterminer le premier uidNumber libre en vérifiant dans les deux Ous. Dans lecas contraire, on risque la présence de doublons.
Cela signifie qu'on cherche cet uidNumber à partir du point spécifié, et danstoute la sous-arborescence. Si l'arbre contient de nombreuses OUs au mêmeniveau, cela peut être long. Une solution serait de regrouper les utilisateurs etles machines dans une même OU et de limiter la recherche à cette portion de
l'arbre. Une autre solution serait de patcher les outils de génération des
A priori, à partir de cet instant, on peut interroger l'annuaire LDAP via lescommandes LDAP standards. Cependant, la base n'a pas encore été alimentée.
Voici un petit fichier qui met en place la structure de base exposée en débutde paragraphe.
Le mot de passe de l'utilisateur user est user. pour cet exemple.
2.4 P AM & NSS, AUTHENTIFICATION LDAP
Pour qu'un utilisateur LDAP puisse s'authentifier comme utilisateursystème, il faut configurer le système correspondant sur la machine : il s'agitde PAM.
Il est possible de configurer indépendamment les services afin que seulscertains puissent s'authentifier via LDAP. N'étant pas le sujet de ce document,une solution d'authentification générale est mise en oeuvre. /etc/pam.d/system-
Il reste à modifier le fichier /etc/nsswitch.conf pour lui indiquer aussid'interroger LDAP :
$ cat /etc/nsswitch.conf ...passwd: files ldap
shadow: files ldapgroup: files ldap...
Certaines versions de PAM prennent directement en compte lesmodifications sur ces fichiers. La version de PAM pour la MandrakeLinux 9.2(fivestar) nécessite un redémarrage du serveur à cette fin.
Une fois le serveur redémarré, l'utilisateur défini dans LDAP doit pouvoirêtre utilisé afin de se connecter. Son répertoire personnel n'étant pas encorecréé, il faudra le créer et l'associer à l'utilisateur avant de tenter de se
La commande id nous retourne bien les informations contenues dans l'arbreLDAP.Il faut maintenant créer le répertoire personnel de cet utilisateur et lui en
donner la propriété.
$ mkdir /home/user
$ chown user:utilisateurs /home/user
Une connexion ssh finira de valider la configuration de PAM et NSS :
$ ssh user@locahost
user@localhost's password:-bash-2.05b$ ls -al
total 16
drwxr-xr-x 2 user utilisateurs 4096 oct 27 14:30 ./
drwxr-xr-x 9 root root 4096 oct 27 14:25 ../
-rw------- 1 user utilisateurs 5 oct 27 14:27 .bash_history
-rw------- 1 user utilisateurs 53 oct 27 14:30 .Xauthority
-bash-2.05b$ exit
logout
Connection to localhost closed.
2.5 C UPS :
Samba se base sur les imprimantes définies dans CUPS pour proposer leservice d'impression à ses clients. Il faut donc commencer par configurer ceservice.
2.5. A CONFIGURATION GÉNÉRALE
La configuration se fait via une un navigateur internet et en saisissantl'URL http://<servername_or_serverip>:631
La configuration par défaut de cet outil d'administration n'autorise que les
connexions venant de la machine locale. Il faut donc commencer par donner la
possibilité d'y accéder par une autre machine.
$ vi /etc/cups/cupsd.conf
...
<Location />
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From YOUR_IP# par ex : Allow From 192.168.10.*
</Location>
...
<Location /admin>
AuthType Basic
AuthClass System
Order Deny,Allow
Deny From All
Allow From 127.0.0.1
Allow From YOUR_IP# par ex : Allow From 192.168.10.*
</Location>
La configuration sera finalisée en spécifiant dans le fichier /
etc/cups/client.conf , le nom du serveur qu'on vient de définir.
$ cat /etc/cups/client.conf
...
ServerName 127.0.0.1
...
A partir de là, l'outil d'administration est accessible pour le ou les postesdéfinis.
En se connectant à l'URL correspondante, le menu "printers" permetd'ajouter/modifier/supprimer une imprimante. Une fois une imprimantedéfinie, on peut imprimer une page de test pour valider la configuration.
2.5.B PRÉPARATIFS POUR S AMBA
Ce paragraphe ne concerne l'installation que si les drivers d'impression sontservis par le contrôleur de domaine.
Afin de préparer le terrain pour Samba, la procédure d'installation a ducréer le répertoire /usr/share/cups/drivers (en installant le package cups-
drivers et ses dépendances ainsi que les drivers Adobe) et y placer les fichierssuivants :
Les drivers CUPS fournissent les fichiers suivants :* cups.hlp
* cupsdrvr.dll
* cupsui.dll
Ces fichiers supportent les clients Windows NT/2000/XP, mais pas95/98/Me.
Les drivers Adobe fonctionnent pour les clients 95/98/Me comme pour lesclients NT/2000/XP.
95/98/Me :* ADFONTS.MFM
* ADOBEPS4.DRV
* ADOBEPS4.HLP
* DEFPRTR2.PPD
* ICONLIB.DLL
*PSMON.DLL
NT/2000/XP :* ADOBEPS5.DLL
* ADOBEPSU.DLL
* ADOBEPSU.HLP
Ces fichiers sont issus des "PostScript printer drivers for Windows"disponibles sur le site de la société Adobe7. On choisira une version des"Adobe Universal PostScript Windows Driver Installer", puis on l'installera surun poste Windows afin de récupérer les fichiers listés ci-dessus.
Si les deux types de drivers pour Windows NT/200x/XP sont présents, lesdrivers Adobe seront ignorés au profit des drivers CUPS.
2.5.C DÉFINITION D'UNE IMPRIMANTE
Pour ce document, il s'agit d'une HP LaserJet 4000, définie sous le nomhplaser4000-Bohrium.
Samba va utiliser les services qui ont été mis en place jusqu'à présent.
2.6. A H YPOTHÈSES DE TRAVAIL
On considère les options de configuration suivantes :* Le template de configuration est prévu pour installer un PDC.* Les répertoires des utilisateurs sont dans /home.* Les profiles sont dans /home/profiles (chmod 1757).
* Les fichiers netlogon sont dans /home/netlogon* Un partage public existe dans /home/public (chmod 1757)* Chaque groupe d'utilisateurs a un répertoire commun dans /
home/groupes
* Le domaine s'appelle EDGE-IT
* Le PDC s'appelle EDGE-PDC
* Le changement de mot de passe est assuré par un scriptexterne. Il effectue le changement du mot de passe Windows ETUnix.
* Le serveur LDAP est local
* On utilise des scripts de netlogon afin de monter des partagessupplémentaires, effectuer quelques opérations de maintenance surle client Windows et/ou le compte système Unix (directive root
preexec).
* L'administrateur du domaine s'appelle administrateur (uid1000) et appartient au groupe administrateurs (gid 1000).
2.6.B LE FICHIER DE CONFIGURATION S AMBA
Ce fichier est divisé en deux sections principales :* [global] définit le rôle du service Samba (PDC, BDC, serveur
isolé, membre du domaine).* les autres blocs définissant les partages accessibles aux clients
Windows : les partages de fichiers, et les partages d'imprimantes.
Puisque nous avons défini un groupe d'administrateurs dans Samba, il estnécessaire que ce groupe existe sur le système et qu'il contienne au moins unutilisateur.
Pour cela, il faut récupérer le SID propre au serveur que nous venonsd'installer.
Après avoir vérifié la configuration, nous créerons un utilisateur et songroupe définis sur cette base :
Après avoir configuré les différents services séparément, il est temps de lesassocier sous la coupe de Samba et de vérifier leur bon fonctionnement.
3.1 V É RIFICATION DE LA CONFIGURATION S AMBA AVEC TESTPARM
testparm est l'outil qui permet de connaître le rôle reconnu à la machinedans un réseau Microsoft Windows. Il souligne aussi les options nonreconnues, et détaille la configuration du service.
$ testparm
Load smb config files from /etc/samba3/smb.conf
Processing section "[homes]"
Processing section "[netlogon]"
Processing section "[profiles]"
Processing section "[printers]"
Processing section "[print$]"
Loaded services file OK.
Server role: ROLE_DOMAIN_PDCPress enter to see a dump of your service definitions
# Global parameters
[global]
dos charset = 850
unix charset = ISO8859-15
workgroup = EDGE-IT
netbios name = EDGE-PDC
server string = Edge-IT PDC
passdb backend = ldapsam, guest
guest account = administrateur
passwd program = /usr/share/samba3/scripts/smbldap-passwd.pl %u
3.2 SID ET CR É ATION DE L ' UTILISATEUR ADMINISTRATEUR
Maintenant que le service démarre, il faut utiliser le SID du PDC afind'identifier les utilisateurs du domaine, et en tout premier lieu,l'administrateur
$ net3 getlocalsid
SID for domain EDGE-PDC is: S-1-5-21-1742119943-1715997226-1710541444
$ cat /root/administrateur.ldif
dn: uid=administrateur,ou=Users,dc=edge-it,dc=fr
objectclass: top
objectClass: inetOrgPerson
#Définition des attributs Posix
objectClass: posixAccount
uid: administrateur
cn: Administrateur du Domaine
sn: administrateur
gecos: Administrateur Domaine Windows
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/administrateur
loginShell: /bin/bash
userPassword:: e2NyeXB0fSQxJFBsYS9MVlE1JENVNFBZcklzWlIxQ1JhRzYvcFFENjA=#Définition des attributs LDAP
« anonyme »), on obtient une liste des partages publics du serveur, ainsi que
son rôle sur le domaine.
3.4 S AMBA LDAP : A UTHENTIFICATION
Si Samba sait comment s'adresser à l'annuaire LDAP, il n'a pas encore lemot de passe qui lui permettra de s'authentifier. Il faut spécifier le mot depasse qui correspond au ldap admin dn renseigné dans /etc/samba3/smb.conf.
$ smbpasswd3 -w secret
Setting stored password for "cn=Manager,dc=edge-it,dc=fr" in secrets.tdb
3.5 C ONNEXION AUX SERVICES ( PARTIE FICHIERS )
Notre utilisateur administrateur, avant de nous servir en tantqu'administrateur du domaine, est avant tout un utilisateur du domaine. Nouspouvons donc l'utiliser pour vérifier que le PDC est opérationnel, et que lespartages définis sont accessibles.
Cette première commande montre les partages disponibles pour l'utilisateuradministrateur. En plus des partages publics, la liste fait apparaître son homedirectory.
$ smbclient3 -L EDGE-PDC -U administrateur
Password:
Sharename Type Comment
--------- ---- -------
print$ Disk
IPC$ IPC IPC Service (Edge-IT PDC)
ADMIN$ IPC IPC Service (Edge-IT PDC)hplaser4000-B Printer HP LaserJet 4000 Series PS
administrateu Disk Home Directories
Server Comment
--------- -------
EDGE-PDC Edge-IT PDC
Workgroup Master
--------- -------
EDGE-IT EDGE-PDC
La commande suivante permet d'accéder au répertoire privé de
37492 blocks of size 524288. 35893 blocks available
smb: \> quit
Si ces deux commandes fonctionnent parfaitement, la liaison Samba/ldapest confirmée car l'utilisateur a pu s'authentifier, et trouver les informationspour accéder au répertoire approprié.
3.6 C R É ATION DES IMPRIMANTES SOUS S AMBA
Avant toute vérification, il est important de noter qu'il existe un bug connupouvant perturber la liaison entre CUPS et Samba. Celui-ci empêche Sambade rafraîchir correctement la liste des imprimantes disponibles sous CUPS,
liste qui permet de les servir lorsque les drivers auront été associés. Si aprèsavoir ajouté une imprimante dans CUPS, lors de cette associationdriver/imprimante, un message d'erreur à la commande setdriver retourne lemessage NT_STATUS_UNSUCCESSFUL , il faut redémarrer Samba.
L'ajout d'une imprimante peut se faire étape par étape (ajout du driver dansla liste des drivers utilisables, association d'un driver à une imprimante), oupar une commande unique disponible dans le package CUPS.
Les drivers CUPS sont stockés dans /usr/share/cups/drivers .
$ ll /usr/share/cups
total 28
drwxr-xr-x 2 root root 4096 oct 27 13:52 banners/
drwxr-xr-x 2 root root 4096 oct 27 13:52 charsets/
drwxr-xr-x 2 root root 4096 oct 27 13:52 data/
drwx------ 2 root root 4096 oct 27 14:35 drivers/drwxr-xr-x 2 root root 4096 oct 27 13:52 fonts/
drwxr-xr-x 26 root root 4096 oct 27 13:52 model/
drwxr-xr-x 4 root root 4096 oct 27 13:52 templates/
La commande qui réalise automatiquement l'enregistrement des
imprimantes stocke les drivers dans /var/lib/samba3/printers .
A supposer que lors de l'installation de CUPS, toutes les imprimantes aienttoutes été correctement configurées (page de test concluante), la commandesuivante effectuera le lien avec Samba :
Si le service a l'air opérationnel, la création d'utilisateurs ou de machines àpartir de fichiers LDIF est périlleuse : il y a un risque d'oublier des attributsessentiels au bon fonctionnement de l'application.
Pour cela, les smbldap-tools ont été packagés avec Samba. Il s'agit d'unensemble de commandes qui permettent d'ajouter/modifier/supprimer desutilisateurs, des machines ou des groupes dans l'annuaire LDAP, avec ou sansles attributs Samba nécessaires.
4.1 L ES PR É REQUIS
Pour fonctionner, ces outils nécessitent le langage Perl, ainsi que le moduleNet::LDAP, nécessitant lui aussi quelques autres modules :
• perl-ldap
• perl-Authen-SASL (dépendance du package perl-ldap mandrake)• perl-XML-Parser (dépendance du package perl-ldap mandrake)• perl-URI (dépendance du package drakfirsttime mandrake)• perl-Convert-ASN1 (dépendance des outils smbldap-tools)
Les outils savent donc discuter avec l'annuaire LDAP pour la consultationd'informations. Comme le Manager est configuré avec son mot de passe dans lefichier de configuration des outils, il est logique de voir les champs de mot de
passe (userPassword, et éventuellement sambaLMPassword et sambaNTPassword) malgréles éventuelles ACLs définies dans /etc/openldap/slapd.conf .
On retrouve l'utilisateur test dans le groupe auquel il a été associé.
Cet utilisateur n'a pas de shell, il ne peut donc pas se connecter en ssh surla machine, par exemple. Il suffit de modifier cette valeur pour valider quenotre utilisateur fonctionne sur le système :
$ /usr/share/samba3/scripts/smbldap-usermod.pl -s /bin/bash -a test
Could not chdir to home directory /home//test: No such file or directory
/usr/X11R6/bin/xauth: error in locking authority file /
home//test/.Xauthority
-bash-2.05b$ exit
logout
Connection to localhost closed.
L'erreur concernant l'accès au répertoire personnel de l'utilisateur est
normale, puisque nous ne l'avons pas créé, ni par la commande de création del'utilisateur lui-même, ni manuellement. Néanmoins, l'utilisateur est reconnupar le système, et peut s'authentifier, bénéficier d'un shell...
Pour valider le fonctionnement sous Samba, il faut que son répertoirepersonnel existe :
$ smbclient //EDGE-PDC/homes -U test
Password:
tree connect failed: NT_STATUS_BAD_NETWORK_NAME
$ mkdir -m 750 /home/test
$ chown test:usersgp /home/test
$ ls -al /home/test
total 8
drwxr-x--- 2 test usersgp 4096 oct 28 11:08 ./
drwxr-xr-x 13 root root 4096 oct 28 11:08 ../
$ smbclient //EDGE-PDC/homes -U test
Password:
smb: \> dir
. D 0 Tue Oct 28 11:08:12 2003
.. D 0 Tue Oct 28 11:08:12 2003
37492 blocks of size 524288. 35893 blocks available
smb: \> quit
4.5 D É TAILS DES COMMANDES DISPONIBLES
4.5. A LES UTILISATEURS
Voir les informations d'un utilisateur : /usr/share/samba3/scripts/smbldap-
-a is a Windows User (otherwise, Posix stuff only)
-w is a Windows Workstation (otherwise, Posix stuff only)
-x creates rid and primaryGroupID in hex instead of decimal
-u uid
-g gid
-G supplementary comma-separated groups
-n do not create a group
-d home
-s shell
-c gecos
-m creates home directory and copies /etc/skel
-k skeleton dir (with -m)
-P ends by invoking smbldap-passwd.pl
-A can change password ? 0 if no, 1 if yes
-B must change password ? 0 if no, 1 if yes
-C sambaHomePath (SMB home share, like '\\PDC-SRV\homes')
-D sambaHomeDrive (letter associated with home share, like 'H:')
-E sambaLogonScript (DOS script to execute on login)
-F sambaProfilePath (profile directory, like '\\PDC-SRV\profiles\foo')
-H sambaAcctFlags (samba account control bits like '[NDHTUMWSLKI]')
-N canonical name-S surname
-? show this help message
Lorsqu'on souhaitera créer un utilisateur système simple, on devra penserque la configuration par défaut propose un shell /bin/false. Cet utilisateur nepourra donc pas se connecter en SSH. On pourra aussi créerautomatiquement son répertoire personnel. Pour éviter d'oublier de lui donnerun mot de passe, l'option -P peut être utilisée (à condition que /
usr/local/sbin/smbldap-passwd.pl soit un lien symbolique sur /
L'utilisateur user1 appartient au groupe usergp. Il va être aussi associé augroupe group1. Il s'agit alors d'un groupe secondaire pour cet utilisateur, cequi ne modifie en rien sa définition dans l'annuaire LDAP.
Une machine est en fait un utilisateur qui dispose d'un attribut Sambaspécifiant sa qualité. Son nom est suffixé, après la création, par le caractèredollar ($).
Création d'une machine : /usr/share/samba3/scripts/smbldap-useradd.pl
Lors de cette définition, aucun attribut spécifique à Samba n'est ajouté. Parcontre, la machine a été créée dans l'OU concernée, et le nom comporte bienun dollar à la fin. Lorsque cetta machine sera jointe au domaine, différentschamps Samba seront ajoutés dont sambaAcctFlags: [W] lui affectant son statutde “workstation”.
Les autres commandes concernant les utilisateurs affectent les machines dela même manière.
4.5.D LES AUTRES OUTILS
Les autres outils disponibles dans le répertoire /usr/share/samba3/scripts/
ne concernent pas directement le cadre de ce document.* convertSambaAccount convertit un arbre LDAP du schéma samba2 verssamba3* print-pdf est un émulateur d'imprimante qui génére du PDF
* smbldap-migrate-accounts.pl & smbldap-migrate-groups.pl permettent lamigration des comptes à partir d'un dump Windows.* smbldap-populate.pl crée une arborescence de base dans LDAP.
Puisque le service semble répondre correctement aux requêtesprécédentes, il ne reste plus qu'à intégrer une machine dans le domaine, ettenter de connecter un utilisateur final.
La première étape est donc d'intégrer une machine Windows sur le réseaugéré par le PDC Samba3.
Il existe deux méthodes. L'une consiste à intégrer la machine dans ledomaine sans pour autant l'avoir préalablement déclarée sur le PDC, laseconde en créant un compte de machine sur le PDC, puis en joignant lamachine au domaine.
L'ensemble des tests ont été réalisés avec un poste Windows 2000 Pro.
5.1 I NSCRIPTION O N T HE F LY
Il s'agit de faire en sorte qu'une machine s'inscrive d'elle même dans leréseau, sans opération particulière sur le PDC. Pour cela, il suffit à un desmembres de la liste définie dans le fichier /etc/samba3/smb.conf à la ligne admin
users de s'authentifier au moment de la jonction au domaine pour que lamachine s'inscrive.
C'est lors de cette opération que la directive add machine script est utilisée.Il faut se connecter en tant qu'administrateur local de la machine.
En cliquant sur le bouton “Propriétés” dans cette fenêtre, on peut alorsspécifier le domaine à rejoindre.
Une nouvelle fenêtre apparaît dans laquelle il faut spécifier un utilisateur dela liste spécifiée à l'attribut admin users du fichier /etc/samba3/smb.conf (unutilisateur de l'annuaire LDAP, et non de la machine Windows). L'utilisateuradministrateur de notre annuaire LDAP est dans ce cas.
On constate que la machine est créée dans l'OU Computers, et qu'un dollar ($)est ajouté à son nom. Tant que la machine n'est pas intégrée dans le domaine,il n'y a pas d'attributs Samba3.
La machine sera ensuite intégrée au domaine en suivant la même procédurequ'au chapitre précédent.
Voici la machine complètement qualifiée, et intégrée au domaine.
5.3 C ONNEXION D ' UN UTILISATEUR
Après le redémarrage, la machine peut donc authentifier l'utilisateur test,puisqu'elle a intégré le domaine. Il suffit donc de se logguer, et vérifier que lespartages et imprimantes sont accessibles.
Il faut dans un premier temps sélectionner le domaine auquel l'utilisateur vase connecter, en déroulant le menu correspondant :
L'utilisateur test s'authentifie alors sur le domaine spécifié
L'utilisateur est alors dans son environnement de travail après un messageindiquant qu'il n'a pas de profil utilisateur enregistré sur le serveur. Ce profilsera créé lorsque l'utilisateur quittera son environnement la première fois.