Sie sind auf Seite 1von 97

Rapport d'installation d'un serveur Samba 3 PDC LDAP Serveur d'impression

Auteur : Loc Vaillant document : Rapport d'installation de la solution SmartShare - Document Type Rfrence : DT-RI-SmartShare-DocumentMaitre.sxg Date : 18/11/04

EDGE-IT SARL au capital de 10 000

19, rue de Turbigo 75002 PARIS Tel : 01 44 82 78 85 Fax : 01 44 82 78 89

RCS PARIS B 444 481 204

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

HISTORIQUE
Version
V 0.1 V 0.2 V 0.3 V 0.4 V 0.5 V 0.6 V 0.7 V 0.8 V 0.9 V1 V 1.1 V 1.2 V 1.3

Date
21-27/10/03 27/10/03 28/10/03 28/10/03 29/10/03 02/11/03 03/11/02 09/12/03 22/12/03 12/01/04 16/02/04 19/03/04 05/05/04

Auteur
LVT ANS LVT ANS LVT PLT ANS LVT LVT LVT LVT ANS SLI

Etat
Draft Draft Draft Draft Draft Draft Draft Draft Draft Document Document Document Final

Commentaires
Parties 1 2 - 3 Relecture Corrections Partie 4 Relecture Corrections Partie 5, Corrections 3.6, Ajout 3.7 Relecture - Corrections Relecture - Corrections Partie 6 Conventions de lecture Licence du document Annexes client Modification des fichiers de configuration Relecture - Corrections Relecture - Corrections

Autorisation

LVT

Page 2 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Table des matires


Licence du document.........................................................................................5 Conventions de lecture......................................................................................6 Objectif : Serveur PDC/LDAP + Serveur de fichier + Serveur d'impression.....7 1 Installation de la machine et des services......................................................8 1.1 Mthode d'installation : Kickstart ......................................................8 1.2 OpenSSH..................................................................................................9 1.3 OpenLDAP................................................................................................9 1.4 CUPS......................................................................................................10 1.5 Samba....................................................................................................10 2 Configuration des services............................................................................11 2.1 Configuration rseau..............................................................................11 2.1.a Le nom de la machine......................................................................11 2.1.b La configuration DNS......................................................................12 2.1.c La connexion au rseau...................................................................12 2.2 OpenSSH................................................................................................14 2.3 OpenLDAP..............................................................................................15 2.3.a Serveur OpenLDAP..........................................................................15 2.3.b Clients OpenLDAP...........................................................................17 2.4 Pam & NSS, authentification LDAP.......................................................21 2.5 Cups :.....................................................................................................24 2.5.a Configuration gnrale....................................................................24 2.5.b Prparatifs pour Samba...................................................................25 2.5.c Dfinition d'une imprimante............................................................26 2.6 Samba :..................................................................................................27 2.6.a Hypothses de travail......................................................................27 2.6.b Le fichier de configuration Samba..................................................27 2.6.c Cration de l'utilisateur administrateur..........................................34 3 Association des services et test de Samba :..................................................36 3.1 Vrification de la configuration Samba avec testparm..........................36 3.2 SID et cration de l'utilisateur administrateur .....................................38 3.3 Rle du Serveur.....................................................................................39 3.4 Samba - LDAP : Authentification............................................................40 3.5 Connexion aux services (partie fichiers)................................................40 3.6 Cration des imprimantes sous Samba..................................................41 3.7 Les rpertoires crer et leurs droits...................................................44 4 Outils optionnels...........................................................................................45 4.1 Les prrequis.........................................................................................45 4.2 Liste des outils disponibles....................................................................45 4.3 Configuration.........................................................................................46 4.4 Manipulation..........................................................................................48 4.5 Dtails des commandes disponibles.......................................................50
Page 3 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

4.5.a Les utilisateurs................................................................................50 4.5.b Les groupes.....................................................................................56 4.5.c Les machines...................................................................................58 4.5.d Les autres outils..............................................................................59 5 Intgration de clients Windows....................................................................60 5.1 Inscription On-The-Fly...........................................................................60 5.2 Inscription manuelle..............................................................................66 5.3 Connexion d'un utilisateur.....................................................................67 6 Configuration des imprimantes du PDC.......................................................72 Annexes...........................................................................................................77 Fichier auto_inst.cf..........................................................................................78 Les fichiers de configuration complets............................................................81 /etc/openldap/slapd.conf.............................................................................81 /etc/openldap/ldap.conf...............................................................................83 /etc/nsswitch.conf.......................................................................................84 /etc/pam.d/system-auth...............................................................................85 /etc/cups/cupsd.conf....................................................................................85 /etc/cups/client.conf....................................................................................87 /etc/samba3/smb.conf.................................................................................88 /etc/samba3/smbldap_conf.pm....................................................................91 /home/netlogon/logon_script.......................................................................95 /usr/local/sbin/mkhomedir...........................................................................96 /home/netlogon/MyDocs.reg.......................................................................97 Liens - Bibliographie........................................................................................98

Page 4 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Licence du document
DT-RI-SmartShare-DocumentMaitre.sxg Copyright 2003-2004 - EDGE-IT. Ce document est strictement confidentiel. Ce document est rserv au seul usage des administrateurs du rseau informatique interne du client (Le CLIENT). Il peut en tre ralis des copies pour une utilisation de ce support dans ce cadre prcis. Il ne peut pas en tre fourni une reproduction papier ou lectronique un tiers, sur le Net ou sur le rseau interne. Il ne peut pas en tre vendu une copie totale ou partielle sans l'accord crit d'EDGE-IT.

Page 5 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Conventions de lecture
Les noms de fichiers, de rpertoires ou de packages1, ainsi que les attributs de 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 rsultats sont prsents dans des cadres fond gris en courier-10. Les commandes sont prcdes du signe $ reprsentant le prompt de votre shell :
$ cat /etc/resolv.conf search edge-it.subnet nameserver 192.168.10.2 nameserver 193.252.19.3

Certains rsultats notables sont affichs en gras :


$ testparm3 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_PDC Press enter to see a dump of your service definitions ...

1 Paquetages Page 6 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Objectif : Serveur PDC/LDAP + Serveur de fichier + Serveur d'impression

Ce document a pour but de prsenter l'installation d'un serveur Samba (contrleur principal de domaine, authentification et autorisations, serveur de fichiers et d'impression) bas sur un annuaire LDAP pour la gestion des utilisateurs. Il dcrit la mthode d'installation, les lments spcifiques aux besoins du service ainsi que la configuration mise en oeuvre. On trouvera aussi une notice explicative des outils de base pour tester le service et ajouter les premiers utilisateurs.

Page 7 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

1INSTALLATIONDELAMACHINEETDESSERVICES
La distribution sur laquelle se base l'installation de ce service est une MandrakeLinux 9.2 (fivestar)2. Plutt que de slectionner les packages manuellement lors de chaque installation, une procdure d'installation, dite "kickstart", permet d'effectuer un grand nombre d'tapes (voire toutes) automatiquement. Cette mthode permet donc de disposer d'un systme d'exploitation allg, contenant uniquement les briques logicielles ncessaires la mise en oeuvre du 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 la solution, tape par tape. Pour faciliter l'administration de ce serveur, le serveur OpenSSH est aussi install pour une prise de contrle distance.

1.1MTHODED'INSTALLATION:KICKSTART
Parfaitement intgre dans les procdures d'installation standards de la MandrakeLinux 9.2 (fivestar), la mthode kickstart permet l'installation rapide de clones. Ainsi, en modifiant quelques paramtres systmes (rseau, matriel...) dans le fichier appropri (auto_inst.cfg), on peut dployer une mme solution rapidement sur un grand nombre de machines. Via ce systme de kickstart, la configuration systme (clavier, souris, cran, rseau, utilisateurs de base) est prdfinie. Toutes les oprations peuvent tre automatises, mais on peut nanmoins en rendre certaines (comme le partitionnement) interactives, afin de les adapter la machine cible. On pourra gnrer son premier fichier de configuration kickstart via la procdure d'installation interactive de la distribution. Aprs une installation manuelle, un fichier auto_inst.cfg est gnr dans le rpertoire /root/drakx/. Il sera report sur disquette avec la commande drakautoinst (disponible dans le package drakxtools-newt).
2 http://qa.mandrakesoft.com/twiki/bin/view/Main/ReleasesHistory Page 8 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Ce mcanisme de kickstat n'inclut pas de post-configuration permettant la modification interactive des fichiers de configuration des services installs. L'quipe Edge-IT a donc intgr un certain nombre de fichiers "templates" afin de faciliter le travail de mise en oeuvre du service. Un mcanisme standard "mandrake-firstime3", modifi par nos soins, prpare ces fichiers en les recopiant d'un CD additionnel vers le disque de la machine. Vous trouverez en annexe le fichier utilis pour le kickstart lors du dploiement.

1.2OPENSSH
OpenSSH fournit un accs distant la machine via une connexion scurise (SSH = Secure SHell). L'administration des diffrents services peut ainsi se raliser partir de n'importe quel poste, pour autant que la connexion rseau soit possible. Site Officiel : http://www.openssh.org Version installe : 3.6.1p2-8mdk L'authentification pour ce service est principalement assure par les fichiers systme classiques( /etc/passwd notamment). On peut nanmoins envisager de pouvoir authentifier des utilisateurs LDAP.

1.3OPENLDAP
Il s'agit d'un service d'annuaire permettant (notamment) la centralisation des informations d'authentification des utilisateurs d'un ou plusieurs services rpartis sur une ou plusieurs machines. Site officiel : http://www.openldap.org Version installe : 2.1.22-5mdk L'annuaire LDAP contient les informations systme et Samba/Windows concernant les utilisateurs, les groupes auxquels ils peuvent appartenir, ainsi que les informations concernant les machines qui sont autorises joindre et travailler sur le domaine. Dans le cadre d'un PDC4, Samba interroge et met jour les informations
3 Fichier /etc/init.d/mandrake_firstime 4 Primary Domain Controler ou Contrleur Principal de Domaine Page 9 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

contenues dans l'annuaire.

1.4CUPS
Il s'agit d'un serveur d'impression grant les files d'attente, ainsi que le partage des imprimantes pour des postes clients. Site officiel : http://www.cups.org/ Version installe : 1.1.19-10mdk En configurant des imprimantes au niveau de CUPS, Samba est capable de dialoguer avec ce service pour les proposer ses clients Windows. CUPS propose des outils de gestion des imprimantes pour Samba afin de ne pas avoir installer les drivers sur les postes clients. Le serveur d'impression peut ainsi les mettre disposition directement.

1.5SAMBA
Samba gre principalement le rle de serveur de fichiers et/ou d'impression. Il est possible de l'intgrer un workgroup ou un domaine existant. Mais il peut aussi tre le PDC (voire le contrleur secondaire ou BDC). Site Officiel : http://www.samba.org Version installe : 3.0.2a (Edge-IT) Samba gre donc le partage de fichiers ainsi que la gestion des droits d'accs sur ces fichiers (il faut nanmoins un systme de fichiers particulier pour cela - XFS par exemple qui est intgr dans la solution prsente dans ce document). Pour reconnatre les utilisateurs et les groupes, il se base sur les informations contenues dans l'annuaire LDAP. Il transmet aussi les ordres d'impression CUPS pour le service d'impression.

Page 10 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

2CONFIGURATIONDESSERVICES
Une fois la procdure d'installation du serveur et des packages termine, il est ncessaire de mettre en place l'ensemble des services. Etape par tape, ces derniers seront configurs, puis tests afin de valider le bon fonctionnement de l'ensemble.

2.1CONFIGURATIONRSEAU
Le kickstart est prpar de manire positionner la configuration correctement. Il contient les informations de base pour la configuration du rseau. Les fichiers systme suivants contiennent les principales informations,e t permettent de complter la configuration, le cas chant : 2.1.ALENOMDELAMACHINE
$ cat /etc/hosts 127.0.0.1 192.168.10.107 localhost bohrium.edge-it.subnet

bohrium

Ce fichier contient un enregistrement par ligne, faisant correspondre une adresse IP avec un nom. Pour la qualification du nom, la forme longue5 sera souvent complte par une forme courte sans le nom de domaine. On pourra placer dans ce fichier toutes les machines que doit pouvoir contacter le serveur si on ne se sert pas d'un serveur DNS. Ici, il est spcifi le loopback, ainsi que l'IP et le nom officiels de la machine. Un deuxime 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 rseaux dtailles plus loin dans ce document.
5 Fully Qualified Domain Name ou FQDN Page 11 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

On peut momentanment changer localement le nom de la machine avec la commande hostname, mais cette modification sera perdue au prochain reboot. Les deux fichiers prsents ci-dessus sont les seuls qui prennisent la modification. 2.1.BLACONFIGURATIONDNS Si ce service n'est pas obligatoire, il vite nanmoins d'avoir remplir manuellement le fichier /etc/hosts.
$ cat /etc/resolv.conf search edge-it.subnet nameserver 192.168.10.2 nameserver 193.252.19.3

La premire ligne sert complter le nom d'une machine si on utilise son nom court. Ce dernier devient donc un FQDN6, traduit ensuite en adresse IP afin d'accder la machine. La ou les lignes suivantes spcifient les serveurs DNS interroger pour cette transformation nom<->IP. On pourra ajouter autant de lignes qu'on le souhaite, la rsolution s'arrtant ds qu'une rponse est renvoye par les serveurs, interrogs dans l'ordre du fichier. Si le package bind-utils est install, les commandes host et nslookup permettent de vrifier le bon fonctionnement de la configuration ( condition que le rseau soit dj 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.2 Address: 192.168.10.2#53 Name: helium.edge-it.subnet Address: 192.168.10.2

2.1.CLACONNEXIONAURSEAU Il s'agit de configurer la carte rseau puis de configurer les routes afin de pouvoir communiquer avec d'autres machines.
6 Fully Qualified Domain Name Page 12 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

En supposant que le serveur n'aie qu'une carte rseau, on devrait vrifier le fichier suivant afin de positionner l'IP de la machine :
$ cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=static IPADDR=192.168.10.107 NETMASK=255.255.255.0 NETWORK=192.168.10.0 BROADCAST=192.168.10.255 ONBOOT=yes

Le DEVICE est le nom associ la carte rseau. Le BOOTPROTO dfinit si l'IP est statique ou obtenue via un serveur DHCP. Si BOOTPROTO est gal static, on dfinit l'adresse IP (IPADDR) de la machine au sein de ce mme fichier, ainsi que que le masque rseau (NETMASK), l'adresse du rseau (NETWORK) et l'adresse de broadcast (BROADCAST). On active aussi cette interface ds le dmarrage du systme (ONBOOT). Pour que ce fichier soit lu et interprt, il faut se pencher sur le fichier / aperu au paragraphe Le nom de la machine .
$ cat /etc/sysconfig/network HOSTNAME=bohrium NETWORKING=yes GATEWAY=192.168.10.1

etc/sysconfig/network

ou non. les connexions vers des adresses IP autres que celles du rseau local, seront diriges vers cette passerelle qui se chargera de les router vers leur destination. Aprs modification, le service rseau sera relanc de la sorte :
$ service network restart

NETWORKING prcise si le service rseau doit tre lanc au boot GATEWAY spcifie la route par dfaut de la machine. Toutes

Pour vrifier que les modifications sont prises en compte :


$ ifconfig eth0 eth0 Lien encap:Ethernet HWaddr 00:E0:18:BC:42:C7 inet adr:192.168.10.107 Bcast:192.168.10.255 Masque:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:37057 errors:0 dropped:0 overruns:0 frame:0 TX packets:22879 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:100 RX bytes:5947221 (5.6 Mb) TX bytes:6910280 (6.5 Mb) Interruption:3 Adresse de base:0x8800

Page 13 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

L'adresse IP, le BROADCAST et le NETMASK apparaissent.


$ route -n Table de routage IP du noyau Destination Passerelle 192.168.10.0 0.0.0.0 127.0.0.0 0.0.0.0 0.0.0.0 192.168.10.1

Genmask 255.255.255.0 255.0.0.0 0.0.0.0

Indic U U UG

Metric 0 0 0

Ref 0 0 0

Use 0 0 0

Iface eth0 lo eth0

La route par dfaut (0.0.0.0) passe bien par la passerelle spcifie dans le fichier de configuration. Si le package iputils est install, la commande ping est un test simple pour vrifier le fonctionnement du rseau. Nanmoins, si elle ne rpond rien, cela ne signifie pas que le rseau ne fonctionne pas, il est possible que l'adresse qu'on cherche atteindre soit protge par un firewall refsant les connexions ICMP (ping). Les commandes host et nslookup par exemple compltent le test.

2.2OPENSSH
L'installation du package suffit la mise en oeuvre du service. Tous les utilisateurs dfinis sur le systme (dans /etc/passwd, i.e. root, admin...) pourront accder distance la machine. De mme, via ce canal scuris, il est possible de lancer des applications graphiques dont l'interface apparat sur la machine client. Si ces fonctionnalits sont intressantes dans certains cas prcis, il est nanmoins conseill de les dsactiver :
$ cat /etc/ssh/sshd_config ... # on empche 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 ractiver l'option concerne. La prise en compte d'une modification sera faite par la commande suivante :
$ service sshd restart

Page 14 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

2.3OPENLDAP
(Ce document considre que le lecteur possde les connaissances de base concernant LDAP).

L'installation se dcompose en une partie serveur, et une partie client. Cette dernire nous servira autant pour les tests de la partie serveur que pour la 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.ASERVEUROPENLDAP
$ less /etc/openldap/slapd.conf # La liste des schmas 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 schma Samba include /usr/share/doc/samba3-doc-3.0.0/examples/LDAP/samba.schema # les ventuels schmas personnels sur la machine include /etc/openldap/schema/local.schema pidfile argsfile modulepath /var/run/ldap/slapd.pid /var/run/ldap/slapd.args /usr/lib/openldap

# la configuration pour LDAPS TLSCertificateFile /etc/ssl/openldap/ldap.pem Page 15 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

TLSCertificateKeyFile TLSCACertificateFile

/etc/ssl/openldap/ldap.pem /etc/ssl/openldap/ldap.pem

################################## ### ### ### Dclaration du backend ### ### ### ################################## # stockage sous forme de base ldbm database ldbm # racine de l'arbre suffix "dc=edge-it,dc=subnet" # DN du Manager rootdn "cn=Manager,dc=edge-it,dc=subnet" # mot de passe du Manager rootpw secret # rpertoire de stockage de ce backend directory /var/lib/ldap # Indexes crs sur ce backend index objectClass,uid,uidNumber,gidNumber index cn,mail,surname,givenname

eq eq,subinitial

# niveau de log pour suivre les discussions avec le serveur LDAP loglevel 256 # quelques ACLs de protection d'information #access to attr=userPassword # by self write # by anonymous auth # by dn="cn=Manager,dc=edge-it,dc=subnet" write # by * none #access to attr=sambaLMPassword # by self write # by anonymous auth # by dn="cn=Manager,dc=edge-it,dc=subnet" write # by * none #access to attr=sambaNTPassword # by self write # by anonymous auth # by dn="cn=Manager,dc=edge-it,dc=subnet" write # by * none # Attention : il faut cette ACL pour que la commande ldapsearch -x simple retourne un rsultat access to * by self write by dn="cn=Manager,dc=edge-it,dc=subnet" write by * read

La configuration de base se fait sur les trois options suivantes :


Page 16 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

* suffix : on dfinit la base de l'arborescence LDAP a utiliser * rootdn : on dfinit 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 de l'utilisateur qui interroge l'annuaire. Elles ne sont pas indispensables au bon fonctionnement de la solution, mais elles scurisent l'application. Il est donc prfrable de matriser leur fonctionnement. Il suffit ensuite de dmarrer le serveur avec la commande suivante :
$ service ldap start

2.3.BCLIENTSOPENLDAP Afin de pouvoir interroger le serveur, il faut complter un fichier de configuration qui renseignera les clients LDAP. Les commandes de base, ldapsearch par exemple, acceptent des paramtres afin de spcifier la partie de l'arbre interroger. En enregistrant ces informations dans le fichier / etc/openldap/ldap.conf (ou /etc/ldap.conf qui sera en gnral un lien symbolique sur le prcdent), il ne sera plus ncessaire de les spcifier.
$ cat /etc/openldap/ldap.conf # Caractristiques 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 passe bindpw secret # idem quand on est root (souvent le manager lui-mme) # le mot de passe sera dans /etc/ldap.secret rootbinddn cn=Manager,dc=edge-it,dc=fr # la requte utilise le scope ci-dessous par dfaut # sub/one/base scope sub # le filtre par dfaut d'un utilisateur systme pam_filter objectclass=posixaccount # le nom systme (login) de l'utilisateur est dans le champs spcifie ici pam_login_attribute uid Page 17 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# les mots de passe sont au format MD5 pam_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 dfinie dans LDAP (par exemple, ou=Users,dc=edge-it,dc=fr). L'option binddn n'est pas obligatoire. Si elle n'est pas spcifie, l'annuaire sera interrog de manire anonyme ( condition que les ACLs dfinies dans / etc/openldap/slapd.conf le permettent) si la requte est effectue par un autre utilisateur que root. L'option rootbinddn ne contient pas obligatoirement le manager LDAP, mais un utilisateur qui aura les droits de lecture (voire d'criture) sur l'arbre LDAP ( condition que les ACLs dfinies dans /etc/openldap/slapd.conf le permettent). Ce sera l'utilisateur utilis lorsque root fera des requtes. L'option scope peut tre modifie pour viter un parcours massif de l'arbre, mais cela obligera spcifier la mthode de recherche sur la ligne de commande ds qu'on souhaitera une requte sur tout l'arbre. (base prsente l'entre correspondant exactement l'lment recherch; one prsente les entres dont le parent direct est l'lment de recherche indiqu; sub prsente toutes les entres de la sous-arborescence de l'lment recherch). La dfinition d'un utilisateur systme peut tre base sur un autre que posixAccount. Nanmoins, c'est ce dernier qui dfinit de manire standard les mmes champs que le fichier /etc/passwd. De mme, le champ uid est prvu cet effet. On cryptera les mots de passe en MD5, interprtables par la plupart des clients LDAP.
objectclass

Les options nss_base pourraient restreindre la recherche des utilisateurs dans l'OU concerne (ou=Users), mais en faisant cela, on provoque une mauvaise gestion des uidNumber pour la cration des utilisateurs et des machines. En effet, les machines ne sont que des utilisateurs un peu particuliers. Lors de la cration d'une machine dans l'arbre LDAP, il faut que l'on soit capable de dterminer le premier uidNumber libre en vrifiant dans les deux Ous. Dans le cas contraire, on risque la prsence de doublons. Cela signifie qu'on cherche cet uidNumber partir du point spcifi, et dans toute la sous-arborescence. Si l'arbre contient de nombreuses OUs au mme niveau, cela peut tre long. Une solution serait de regrouper les utilisateurs et les machines dans une mme OU et de limiter la recherche cette portion de l'arbre. Une autre solution serait de patcher les outils de gnration des
Page 18 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

entres dans l'arbre LDAP pour qu'ils sachent prcisment o chercher les uidNumber. Dans le cadre simple que nous mettons en place, la configuration propose ici suffit amplement. Le fichier /etc/ldap.secret doit contenir le mot de passe du manager, et avoir les droits en lecture/criture uniquement pour root :
$ ll /etc/ldap.secret -rw------1 root $ cat /etc/ldap.secret secret root 12 sep 29 23:06 /etc/ldap.secret

A priori, partir de cet instant, on peut interroger l'annuaire LDAP via les commandes LDAP standards. Cependant, la base n'a pas encore t alimente. Voici un petit fichier qui met en place la structure de base expose en dbut de paragraphe.
$ cat /root/ldap.ldif dn: dc=edge-it,dc=subnet objectClass: top objectClass: organization objectClass: dcObject l: Paris st: Ile-de-France o: edge-it dc: edge-it dn: ou=Users,dc=edge-it,dc=fr ou: Users objectClass: top objectClass: organizationalUnit description: Utilisateurs dn: ou=Groups,dc=edge-it,dc=fr objectClass: top objectClass: organizationalUnit ou: Groups description: Groupes dn: ou=Computers,dc=edge-it,dc=fr objectClass: top objectClass: organizationalUnit ou: Computers description: Machines du domaine

Pour injecter ces donnes :


Page 19 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

$ ldapadd -x -D "cn=Manager,dc=edge-it,dc=fr" -w secret -f /root/ldap.ldif

Pour les consulter :


$ ldapsearch -x version: 2 # # filter: (objectclass=*) # requesting: ALL # # edge-it, fr dn: dc=edge-it,dc=subnet objectClass: top objectClass: organization objectClass: dcObject l: Paris st: Ile-de-France o: edge-it dc: edge-it # Users, edge-it, fr dn: ou=Users,dc=edge-it,dc=fr ou: Users objectClass: top objectClass: organizationalUnit description: Utilisateurs # Groups, edge-it, fr dn: ou=Groups,dc=edge-it,dc=fr objectClass: top objectClass: organizationalUnit ou: Groups description: Groupes # Computers, edge-it, fr dn: ou=Computers,dc=edge-it,dc=fr objectClass: top objectClass: organizationalUnit ou: Computers description: Machines du domaine # search result search: 2 result: 0 Success # numResponses: 5 # numEntries: 4

On ajoutera un utilisateur de test, afin de vrifier les possibilits


Page 20 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

d'authentification de nos diffrents services. A supposer que les rpertoires des utilisateurs soit dans /home, et qu'on utilise un groupe dfini dans LDAP, voici les informations :
$ cat /root/groups.ldif # utilisateurs, Groups, edge-it, fr dn: cn=utilisateurs,ou=Groups,dc=edge-it,dc=fr objectClass: inetOrgPerson objectClass: posixGroup gidNumber: 1001 cn: utilisateurs sn: utilisateurs o: Edge-IT Groupes description: Utilisateurs Edge-IT $ cat /root/users.ldif # user, Users, edge-it, fr dn: uid=user,ou=Users,dc=edge-it,dc=fr objectClass: top objectClass: inetOrgPerson objectClass: posixAccount userPassword:: e2NyeXB0fSQxJGtTSnlsZlhxJG5GQlNUYVlIMHlyNHNzbGZ2emZlQy8= uid: user uidNumber: 1001 gidNumber: 1001 cn: user sn: user gecos: Utilisateur de test loginShell: /bin/bash homeDirectory: /home/user $ ldapadd -x -D "cn=Manager,dc=edge-it,dc=fr" -w secret -f /root/groups.ldif $ ldapadd -x -D "cn=Manager,dc=edge-it,dc=fr" -w secret -f /root/users.ldif

Le mot de passe de l'utilisateur user est user. pour cet exemple.

2.4PAM&NSS,AUTHENTIFICATIONLDAP
Pour qu'un utilisateur LDAP puisse s'authentifier comme utilisateur systme, il faut configurer le systme correspondant sur la machine : il s'agit de PAM. Il est possible de configurer indpendamment les services afin que seuls certains puissent s'authentifier via LDAP. N'tant pas le sujet de ce document, une solution d'authentification gnrale est mise en oeuvre. /etc/pam.d/systemauth sera modifi afin d'interroger LDAP :

Page 21 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

$ cat /etc/pam.d/system-auth #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required /lib/security/pam_env.so auth sufficient /lib/security/pam_unix.so likeauth nullok auth sufficient /lib/security/pam_ldap.so use_first_pass auth required /lib/security/pam_deny.so account account password password shadow password password session session session required sufficient required sufficient sufficient required required required optional /lib/security/pam_unix.so /lib/security/pam_ldap.so /lib/security/pam_cracklib.so retry=3 type= /lib/security/pam_unix.so nullok use_authtok md5 /lib/security/pam_ldap.so use_authtok /lib/security/pam_deny.so /lib/security/pam_limits.so /lib/security/pam_unix.so /lib/security/pam_ldap.so

La configuration par dfaut de la MandrakeLinux 9.2 (fivestar) fait pointer les diffrents services sur ce fichier :
cat /etc/pam.d/sshd #%PAM-1.0 auth required auth required account required password required session required session required session optional cat /etc/pam.d/login #%PAM-1.0 auth required auth required auth required account required password required session required session optional

/lib/security/pam_stack.so service=system-auth /lib/security/pam_nologin.so /lib/security/pam_stack.so service=system-auth /lib/security/pam_stack.so service=system-auth /lib/security/pam_stack.so service=system-auth /lib/security/pam_limits.so /lib/security/pam_console.so

/lib/security/pam_securetty.so /lib/security/pam_stack.so service=system-auth /lib/security/pam_nologin.so /lib/security/pam_stack.so service=system-auth /lib/security/pam_stack.so service=system-auth /lib/security/pam_stack.so service=system-auth /lib/security/pam_console.so

cat /etc/pam.d/su #%PAM-1.0 auth sufficient /lib/security/pam_rootok.so # Uncomment the following line to implicitly trust users in the "wheel" group. #auth sufficient /lib/security/pam_wheel.so trust use_uid # Uncomment the following line to require a user to be in the "wheel" group. #auth required /lib/security/pam_wheel.so use_uid Page 22 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

auth account password session session

required required required required optional

/lib/security/pam_stack.so /lib/security/pam_stack.so /lib/security/pam_stack.so /lib/security/pam_stack.so /lib/security/pam_xauth.so

service=system-auth service=system-auth service=system-auth service=system-auth

Il reste modifier le fichier /etc/nsswitch.conf pour lui indiquer aussi d'interroger LDAP : $ cat /etc/nsswitch.conf ... passwd: files ldap shadow: files ldap group: files ldap ... Certaines versions de PAM prennent directement en compte les modifications sur ces fichiers. La version de PAM pour la MandrakeLinux 9.2 (fivestar) ncessite un redmarrage du serveur cette fin. Une fois le serveur redmarr, l'utilisateur dfini dans LDAP doit pouvoir tre utilis afin de se connecter. Son rpertoire personnel n'tant pas encore cr, il faudra le crer et l'associer l'utilisateur avant de tenter de se connecter.

$ ldapsearch -x uid=user version: 2 # # filter: uid=user # requesting: ALL # # user, Users, edge-it, fr dn: uid=user,ou=Users,dc=edge-it,dc=fr objectClass: top objectClass: inetOrgPerson objectClass: posixAccount uid: user uidNumber: 1001 gidNumber: 1001 cn: user sn: user gecos: Utilisateur de test loginShell: /bin/bash homeDirectory: /home/user userPassword:: e2NyeXB0fSQxJGtTSnlsZlhxJG5GQlNUYVlIMHlyNHNzbGZ2emZlQy8= # search result Page 23 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

search: 2 result: 0 Success # numResponses: 2 # numEntries: 1

L'utilisateur user est toujours dans notre arbre LDAP. Le systme doit maintenant le percevoir comme utilisateur systme potentiel.
$ id user uid=1001(user) gid=1001(utilisateurs) groupes=1001(utilisateurs)

La commande id nous retourne bien les informations contenues dans l'arbre LDAP. Il faut maintenant crer le rpertoire personnel de cet utilisateur et lui en donner la proprit.
$ 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 drwxr-xr-x 9 root root 4096 oct -rw------1 user utilisateurs 5 -rw------1 user utilisateurs 53 -bash-2.05b$ exit logout Connection to localhost closed.

oct 27 14:30 ./ 27 14:25 ../ oct 27 14:27 .bash_history oct 27 14:30 .Xauthority

2.5CUPS:
Samba se base sur les imprimantes dfinies dans CUPS pour proposer le service d'impression ses clients. Il faut donc commencer par configurer ce service. 2.5.ACONFIGURATIONGNRALE La configuration se fait via une un navigateur internet et en saisissant l'URL http://<servername_or_serverip>:631 La configuration par dfaut de cet outil d'administration n'autorise que les
Page 24 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

connexions venant de la machine locale. Il faut donc commencer par donner la possibilit d'y accder 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>

configuration sera finalise en spcifiant dans etc/cups/client.conf, le nom du serveur qu'on vient de dfinir.
$ cat /etc/cups/client.conf ... ServerName 127.0.0.1 ...

La

le

fichier

A partir de l, l'outil d'administration est accessible pour le ou les postes dfinis. En se connectant l'URL correspondante, le menu "printers" permet d'ajouter/modifier/supprimer une imprimante. Une fois une imprimante dfinie, on peut imprimer une page de test pour valider la configuration.

2.5.BPRPARATIFSPOURSAMBA Ce paragraphe ne concerne l'installation que si les drivers d'impression sont servis par le contrleur de domaine. Afin de prparer le terrain pour Samba, la procdure d'installation a du crer le rpertoire /usr/share/cups/drivers (en installant le package cupsdrivers et ses dpendances ainsi que les drivers Adobe) et y placer les fichiers suivants :
$ ls /usr/share/cups/drivers Page 25 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

ADFONTS.MFM cupsdrvr.dll ADOBEPS4.DRV cups.hlp

ADOBEPS4.HLP cupsui.dll ADOBEPS5.DLL DEFPRTR2.PPD

ADOBEPSU.DLL ICONLIB.DLL ADOBEPSU.HLP PSMON.DLL

Les drivers CUPS fournissent les fichiers suivants : * cups.hlp * cupsdrvr.dll * cupsui.dll Ces fichiers supportent les clients Windows NT/2000/XP, mais pas 95/98/Me. Les drivers Adobe fonctionnent pour les clients 95/98/Me comme pour les clients 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 socit Adobe7. On choisira une version des "Adobe Universal PostScript Windows Driver Installer", puis on l'installera sur un poste Windows afin de rcuprer les fichiers lists ci-dessus. Si les deux types de drivers pour Windows NT/200x/XP sont prsents, les drivers Adobe seront ignors au profit des drivers CUPS. 2.5.CDFINITIOND'UNEIMPRIMANTE Pour ce document, il s'agit d'une HP LaserJet 4000, dfinie sous le nom
hplaser4000-Bohrium.

7 http://www.adobe.com/support/downloads/product.jsp?product=44&platform=Windows Page 26 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

2.6SAMBA:
Samba va utiliser les services qui ont t mis en place jusqu' prsent. 2.6.AHYPOTHSESDETRAVAIL On considre les options de configuration suivantes : * Le template de configuration est prvu pour installer un PDC. * Les rpertoires 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 rpertoire 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 script externe. Il effectue le changement du mot de passe Windows ET Unix. * Le serveur LDAP est local * On utilise des scripts de netlogon afin de monter des partages supplmentaires, effectuer quelques oprations de maintenance sur le client Windows et/ou le compte systme Unix (directive root preexec). * L'administrateur du domaine s'appelle administrateur (uid 1000) et appartient au groupe administrateurs (gid 1000). 2.6.BLEFICHIERDECONFIGURATIONSAMBA Ce fichier est divis en deux sections principales : * [global] dfinit le rle du service Samba (PDC, BDC, serveur isol, membre du domaine). * les autres blocs dfinissant les partages accessibles aux clients Windows : les partages de fichiers, et les partages d'imprimantes.
$ cat /etc/samba3/smb.conf [global]

Page 27 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

############################################## ### ### ### Caractristiques Netbios de la machine ### ### ### ############################################## # dfinition du nom du domaine grer workgroup = EDGE-IT # dfinition du nom Netbios de la machine netbios name = EDGE-PDC # commentaire concernant la machine server string = Edge-IT PDC ######################## ### ### ### Gestion des logs ### ### ### ######################## # lieu de stockage log file = /var/log/samba3/log.%m # taille maximale du fichier de log max log size = 5000 # niveau de log log level = 1 ##################################### ### ### ### dfinition du rle du serveur ### ### ### ##################################### # PDC security = user # OS level > 32 pour tre lu os level = 80 # permet le dclenchement des lections # dfinition d'un PDC local master = yes # domain master browser domain master = yes # force les lections pour devenir PDC preferred master = yes # le serveur fait de l'authentification domain logons = yes ################################# ### ### ### gestion des mots de passe ### ### ### ################################# # les changes de mots de passe sont encrypts encrypt passwords = yes # on utilise un script externe... pam password change = no passwd program = /usr/share/samba3/scripts/smbldap-passwd.pl %u # qui change aussi les mots de passe systme Page 28 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

unix password sync = no # dialogue entre Samba et le script passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* # en phase de debug, on active cette ligne pour tudier le dialogue ;passwd chat debug = yes # n'utiliser que si on stocke quelques utilisateurs spcifiques hors LDAP ;smb passwd file = /etc/samba3/smbpasswd ########################################### ### ### ### dfinition des bases d'utilisateurs ### ### ### ########################################### # on peut dfinir plusieurs types de sources ;passdb backend = ldapsam, smbpasswd, guest ;passdb backend = ldapsam:ldap://myfirstldap.edge-it.fr, ldapsam:ldap://mysecondldap.edge-it.fr, guest passdb backend = ldapsam, guest # dfinition des attributs ldap ldap admin dn = cn=Manager,dc=edge-it,dc=fr ldap ssl = No ldap port = 389 ldap suffix = dc=edge-it,dc=fr ldap machine suffix = ou=Computers ldap user suffix = ou=Users ldap group suffix = ou=Groups # le groupe des administrateurs du domaine admin users = @administrateurs ############## ### ### ### DIVERS ### ### ### ############## # le PDC est aussi serveur wins wins support = yes # si ce n'est pas le cas, on l'indique ici ;wins server = <ip> # ordre de resolution des noms netbios name resolve order = wins lmhosts bcast # pas de rsolution DNS sur les noms Netbios dns proxy = no # quelques options de performance rseau # ces valeurs sont valables sur la majorit des configurations socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 # Utilisateur utilis lorsque l'argument guest ok est a yes sur un partage guest account = administrateur

Page 29 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# cration d'un nouvel utilisateur -la-demande s'il n'existe pas dj dans la base. ; add user script = /usr/share/samba3/scripts/smbldap-useradd.pl -a %u # delete user script supprime l'utilisateur via les outils d'administration NT # en utilisant les outils d'administration NT, la cration d'un groupe estpossible ;add group script = /usr/share/samba3/scripts/smbldap-groupadd.pl %g # delete group script fait l'opration inverse # avec ces memes outils, on peut associer un utilisateur un groupe ;add user to group script = /usr/share/samba3/scripts/smbldap-groupmod.pl -m %u %g # delete user from group script fait l'opration inverse # script utilis pour ajouter une machine On-The-Fly avec une authentification comme administrateur du domaine add machine script = /usr/share/samba3/scripts/smbldap-useradd.pl -w %u ########################################## ### ### ### Translation des jeux de caractres ### ### ### ########################################## dos charset = 850 unix charset = ISO8859-15 ############################### ### ### ### Gestion de l'impression ### ### ### ############################### # on se sert des imprimantes dfinies dans CUPS # on charge la liste printcap name = cups load printers = yes # ajout des imprimantes autoris pour le groupe administrateurs printer admin = @administrateurs ############################### ### ### ### DEFINITION DES PARTAGES ### ### (fichiers) ### ### ### ############################### # le partage des homedirectory tel qu'il est dfini par dfaut # cre un partage du type \\SERVER\\%u # utilisant le path /home/%u [homes] comment = Home Directories browseable = no Page 30 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

writable = yes # si on souhaite avoir un partage priv ayant un autre nom que homes # on peut dfinir ce type d'entre ;[prives] ;path = /home/Prives/%u ;comment = Rpertoire Prive ;browseable = no ;writable = yes ;root preexec = /usr/local/sbin/mkhomedir %u %g # partage des scripts de netlogon gnrs la vole # par le script /home/netlogon/logon_script [netlogon] comment = Network Logon Service path = /home/netlogon guest ok = yes writable = no browseable = no root preexec = /home/netlogon/logon_script '%m' '%U' '%a' '%g' '%L' # definition du partage des profiles utilisateur [profiles] path = /home/profiles browseable = no guest ok = yes profile acls = yes writeable = yes # un partage supplmentaire qui sera monte # suivant le groupe de l'utilisateur qui se connecte # dynamique grce au script de netlogon gnr la vole ;[groupes] ;comment = Stockage Groupes ;path = /home/Groupes ;public = yes ;writable = yes ;hide unreadable = yes ############################### ### ### ### DEFINITION DES PARTAGES ### ### (imprimantes) ### ### ### ############################### #Comme les packages utiliss sont compils avec la libcups, la directive 'print command' est ignore. # partage des imprimantes dclares [printers] comment = All Printers path = /var/spool/samba3 browseable = no Page 31 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# to allow user 'guest account' to print. guest ok = yes writable = no printable = yes create mode = 0700 # partage de distribution des drivers d'impression [print$] path = /var/lib/samba3/printers browseable = yes read only = yes write list = @administrateurs guest ok = yes

Voici maintenant le script qui gnre le Netlogon la vole.


$ cat /home/netlogon/logon_script #!/bin/sh # # Generate logon script for windows (or dos) # Original Author: Francois-Xavier Le Bail mailto:fx.LeBail@free.fr # #-- PARAMETRES -# %m (machine netbios name) %U (user) %a (architecture) %g (group) (server) # $1 $2 $3 $4 $5 # # <-- START --> #-- VARIABLES SAMBA_DIR=/var/log/samba3 SUFFIX=cmd CLIENT_MACHINE="$1" USER="$2" # SYSTEM_TYPE (architecture) : WinXP, Win2K, WinNT, Win95, WfWg, Samba SYSTEM_TYPE="$3" GROUP="$4" SERVER_NAME="$5" SCRIPT="/home/netlogon/$USER.$SUFFIX" SERVER_TIME="\\\\EDGE-PDC" SERVER_NAS="\\\\EDGE-PDC" #-- FONCTIONS # end of line in windows/dos world : CR+NL # echo -n "WINDOWS_COMMAND"; echo -e '\r' # do the trick. # use "write" to write in the logon script write () { echo -n "$@"; echo -e '\r'; } # upper to lower function (user name, ...) u2l () { echo "$@" | tr '[A-Z]' '[a-z]'; } #-- ERRORS LOG -# for the new files Page 32 / 97

%L

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

umask 022 # if you need the errors messages #exec 2>>"$SAMBA_DIR/logon_script.err" # if you prefer the errors messages by machine name, comment the preceding line # and uncomment : exec 2>>"$SAMBA_DIR/logon_script.$USER.err" # if you need SHELL DEBUG, in the errors messages file, uncomment : #set -x #-- HEADER -# this redirection mean all the standard output go in the logon script exec 1>"$SCRIPT" # to hidden the script, (need "map hidden = yes", see in "man smb.conf") chmod o+x "$SCRIPT" #-- BODY -write "@ECHO off" write "ECHO." write "ECHO Type : $SYSTEM_TYPE." write "ECHO." write "ECHO Ordinateur : $CLIENT_MACHINE - Utilisateur : $USER - Groupe : $GROUP. - Serveur: $SERVER_NAME" write "ECHO." # set the workstation time at the server time write "NET TIME $SERVER_TIME /set /yes" # perhaps you need non persistent connexion write "NET USE /persistent:no" case "$SYSTEM_TYPE" in WinNT) # mount the home share write "NET USE U: $SERVER_NAS\\homes /yes" esac write "NET USE m: $SERVER_NAS\\groupes /yes" #write "NET USE t: $SERVER_NAS\\public /yes" #if [ "$GROUP" = administrateurs ]; then # write "NET USE z: $SERVER_NAS\\admins /yes" #fi #if [ "$USER" = administrateur ]; then # write "NET USE z: $SERVER_NAS\\admins /yes" #fi # if you need a pause #write "PAUSE"

Page 33 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

2.6.CCRATIONDEL'UTILISATEURADMINISTRATEUR Puisque nous avons dfini un groupe d'administrateurs dans Samba, il est ncessaire que ce groupe existe sur le systme et qu'il contienne au moins un utilisateur. Pour cela, il faut rcuprer le SID propre au serveur que nous venons d'installer. Aprs avoir vrifi la configuration, nous crerons un utilisateur et son groupe dfinis sur cette base :
$ cat /root/administrateur.ldif dn: uid=administrateur,ou=Users,dc=edge-it,dc=fr objectclass: top objectClass: inetOrgPerson #Dfinition 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= #Dfinition des attributs LDAP objectClass: sambaSAMAccount sambaAcctFlags: [UX] sambaSID: {SID}-3000 sambaPrimaryGroupSID: {SID}-3001 displayName: Administrateur du Domaine sambaProfilePath: \\EDGE-PDC\profiles\administrateur sambaLogonScript: administrateur.bat sambaHomePath: \\EDGE-PDC\homes sambaHomeDrive: H: sambaLogonTime: 0 sambaKickoffTime: 2147483647 sambaLogoffTime: 2147483647 sambaPwdCanChange: 0 sambaPwdMustChange: 2147483647 sambaPwdLastSet: 1065097447 sambaNTPassword: 146468B0272B27D6D995BF6F4CE07470 sambaLMPassword: 6A98EB0FB88A449C6C98100B1FB8AC32 dn: cn=administrateurs,ou=Groups,dc=edge-it,dc=fr gidNumber: 1000 sambaSID: {SID}-512 memberUid: administrateur sambaGroupType: 2 displayName: Admin Users

Page 34 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

objectClass: posixGroup objectClass: sambaGroupMapping description: Groupes des Admins Windows cn: administrateurs

{SID} devra tre remplac par celui de la machine (voir le paragraphe FIXME).

Page 35 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

3ASSOCIATIONDESSERVICESETTESTDESAMBA:
Aprs avoir configur les diffrents services sparment, il est temps de les associer sous la coupe de Samba et de vrifier leur bon fonctionnement.

3.1VRIFICATIONDELACONFIGURATIONSAMBAAVECTESTPARM
est l'outil qui permet de connatre le rle reconnu la machine dans un rseau Microsoft Windows. Il souligne aussi les options non reconnues, et dtaille la configuration du service.
testparm $ 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_PDC Press 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 passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* log level = 1 log file = /var/log/samba3/log.%m name resolve order = wins lmhosts bcast socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 printcap name = cups add machine script = /usr/share/samba3/scripts/smbldap-useradd.pl -w %u domain logons = Yes os level = 80 preferred master = Yes domain master = Yes dns proxy = No Page 36 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

wins support = Yes ldap port = 389 ldap suffix = dc=edge-it,dc=fr ldap machine suffix = ou=Computers,dc=edge-it,dc=fr ldap user suffix = ou=Users,dc=edge-it,dc=fr ldap group suffix = ou=Groups,dc=edge-it,dc=fr ldap idmap suffix = dc=edge-it,dc=fr ldap admin dn = cn=Manager,dc=edge-it,dc=fr ldap ssl = no admin users = @administrateurs printer admin = @administrateurs [homes] comment = Home Directories read only = No browseable = No [netlogon] comment = Network Logon Service path = /home/netlogon guest ok = Yes browseable = No root preexec = /home/netlogon/logon_script '%m' '%U' '%a' '%g' '%L' [profiles] path = /home/profiles read only = No guest ok = Yes profile acls = Yes browseable = No [printers] comment = All Printers path = /var/spool/samba3 create mask = 0700 guest ok = Yes printable = Yes browseable = No [print$] path = /var/lib/samba3/printers write list = @administrateurs guest ok = Yes

On retrouve ici ce que nous avons dfini dans le fichier /etc/samba3/smb.conf. S'il n'y a pas/plus d'erreur, le service sera dmarr :
$ service smb3 start Lancement du service SaMBa : Lancement du service NMB : [ [ OK OK ] ]

Page 37 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

3.2SIDETCRATIONDEL'UTILISATEURADMINISTRATEUR
Maintenant que le service dmarre, il faut utiliser le SID du PDC afin d'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 #Dfinition 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= #Dfinition des attributs LDAP objectClass: sambaSAMAccount sambaAcctFlags: [UX] sambaSID: S-1-5-21-1742119943-1715997226-1710541444-3000 sambaPrimaryGroupSID: S-1-5-21-1742119943-1715997226-1710541444-3001 displayName: Administrateur du Domaine sambaProfilePath: \\EDGE-PDC\profiles\administrateur sambaLogonScript: administrateur.bat sambaHomePath: \\EDGE-PDC\homes sambaHomeDrive: H: sambaLogonTime: 0 sambaKickoffTime: 2147483647 sambaLogoffTime: 2147483647 sambaPwdCanChange: 0 sambaPwdMustChange: 2147483647 sambaPwdLastSet: 1065097447 sambaNTPassword: 146468B0272B27D6D995BF6F4CE07470 sambaLMPassword: 6A98EB0FB88A449C6C98100B1FB8AC32 dn: cn=administrateurs,ou=Groups,dc=edge-it,dc=fr gidNumber: 1000 sambaSID: S-1-5-21-1742119943-1715997226-1710541444-512 memberUid: administrateur sambaGroupType: 2 displayName: Admin Users objectClass: posixGroup objectClass: sambaGroupMapping Page 38 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

description: Groupes des Admins Windows cn: administrateurs $ ldapadd -x -D "cn=Manager,dc=edge-it,dc=fr" -w secret -f / root/administrateur.ldif

3.3RLEDUSERVEUR
Le serveur doit maintenant tre capable de se situer dans le domaine. Ici, il s'agit d'un PDC, il doit donc passer matre sur le domaine correspondant. testparm indique dj le rle que devrait tenir le serveur dans le domaine (voir le chapitre FIXME) :
$ testparm3 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_PDC Press enter to see a dump of your service definitions ...

La commande suivante le confirme :


$ smbclient3 -L EDGE-PDC Password: Anonymous login successful Sharename Type -----------print$ Disk IPC$ IPC ADMIN$ IPC hplaser4000-B Printer Anonymous login successful Server --------EDGE-PDC Workgroup --------EDGE-IT Comment ------IPC Service (Edge-IT PDC) IPC Service (Edge-IT PDC) HP LaserJet 4000 Series PS

Comment ------Edge-IT PDC Master ------EDGE-PDC

En tapant <entre> lorsque la commande demande un mot de passe (mode


Page 39 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

anonyme ), on obtient une liste des partages publics du serveur, ainsi que son rle sur le domaine.

3.4SAMBALDAP:AUTHENTIFICATION
Si Samba sait comment s'adresser l'annuaire LDAP, il n'a pas encore le mot de passe qui lui permettra de s'authentifier. Il faut spcifier le mot de passe 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.5CONNEXIONAUXSERVICES(PARTIEFICHIERS)
Notre utilisateur administrateur, avant de nous servir en tant qu'administrateur du domaine, est avant tout un utilisateur du domaine. Nous pouvons donc l'utiliser pour vrifier que le PDC est oprationnel, et que les partages dfinis sont accessibles. Cette premire commande montre les partages disponibles pour l'utilisateur administrateur. En plus des partages publics, la liste fait apparatre son home directory.
$ smbclient3 -L EDGE-PDC -U administrateur Password: Sharename --------print$ IPC$ ADMIN$ hplaser4000-B administrateu Server --------EDGE-PDC Workgroup --------EDGE-IT Type ---Disk IPC IPC Printer Disk Comment ------IPC Service (Edge-IT PDC) IPC Service (Edge-IT PDC) HP LaserJet 4000 Series PS Home Directories

Comment ------Edge-IT PDC Master ------EDGE-PDC

La

commande

suivante

permet

d'accder

au

rpertoire

priv

de

Page 40 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

l'administrateur
$ smbclient3 //EDGE-PDC/homes -U administrateur Password: smb: \> dir . D 0 .. D 0 .bash_history H 5 .Xauthority H 53

Mon Mon Mon Mon

Oct Oct Oct Oct

27 27 27 27

16:14:10 15:56:20 16:14:10 16:13:57

2003 2003 2003 2003

37492 blocks of size 524288. 35893 blocks available smb: \> quit

Si ces deux commandes fonctionnent parfaitement, la liaison Samba/ldap est confirme car l'utilisateur a pu s'authentifier, et trouver les informations pour accder au rpertoire appropri.

3.6CRATIONDESIMPRIMANTESSOUSSAMBA
Avant toute vrification, il est important de noter qu'il existe un bug connu pouvant perturber la liaison entre CUPS et Samba. Celui-ci empche Samba de rafrachir correctement la liste des imprimantes disponibles sous CUPS, liste qui permet de les servir lorsque les drivers auront t associs. Si aprs avoir ajout une imprimante dans CUPS, lors de cette association driver/imprimante, un message d'erreur la commande setdriver retourne le message NT_STATUS_UNSUCCESSFUL, il faut redmarrer Samba. L'ajout d'une imprimante peut se faire tape par tape (ajout du driver dans la liste des drivers utilisables, association d'un driver une imprimante), ou par une commande unique disponible dans le package CUPS. Les drivers CUPS sont stocks dans /usr/share/cups/drivers.
$ ll /usr/share/cups total 28 drwxr-xr-x 2 root drwxr-xr-x 2 root drwxr-xr-x 2 root drwx-----2 root drwxr-xr-x 2 root drwxr-xr-x 26 root drwxr-xr-x 4 root

root root root root root root root

4096 4096 4096 4096 4096 4096 4096

oct oct oct oct oct oct oct

27 27 27 27 27 27 27

13:52 13:52 13:52 14:35 13:52 13:52 13:52

banners/ charsets/ data/ drivers/ fonts/ model/ templates/

La commande qui ralise automatiquement l'enregistrement imprimantes stocke les drivers dans /var/lib/samba3/printers.

des

Page 41 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

$ ll /var/lib/samba3 total 16 drwxr-xr-x 2 root drwxrwxr-x 2 root drwxr-xr-x 4 root drwxr-xr-x 2 root

root root root root

4096 4096 4096 4096

oct oct oct oct

28 28 28 28

09:24 09:24 09:29 09:24

codepages/ netlogon/ printers/ profiles/

Il ne faut pas oublier de relancer Samba3 si des ajouts/modifications/suppressions ont t faits dans CUPS depuis le dernier dmarrage de Samba3.
$ service smb3 restart Arrt des services SaMBa : Arrt du service NMB : Lancement du service SaMBa : Lancement du service NMB : [ [ [ [ OK OK OK OK ] ] ] ]

A ce moment l, la commande smbclient montre la ou les imprimantes publiques dfinies :


$ smbclient3 -L EDGE-PDC Password: Anonymous login successful Sharename Type -----------print$ Disk IPC$ IPC ADMIN$ IPC hplaser4000-B Printer Anonymous login successful Server --------EDGE-PDC Workgroup --------EDGE-IT Comment ------IPC Service (Edge-IT PDC) IPC Service (Edge-IT PDC) HP LaserJet 4000 Series PS

Comment ------Edge-IT PDC Master ------EDGE-PDC

L'imprimante est donc liste dans les ressources Samba, mais aucun driver n'est encore associ.
$ rpcclient -d=0 -U administrateur -c 'enumprinters' localhost Password: flags:[0x800000] name:[\\edge-pdc\hplaser4000-Bohrium] description:[\\edge-pdc\hplaser4000-Bohrium,,HP LaserJet 4000 Series PS] comment:[HP LaserJet 4000 Series PS]

Page 42 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

$ rpcclient -U administrateur -c 'enumdrivers' localhost Password:

A supposer que lors de l'installation de CUPS, toutes les imprimantes aient toutes t correctement configures (page de test concluante), la commande suivante effectuera le lien avec Samba :
$ cupsaddsmb -U administrateur -v -a Running command: smbclient //127.0.0.1/print\$ -N -U'administrateur% administrateur' -c 'mkdir W32X86;put /var/spool/cups/tmp/3f9e3d1bd4b87 W32X86/hplaser4000-Bohrium.ppd;put /usr/share/cups/ drivers/cupsdrvr.dll W32X86/cupsdrvr.dll;put / usr/share/cups/drivers/cupsui.dll W32X86/cupsui.dll;put / usr/share/cups/drivers/cups.hlp W32X86/cups.hlp' Running command: rpcclient 127.0.0.1 -N -U'administrateur%administrateur' -c 'adddriver "Windows NT x86" "hplaser4000-Bohrium:cupsdrvr.dll:hplaser4000Bohrium.ppd:cupsui.dll:cups.hlp:NULL:RA W:NULL"' Running command: smbclient //127.0.0.1/print\$ -N -U'administrateur% administrateur' -c 'mkdir WIN40;put /var/spool/cups/tmp/3f9e3d1bd4b87 WIN40/hplaser4000-Bohrium.PPD;put /usr/share/cups/dr ivers/ADFONTS.MFM WIN40/ADFONTS.MFM;put /usr/share/cups/drivers/ADOBEPS4.DRV WIN40/ADOBEPS4.DRV;put /usr/share/cups/drivers/ADOBEPS4.HLP WIN40/ADOBEPS4.HLP;put /usr/share/cups/drivers/DEFPRT R2.PPD WIN40/DEFPRTR2.PPD;put /usr/share/cups/drivers/ICONLIB.DLL WIN40/ICONLIB.DLL;put /usr/share/cups/drivers/PSMON.DLL WIN40/PSMON.DLL;' Running command: rpcclient 127.0.0.1 -N -U'administrateur%administrateur' -c 'adddriver "Windows 4.0" "hplaser4000-Bohrium:ADOBEPS4.DRV:hplaser4000Bohrium.PPD:NULL:ADOBEPS4.HLP:PSMON.DLL:RA W:ADOBEPS4.DRV,hplaser4000Bohrium.PPD,ADOBEPS4.HLP,PSMON.DLL,ADFONTS.MFM,DEFPRTR2.PPD,ICONLIB.DLL"' Running command: rpcclient 127.0.0.1 -N -U'administrateur%administrateur' -c 'setdriver hplaser4000-Bohrium hplaser4000-Bohrium'

Il faut que l'utilisateur ajoutant les imprimantes appartienne la liste dfinie par la directive printer admin (ici administrateur). La vrification se fera l'aide des commandes suivantes :
$ rpcclient -U administrateur -c 'enumprinters' localhost Password: flags:[0x800000] name:[\\edge-pdc\hplaser4000-Bohrium] description:[\\edge-pdc\hplaser4000-Bohrium,hplaser4000-Bohrium,HP LaserJet 4000 Series PS] comment:[HP LaserJet 4000 Series PS] Page 43 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

$ rpcclient -U administrateur -c 'enumdrivers' localhost Password: [Windows 4.0] Printer Driver Info 1: Driver Name: [hplaser4000-Bohrium] [Windows NT x86] Printer Driver Info 1: Driver Name: [hplaser4000-Bohrium] [Windows NT x86] Printer Driver Info 1: Driver Name: [hplaser4000-Bohrium] $ smbclient //EDGE-PDC/printers -U administrateur Password: smb: \> dir NT_STATUS_NO_SUCH_FILE listing \* 47189 blocks of size 131072. 30656 blocks available smb: \> exit

La commande dir n'a rien retourn car il ne s'agit pas d'un partage de fichiers. Nanmoins, le partage est fonctionnel.

3.7LESRPERTOIRESCRERETLEURSDROITS
$ ll /home ... drwxr-xr-x drwxr-xrwt

2 root 3 root

root root

4096 oct 29 13:20 netlogon/ 4096 oct 29 13:30 profiles/

Un rpertoire public peut aussi tre mis en place :


drwxr-xrwt 3 root root 4096 oct 29 13:30 public/

Page 44 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

4OUTILSOPTIONNELS
Si le service a l'air oprationnel, la cration d'utilisateurs ou de machines partir de fichiers LDIF est prilleuse : il y a un risque d'oublier des attributs essentiels au bon fonctionnement de l'application. Pour cela, les smbldap-tools ont t packags avec Samba. Il s'agit d'un ensemble de commandes qui permettent d'ajouter/modifier/supprimer des utilisateurs, des machines ou des groupes dans l'annuaire LDAP, avec ou sans les attributs Samba ncessaires.

4.1LESPRREQUIS
Pour fonctionner, ces outils ncessitent le langage Perl, ainsi que le module Net::LDAP, ncessitant lui aussi quelques autres modules :

perl-ldap perl-Authen-SASL (dpendance du package perl-ldap mandrake) perl-XML-Parser (dpendance du package perl-ldap mandrake) perl-URI (dpendance du package drakfirsttime mandrake) perl-Convert-ASN1 (dpendance des outils smbldap-tools)

4.2LISTEDESOUTILSDISPONIBLES
$ ll /usr/share/samba3/scripts/ total 120 -rwxr-xr-x 1 root root -rwxr-xr-x 1 root root -rwxr-x--1 root adm -rwxr-x--1 root adm -rwxr-x--1 root adm -rwxr-x--1 root adm -rwxr-x--1 root adm accounts.pl -rwxr-x--1 root adm groups.pl -rwxr-x--1 root adm -rwxr-x--1 root adm -rw-r--r-1 root root -rwxr-x--1 root adm -rwxr-x--1 root adm -rwxr-x--1 root adm -rwxr-x--1 root adm

5592 3555 2452 2329 6039 1883 7257

sep sep sep sep sep sep sep

26 26 26 26 26 26 26

02:42 02:42 02:42 02:42 02:42 02:42 02:42

convertSambaAccount print-pdf smbldap-groupadd.pl smbldap-groupdel.pl smbldap-groupmod.pl smbldap-groupshow.pl smbldap-migrate-

4936 sep 26 02:42 smbldap-migrate5438 8089 17591 15006 2973 12186 1825 sep sep sep sep sep sep sep 26 26 26 26 26 26 26 02:42 02:42 02:42 02:42 02:42 02:42 02:42 smbldap-passwd.pl smbldap-populate.pl smbldap_tools.pm smbldap-useradd.pl smbldap-userdel.pl smbldap-usermod.pl smbldap-usershow.pl

Page 45 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Le fichier /etc/samba3/smb.conf tel qu'il est actuellement configur fait appel certains de ces scripts.

4.3CONFIGURATION
Pour que tous ces outils s'adaptent la configuration Samba et LDAP, il faut configurer le fichier /etc/samba3/smbldap_conf.pm :
$ cat /etc/samba3/smbldap_conf.pm # uid et gid minimum pour les utilisateurs $UID_START = 1000; $GID_START = 1000; # le SID dtermin par net getlocalsid our $SID='S-1-5-21-1742119943-1715997226-1710541444'; # dans le cas prsent, un seul serveur LDAP local $slaveLDAP = "127.0.0.1"; $slavePort = "389"; $masterLDAP = "127.0.0.1"; $masterPort = "389"; $ldapSSL = "0"; # la base de recherche $suffix = "dc=edge-it,dc=fr"; # l'OU des utilisateurs $usersou = q(Users); $usersdn = "ou=$usersou,$suffix"; # l'OU des machines $computersou = q(Computers); $computersdn = "ou=$computersou,$suffix"; # l'OU des groupes $groupsou = q(Groups); $groupsdn = "ou=$groupsou,$suffix"; $scope = "sub"; # les mots de passe sont en MD5 $hash_encrypt="MD5"; # le manager et son mot de passe $binddn = "cn=Manager,dc=edge-it,dc=fr"; $bindpasswd = "<passwd>"; # les attributs par defaut de nos utilisateurs Page 46 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# le shell $_userLoginShell = q(/bin/false); # la racine des repertoires prives $_userHomePrefix = q(/home); $_userGecos = q(System User); $_defaultUserGid = 100; $_defaultComputerGid = 553; $_skeletonDir = q(/etc/skel); # le nom du partage des repertoires privs $_userSmbHome = q(\\\\EDGE-PDC\\homes); # le nom du partage pour les profiles $_userProfile = q(\\\\EDGE-PDC\\profiles\\); # la lettre de lecteur associe au repertoire prive $_userHomeDrive = q(U:);

La commande suivante permet de voir si l'utilisateur administrateur est retrouv par ces outils :
$ /usr/share/samba3/scripts/smbldap-usershow.pl administrateur dn: uid=administrateur,ou=Users,dc=edge-it,dc=subnet objectClass: top,inetOrgPerson,posixAccount,sambaSAMAccount uid: administrateur cn: Administrateur du Domaine sn: administrateur gecos: Administrateur Domaine Windows uidNumber: 1000 gidNumber: 1000 homeDirectory: /home/administrateur loginShell: /bin/bash userPassword: {crypt}$1$PWScfktF$FTRTRjlnCabxZt/EpA5U11 sambaAcctFlags: [UX] sambaSID: S-1-5-21-1742119943-1715997226-1710541444-3000 sambaPrimaryGroupSID: S-1-5-21-1742119943-1715997226-1710541444-3001 displayName: Administrateur du Domaine sambaProfilePath: \\EDGE-PDC\profiles\administrateur sambaLogonScript: administrateur.bat sambaHomePath: \\EDGE-PDC\homes sambaHomeDrive: H: sambaLogonTime: 0 sambaKickoffTime: 2147483647 sambaLogoffTime: 2147483647 sambaPwdCanChange: 0 sambaPwdMustChange: 2147483647 sambaPwdLastSet: 1065097447 sambaLMPassword: 6A98EB0FB88A449C6C98100B1FB8AC32 sambaNTPassword: 146468B0272B27D6D995BF6F4CE07470

Les outils savent donc discuter avec l'annuaire LDAP pour la consultation d'informations. Comme le Manager est configur avec son mot de passe dans le fichier 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 dfinies dans /etc/openldap/slapd.conf.
Page 47 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

4.4MANIPULATION
L'ajout et la modification d'un groupe, puis d'un utilisateur dans ce groupe confirmeront que la configuration est correcte. Voici la commande pour crer un groupe usersgp :
$ /usr/share/samba3/scripts/smbldap-groupadd.pl usersgp $ /usr/share/samba3/scripts/smbldap-groupshow.pl usersgp dn: cn=usersgp,ou=Groups,dc=edge-it,dc=subnet objectClass: posixGroup cn: usersgp gidNumber: 1002

Le gidNumber 1002 est normal, car le groupe administrateurs est 1000, et le groupe utilisateurs est 1001. L'utilisateur test sera associ ce groupe usersgp :
$ /usr/share/samba3/scripts/smbldap-useradd.pl -g usersgp -a test $ /usr/share/samba3/scripts/smbldap-passwd.pl test Changing password for test New password : Retype new password : $ /usr/share/samba3/scripts/smbldap-usershow.pl test dn: uid=test,ou=Users,dc=edge-it,dc=subnet objectClass: top,inetOrgPerson,posixAccount,sambaSAMAccount cn: test sn: test uid: test uidNumber: 1002 gidNumber: 1002 homeDirectory: /home/test loginShell: /bin/false gecos: System User description: System User sambaLogonTime: 0 sambaLogoffTime: 2147483647 sambaKickoffTime: 2147483647 sambaPwdCanChange: 0 sambaPwdMustChange: 2147483647 displayName: System User sambaAcctFlags: [UX] sambaSID: S-1-5-21-1742119943-1715997226-17105414-3004

Page 48 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

sambaPrimaryGroupSID: S-1-5-21-1742119943-1715997226-17105414-3005 sambaHomeDrive: H: sambaHomePath: \\EDGE-PDC\homes sambaProfilePath: \\EDGE-PDC\profiles\test sambaLogonScript: test.cmd sambaLMPassword: 01FC5A6BE7BC6929AAD3B435B51404EE sambaNTPassword: 0CB6948805F797BF2A82807973B89537 sambaPwdLastSet: 1067338535 userPassword: {MD5}CY9rzUYh03PK3k6DJie09g== $ /usr/share/samba3/scripts/smbldap-groupshow.pl usersgp dn: cn=usersgp,ou=Groups,dc=edge-it,dc=subnet objectClass: posixGroup cn: usersgp gidNumber: 1002 memberUid: test

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 sur la machine, par exemple. Il suffit de modifier cette valeur pour valider que notre utilisateur fonctionne sur le systme :
$ /usr/share/samba3/scripts/smbldap-usermod.pl -s /bin/bash -a test $ /usr/share/samba3/scripts/smbldap-usershow.pl test dn: uid=test,ou=Users,dc=edge-it,dc=subnet objectClass: top,inetOrgPerson,posixAccount,sambaSAMAccount cn: test sn: test uid: test uidNumber: 1002 gidNumber: 1002 homeDirectory: /home//test gecos: System User description: System User sambaLogonTime: 0 sambaLogoffTime: 2147483647 sambaKickoffTime: 2147483647 sambaPwdCanChange: 0 sambaPwdMustChange: 2147483647 displayName: System User sambaAcctFlags: [UX] sambaSID: S-1-5-21-1742119943-1715997226-17105414-3004 sambaPrimaryGroupSID: S-1-5-21-1742119943-1715997226-17105414-3005 sambaHomeDrive: H: sambaHomePath: \\EDGE-PDC\homes sambaProfilePath: \\EDGE-PDC\profiles\test sambaLogonScript: test.cmd sambaLMPassword: 01FC5A6BE7BC6929AAD3B435B51404EE sambaNTPassword: 0CB6948805F797BF2A82807973B89537 sambaPwdLastSet: 1067338535

Page 49 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

userPassword: {MD5}CY9rzUYh03PK3k6DJie09g== loginShell: /bin/bash $ ssh test@localhost test@localhost's password: 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'accs au rpertoire personnel de l'utilisateur est normale, puisque nous ne l'avons pas cr, ni par la commande de cration de l'utilisateur lui-mme, ni manuellement. Nanmoins, l'utilisateur est reconnu par le systme, et peut s'authentifier, bnficier d'un shell... Pour valider le fonctionnement sous Samba, il faut que son rpertoire personnel 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 drwxr-xr-x 13 root

usersgp root

4096 oct 28 11:08 ./ 4096 oct 28 11:08 ../

$ smbclient //EDGE-PDC/homes -U test Password: smb: \> dir . ..

D D

0 0

Tue Oct 28 11:08:12 2003 Tue Oct 28 11:08:12 2003

37492 blocks of size 524288. 35893 blocks available smb: \> quit

4.5DTAILSDESCOMMANDESDISPONIBLES
4.5.ALESUTILISATEURS Voir les informations d'un utilisateur : /usr/share/samba3/scripts/smbldapusershow.pl

Page 50 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

$ /usr/share/samba3/scripts/smbldap-usershow.pl Usage: /usr/share/samba3/scripts/smbldap-usershow.pl [-?] username -? show this help message $ /usr/share/samba3/scripts/smbldap-usershow.pl test dn: uid=test,ou=Users,dc=edge-it,dc=subnet objectClass: top,inetOrgPerson,posixAccount,sambaSAMAccount cn: test sn: test uid: test uidNumber: 1002 gidNumber: 1002 homeDirectory: /home/test gecos: System User description: System User sambaLogonTime: 0 sambaLogoffTime: 2147483647 sambaKickoffTime: 2147483647 sambaPwdCanChange: 0 sambaPwdMustChange: 2147483647 displayName: System User sambaAcctFlags: [UX] sambaSID: S-1-5-21-1742119943-1715997226-17105414-3004 sambaPrimaryGroupSID: S-1-5-21-1742119943-1715997226-17105414-3005 sambaHomeDrive: H: sambaHomePath: \\EDGE-PDC\homes sambaProfilePath: \\EDGE-PDC\profiles\test sambaLogonScript: test.cmd sambaLMPassword: 01FC5A6BE7BC6929AAD3B435B51404EE sambaNTPassword: 0CB6948805F797BF2A82807973B89537 sambaPwdLastSet: 1067338535 userPassword: {MD5}CY9rzUYh03PK3k6DJie09g== loginShell: /bin/bash

Page 51 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Cration d'un utilisateur : /usr/share/samba3/scripts/smbldap-useradd.pl


$ /usr/share/samba3/scripts/smbldap-useradd.pl Usage: /usr/share/samba3/scripts/smbldap-useradd.pl [-awmugdsckGPABCDEFH?] username -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 crer un utilisateur systme simple, on devra penser que la configuration par dfaut propose un shell /bin/false. Cet utilisateur ne pourra donc pas se connecter en SSH. On pourra aussi crer automatiquement son rpertoire personnel. Pour viter d'oublier de lui donner un mot de passe, l'option -P peut tre utilise ( condition que / usr/local/sbin/smbldap-passwd.pl soit un lien symbolique sur / usr/share/samba3/scripts/smbldap-passwd.pl).
$ /usr/share/samba3/scripts/smbldap-useradd.pl -P -g usersgp -m -s /bin/bash user1 Changing password for user1 New password : Retype new password : $ ll /home ... drwx-----...

3 user1

usersgp

4096 oct 28 11:24 user1/

$ /usr/share/samba3/scripts/smbldap-usershow.pl user1 dn: uid=user1,ou=Users,dc=edge-it,dc=subnet

Page 52 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

objectClass: top,inetOrgPerson,posixAccount cn: user1 sn: user1 uid: user1 uidNumber: 1003 gidNumber: 1002 homeDirectory: /home/user1 loginShell: /bin/bash gecos: System User description: System User userPassword: {MD5}JMnhXlKvxHwiW3V+e+4fnQ== $ ssh user1@localhost user1@localhost's password: [user1@bohrium user1]$ ll total 4 drwx-----2 user1 usersgp [user1@bohrium user1]$ exit

4096 ao 14

2002 tmp/

Ce mme utilisateur peut tre aussi un utilisateur Samba en ajoutant l'argument '-a', en supposant que l'utilisateur user1 n'existe pas :
$ /usr/share/samba3/scripts/smbldap-useradd.pl -a -P -g usersgp -m -s / bin/bash user1 Changing password for user1 New password : Retype new password : $ ll /home ... drwx-----...

3 user1

usersgp

4096 oct 28 11:24 user1/

$ /usr/share/samba3/scripts/smbldap-usershow.pl user1 dn: uid=user1,ou=Users,dc=edge-it,dc=subnet objectClass: top,inetOrgPerson,posixAccount,sambaSAMAccount cn: user1 sn: user1 uid: user1 uidNumber: 1003 gidNumber: 1002 homeDirectory: /home/user1 loginShell: /bin/bash gecos: System User description: System User sambaLogonTime: 0 sambaLogoffTime: 2147483647 sambaKickoffTime: 2147483647 sambaPwdCanChange: 0 sambaPwdMustChange: 2147483647 displayName: System User sambaAcctFlags: [UX] sambaSID: S-1-5-21-1742119943-1715997226-17105414-3006 Page 53 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

sambaPrimaryGroupSID: S-1-5-21-1742119943-1715997226-17105414-3005 sambaHomeDrive: H: sambaHomePath: \\EDGE-PDC\homes sambaProfilePath: \\EDGE-PDC\profiles\user1 sambaLogonScript: user1.cmd sambaLMPassword: FC26CDB2863917C1AAD3B435B51404EE sambaNTPassword: 00B2C85DDFBD8CC81602D6FC7340EB0B sambaPwdLastSet: 1067340969 userPassword: {MD5}JMnhXlKvxHwiW3V+e+4fnQ== $ ssh user1@localhost user1@localhost's password: [user1@bohrium user1]$ ll total 4 drwx-----2 user1 usersgp

4096 ao 14

2002 tmp/

Modification des attributs d'un utilisateur : /usr/share/samba3/scripts/smbldapusermod.pl


$ /usr/share/samba3/scripts/smbldap-usermod.pl Usage: /usr/share/samba3/scripts/smbldap-usermod.pl [-awmugdsckxABCDEFGHI?h] username Available options are: -c gecos -d home directory -u uid -o uid can be non unique -g gid -G supplementary groups (comma separated) -l login name -s shell -N canonical name -S surname For Samba users: -e expire date ("YYYY-MM-DD HH:MM:SS") -x creates rid and primaryGroupID in hex instead of decimal (for Samba 2.2.2 unpatched only) -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]') -I disable an user. Can't be used with -H or -J -J enable an user. Can't be used with -H or -I -?|-h show this help message

Au final, l'utilisateur ne doit pas pouvoir se connecter en ssh. Il suffit donc de changer son shell :

Page 54 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

$ /usr/share/samba3/scripts/smbldap-usershow.pl user1 dn: uid=user1,ou=Users,dc=edge-it,dc=subnet objectClass: top,inetOrgPerson,posixAccount,sambaSAMAccount cn: user1 sn: user1 uid: user1 uidNumber: 1003 gidNumber: 1002 homeDirectory: /home/user1 loginShell: /bin/bash gecos: System User description: System User sambaLogonTime: 0 sambaLogoffTime: 2147483647 sambaKickoffTime: 2147483647 sambaPwdCanChange: 0 sambaPwdMustChange: 2147483647 displayName: System User sambaAcctFlags: [UX] sambaSID: S-1-5-21-1742119943-1715997226-17105414-3006 sambaPrimaryGroupSID: S-1-5-21-1742119943-1715997226-17105414-3005 sambaHomeDrive: H: sambaHomePath: \\EDGE-PDC\homes sambaProfilePath: \\EDGE-PDC\profiles\user1 sambaLogonScript: user1.cmd sambaLMPassword: FC26CDB2863917C1AAD3B435B51404EE sambaNTPassword: 00B2C85DDFBD8CC81602D6FC7340EB0B sambaPwdLastSet: 1067340969 userPassword: {MD5}JMnhXlKvxHwiW3V+e+4fnQ== $ /usr/share/samba3/scripts/smbldap-usermod.pl -s /bin/false test $ /usr/share/samba3/scripts/smbldap-usershow.pl test dn: uid=test,ou=Users,dc=edge-it,dc=subnet objectClass: top,inetOrgPerson,posixAccount,sambaSAMAccount cn: test sn: test uid: test uidNumber: 1002 gidNumber: 1002 homeDirectory: /home//test gecos: System User description: System User sambaLogonTime: 0 sambaLogoffTime: 2147483647 sambaKickoffTime: 2147483647 sambaPwdCanChange: 0 sambaPwdMustChange: 2147483647 displayName: System User sambaAcctFlags: [UX] sambaSID: S-1-5-21-1742119943-1715997226-17105414-3004 sambaPrimaryGroupSID: S-1-5-21-1742119943-1715997226-17105414-3005 sambaHomeDrive: H: sambaHomePath: \\EDGE-PDC\homes Page 55 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

sambaProfilePath: \\EDGE-PDC\profiles\test sambaLogonScript: test.cmd sambaLMPassword: 01FC5A6BE7BC6929AAD3B435B51404EE sambaNTPassword: 0CB6948805F797BF2A82807973B89537 sambaPwdLastSet: 1067338535 userPassword: {MD5}CY9rzUYh03PK3k6DJie09g== loginShell: /bin/false

Suppression d'un utilisateur : /usr/share/samba3/scripts/smbldap-userdel.pl


$ /usr/share/samba3/scripts/smbldap-userdel.pl Usage: /usr/share/samba3/scripts/smbldap-userdel.pl [-r?] username -r remove home directory

On supprimera donc un utilisateur et son rpertoire personnel avec la commande suivante :


$ /usr/share/samba3/scripts/smbldap-userdel.pl -r user1

4.5.BLESGROUPES Voir les informations d'un groupe : /usr/share/samba3/scripts/smbldapgroupshow.pl $ /usr/share/samba3/scripts/smbldap-groupshow.pl Usage: /usr/share/samba3/scripts/smbldap-groupshow.pl [-?] group -? show this help message $ /usr/share/samba3/scripts/smbldap-groupshow.pl administrateurs dn: cn=administrateurs,ou=Groups,dc=edge-it,dc=subnet gidNumber: 1000 sambaSID: S-1-5-21-1742119943-1715997226-1710541444-512 memberUid: administrateur sambaGroupType: 2 displayName: Admin Users objectClass: posixGroup,sambaGroupMapping description: Groupes des Admins Windows cn: administrateurs

Cration d'un groupe : /usr/share/samba3/scripts/smbldap-groupadd.pl


$ /usr/share/samba3/scripts/smbldap-groupadd.pl Usage: /usr/share/samba3/scripts/smbldap-groupadd.pl [-go?] groupname -g gid -o gid is not unique -? show this help message $ /usr/share/samba3/scripts/smbldap-groupadd.pl group1

Page 56 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

$ /usr/share/samba3/scripts/smbldap-groupshow.pl group1 dn: cn=group1,ou=Groups,dc=edge-it,dc=subnet objectClass: posixGroup cn: group1 gidNumber: 1003

Modification groupmod.pl

des

attributs

d'un

groupe

/usr/share/samba3/scripts/smbldap-

$ /usr/share/samba3/scripts/smbldap-groupmod.pl Usage: /usr/share/samba3/scripts/smbldap-groupmod.pl [-g gid [-o]] [-n name] [-m members(,)] [-x members (,)] groupname -g new gid -o gid is not unique -n new group name -m add members (comma delimited) -x delete members (comma delimted) -? show this help message

L'utilisateur user1 appartient au groupe usergp. Il va tre aussi associ au groupe group1. Il s'agit alors d'un groupe secondaire pour cet utilisateur, ce qui ne modifie en rien sa dfinition dans l'annuaire LDAP.
$ /usr/share/samba3/scripts/smbldap-groupmod.pl -m user1 group1 adding user user1 to group group1 $ /usr/share/samba3/scripts/smbldap-groupshow.pl group1 dn: cn=group1,ou=Groups,dc=edge-it,dc=subnet objectClass: posixGroup cn: group1 gidNumber: 1003 memberUid: user1

L'opration inverse :
$ /usr/share/samba3/scripts/smbldap-groupmod.pl -x user1 group1 deleting user user1 from group group1 $ /usr/share/samba3/scripts/smbldap-groupshow.pl group1 dn: cn=group1,ou=Groups,dc=edge-it,dc=subnet objectClass: posixGroup cn: group1 gidNumber: 1003

Suppression d'un groupe : /usr/share/samba3/scripts/smbldap-groupdel.pl


$ /usr/share/samba3/scripts/smbldap-groupdel.pl group1

Page 57 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

4.5.CLESMACHINES Une machine est en fait un utilisateur qui dispose d'un attribut Samba spcifiant sa qualit. Son nom est suffix, aprs la cration, par le caractre dollar ($). Cration d'une machine : /usr/share/samba3/scripts/smbldap-useradd.pl
$ /usr/share/samba3/scripts/smbldap-useradd.pl Usage: /usr/share/samba3/scripts/smbldap-useradd.pl [-awmugdsckGPABCDEFH?] username -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

Page 58 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Voici la premire machine de notre rseau :


$ /usr/share/samba3/scripts/smbldap-useradd.pl -w machine1 $ /usr/share/samba3/scripts/smbldap-usershow.pl machine1 /usr/share/samba3/scripts/smbldap-usershow.pl: user machine1 doesn't exist $ /usr/share/samba3/scripts/smbldap-usershow.pl machine1$ dn: uid=machine1$,ou=Computers,dc=edge-it,dc=subnet objectClass: top,inetOrgPerson,posixAccount cn: machine1$ sn: machine1$ uid: machine1$ uidNumber: 1004 gidNumber: 421 homeDirectory: /dev/null loginShell: /bin/false description: Computer

Lors de cette dfinition, aucun attribut spcifique Samba n'est ajout. Par contre, la machine a t cre dans l'OU concerne, et le nom comporte bien un dollar la fin. Lorsque cetta machine sera jointe au domaine, diffrents champs Samba seront ajouts dont sambaAcctFlags: [W] lui affectant son statut de workstation. Les autres commandes concernant les utilisateurs affectent les machines de la mme manire. 4.5.DLESAUTRESOUTILS Les autres outils disponibles dans le rpertoire /usr/share/samba3/scripts/ ne concernent pas directement le cadre de ce document. * convertSambaAccount convertit un arbre LDAP du schma samba2 vers samba3 * print-pdf est un mulateur d'imprimante qui gnre du PDF * smbldap-migrate-accounts.pl & smbldap-migrate-groups.pl permettent la migration des comptes partir d'un dump Windows. * smbldap-populate.pl cre une arborescence de base dans LDAP.

Page 59 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

5INTGRATIONDECLIENTSWINDOWS
Puisque le service semble rpondre correctement aux requtes prcdentes, il ne reste plus qu' intgrer une machine dans le domaine, et tenter de connecter un utilisateur final. La premire tape est donc d'intgrer une machine Windows sur le rseau gr par le PDC Samba3. Il existe deux mthodes. L'une consiste intgrer la machine dans le domaine sans pour autant l'avoir pralablement dclare sur le PDC, la seconde en crant un compte de machine sur le PDC, puis en joignant la machine au domaine. L'ensemble des tests ont t raliss avec un poste Windows 2000 Pro.

5.1INSCRIPTIONONTHEFLY
Il s'agit de faire en sorte qu'une machine s'inscrive d'elle mme dans le rseau, sans opration particulire sur le PDC. Pour cela, il suffit un des membres de la liste dfinie dans le fichier /etc/samba3/smb.conf la ligne admin users de s'authentifier au moment de la jonction au domaine pour que la machine s'inscrive. C'est lors de cette opration que la directive add machine script est utilise. Il faut se connecter en tant qu'administrateur local de la machine.

Page 60 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Une fois connect en local, il faut s'assurer que la machine Windows ne fait pas dj partie d'un domaine. Un clic droit sur le poste de travail permet d'accder aux proprits, puis l'onglet Identification Rseau.

Page 61 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

La machine testW2k est dans un groupe de travail nomm WKG. Elle n'existe pas encore dans l'arbre LDAP.
$ ldapsearch -x uid=testW2k version: 2 # # filter: uid=testW2k # requesting: ALL # # search result search: 2 result: 0 Success # numResponses: 1 $ ldapsearch -x uid=testW2k$ version: 2 # # filter: uid=testW2k$ # requesting: ALL

Page 62 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# # search result search: 2 result: 0 Success # numResponses: 1

En cliquant sur le bouton Proprits dans cette fentre, on peut alors spcifier le domaine rejoindre.

Une nouvelle fentre apparat dans laquelle il faut spcifier un utilisateur de la liste spcifie l'attribut admin users du fichier /etc/samba3/smb.conf (un utilisateur de l'annuaire LDAP, et non de la machine Windows). L'utilisateur administrateur de notre annuaire LDAP est dans ce cas.

Page 63 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Le poste client confirme son inscription au domaine par ce message. Une interrogation de l'annuaire LDAP le confirme aussi :
$ ldapsearch -x uid=testW2k$ version: 2 # # filter: uid=testW2k$ # requesting: ALL # # testw2k$, Computers, edge-it, subnet dn: uid=testw2k$,ou=Computers,dc=edge-it,dc=subnet objectClass: top objectClass: inetOrgPerson objectClass: posixAccount objectClass: sambaSamAccount cn: testw2k$ sn: testw2k$ uid: testw2k$ uidNumber: 1004 gidNumber: 421 homeDirectory: /dev/null loginShell: /bin/false description: Computer sambaSID: S-1-5-21-1742119943-1715997226-1710541444-3008 Page 64 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

sambaPrimaryGroupSID: S-1-5-21-1742119943-1715997226-1710541444-1843 displayName: testw2k$ sambaAcctFlags: [W ] sambaPwdCanChange: 1067423372 sambaPwdMustChange: 2147483647 sambaLMPassword: FE3906E42139C28156499F99D5D676BD sambaNTPassword: 6335B626CEDDABC318527BC01A4EA2EF sambaPwdLastSet: 1067423372 # search result search: 2 result: 0 Success # numResponses: 2 # numEntries: 1

Windows prcise alors qu'il doit tre redmarr pour prendre en compte les modifications.

Page 65 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Une fois la machine relance, il faut choisir de se connecter sur le domaine, et non plus sur la machine locale.

5.2INSCRIPTIONMANUELLE
Une machine est en fait un utilisateur particulier. Un des attributs Samba est positionn diffremment et un dollar ($) apparat la fin du nom. Pour crer une machine, les smbldap-tools disposent d'une option :
$ /usr/share/samba3/scripts/smbldap-useradd.pl -w testW2k $ /usr/share/samba3/scripts/smbldap-usershow.pl testW2k /usr/share/samba3/scripts/smbldap-usershow.pl: user testW2k doesn't exist $ /usr/share/samba3/scripts/smbldap-usershow.pl testW2k$ dn: uid=testW2k$,ou=Computers,dc=edge-it,dc=subnet objectClass: top,inetOrgPerson,posixAccount cn: testW2k$ sn: testW2k$ uid: testW2k$ Page 66 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

uidNumber: 1004 gidNumber: 421 homeDirectory: /dev/null loginShell: /bin/false description: Computer

On constate que la machine est cre dans l'OU Computers, et qu'un dollar ($) est ajout son nom. Tant que la machine n'est pas intgre dans le domaine, il n'y a pas d'attributs Samba3. La machine sera ensuite intgre au domaine en suivant la mme procdure qu'au chapitre prcdent.
$ /usr/share/samba3/scripts/smbldap-usershow.pl testW2k$ dn: uid=testW2k$,ou=Computers,dc=edge-it,dc=subnet objectClass: top,inetOrgPerson,posixAccount,sambaSamAccount cn: testW2k$ sn: testW2k$ uid: testW2k$ uidNumber: 1004 gidNumber: 421 homeDirectory: /dev/null loginShell: /bin/false description: Computer sambaSID: S-1-5-21-1742119943-1715997226-1710541444-3008 sambaPrimaryGroupSID: S-1-5-21-1742119943-1715997226-1710541444-1843 displayName: testW2k$ sambaAcctFlags: [W ] sambaPwdCanChange: 1067438651 sambaPwdMustChange: 2147483647 sambaLMPassword: ED6BE5E3AAAB15F59B4A590A41C3641D sambaNTPassword: 690F13E35B208AEB6F385DF2745DE1ED sambaPwdLastSet: 1067438651

Voici la machine compltement qualifie, et intgre au domaine.

5.3CONNEXIOND'UNUTILISATEUR
Aprs le redmarrage, la machine peut donc authentifier l'utilisateur test, puisqu'elle a intgr le domaine. Il suffit donc de se logguer, et vrifier que les partages et imprimantes sont accessibles. Il faut dans un premier temps slectionner le domaine auquel l'utilisateur va se connecter, en droulant le menu correspondant :

Page 67 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

L'utilisateur test s'authentifie alors sur le domaine spcifi

L'utilisateur est alors dans son environnement de travail aprs un message indiquant qu'il n'a pas de profil utilisateur enregistr sur le serveur. Ce profil sera cr lorsque l'utilisateur quittera son environnement la premire fois.

Page 68 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

$ ll /home/profiles total 4 drwx-----13 test $ ll /home/profiles/test total 264 drwxr-xr-x 4 test drwxr-xr-x 2 test drwxr-xr-x 2 test drwxr-xr-x 4 test drwxr-xr-x 3 test drwxr-xr-x 3 test drwxr-xr-x 2 test -rwxr--r-1 test -rwxr--r-1 test -rw-r--r-1 test drwxr-xr-x 2 test drwxr-xr-x 2 test drwxr-xr-x 2 test d'impression/ drwxr-xr-x 2 test

usersgp

4096 oct 29 14:25 test/

usersgp usersgp usersgp usersgp usersgp usersgp usersgp usersgp usersgp usersgp usersgp usersgp usersgp usersgp

4096 4096 4096 4096 4096 4096 4096 212992 1024 186 4096 4096 4096

oct oct oct oct oct oct oct oct oct oct oct oct oct

29 29 29 29 29 29 29 29 29 29 29 29 29

14:25 14:25 14:25 14:25 14:25 14:25 14:25 15:14 15:14 14:25 14:25 14:25 14:25

Application Data/ Bureau/ Cookies/ Favoris/ Menu Dmarrer/ Mes documents/ Modles/ NTUSER.DAT* ntuser.dat.LOG* ntuser.ini Recent/ SendTo/ Voisinage

4096 oct 29 14:25 Voisinage rseau/

Le poste de travail nous montre le rsultat de la cration la vole du fichier de netlogon, avec le montage des partages homes et public.

Page 69 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

$ ll /home/netlogon/ total 8 -rwxr-xr-x 1 root -rw-r--r-x 1 root

root root

2230 oct 29 15:42 logon_script* 230 oct 29 15:46 test.cmd*

$ less /home/netlogon/test.cmd @ECHO off ECHO. ECHO Type : Win2K. ECHO. ECHO Ordinateur : testw2k - Utilisateur : test - Groupe : usersgp. - Serveur: edge-pdc ECHO. NET TIME \\EDGE-PDC /set /yes NET USE /persistent:no NET USE t: \\EDGE-PDC\public /yes

Page 70 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

6CONFIGURATIONDESIMPRIMANTESDUPDC
Lors de la lecture des paragraphes FIXME (2.4) et FIXME (3.6), des imprimantes ont t dfinies dans CUPS, puis associes aux drivers installs dans /usr/share/cups/drivers via la commande cupsaddsmb. Il faut maintenant installer cette ou ces imprimantes sur le client. Etant dfinies sur le PDC, il faut retrouver ce serveur via le voisinage rseau.

Voici le domaine qui est dfinie dans Samba :

Page 71 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Les Diffrentes machines de ce domaine apparaissent, dont le PDC Edge-PDC.

En slectionnant le PDC, on obtient la liste des ressources qui sont accessibles l'utilisateur connect.

Page 72 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Pour le moment, la liste des imprimantes sur la machine locale est vide, mais un clic droit sur une des imprimantes disponibles sur le PDC permet de se connecter l'imprimante dsire.

Page 73 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Comme les drivers sont sur le PDC, il n'est pas besoin de les installer. L'imprimante est automatiquement configure et installe.

Page 74 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Page 75 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Annexes

Page 76 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

Fichierauto_inst.cf
$ less /mnt/floppy/auto_inst.cfg #!/usr/bin/perl -cw # # You should check the syntax of this file before using it in an auto-install. # You can do this with 'perl -cw auto_inst.cfg.pl' or by executing this file # (note the '#!/usr/bin/perl -cw' on the first line). $o = { 'printer' => { 'BROWSEPOLLADDR' => undef, 'configured' => {}, 'MANUALCUPSCONFIG' => undef, 'BROWSEPOLLPORT' => undef, 'DEFAULT' => undef, 'SPOOLER' => undef }, 'libsafe' => 0, 'security_user' => '', 'netc' => { 'NETWORKING' => 'yes', 'DHCP' => 'no', 'ZEROCONF_HOSTNAME' => undef, 'NET_DEVICE' => 'eth0', 'HOSTNAME' => 'ilemaurice', 'GATEWAY' => '130.0.0.211', 'dnsServer' => '127.0.0.1' }, 'default_packages' => [ # 'locales-fr', # 'msec', # 'gnupg', # 'hotplug', # 'at', # 'coreutils-doc', # 'devfsd', # 'harddrake', # 'hdparm', # 'ldetect', 'urpmi', 'openssh', 'openssh-clients', 'openssh-server', # 'telnet', 'vim-enhanced', # 'sudo', # 'tmpwatch', ], 'useSupermount' => '0', 'users' => [

Page 77 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

{ 'icon' => 'man', 'pw' => '$1$VGTq1WMc$27LeFAb5U5Lxk2wREDNDD.', 'uid' => 501, 'name' => 'admin', 'realname' => '', 'groups' => [], 'shell' => '/bin/bash', 'home' => '/home/admin', 'gid' => 501 } ], 'locale' => { 'country' => 'FR', 'lang' => 'fr', 'langs' => { 'fr' => 1 }, 'utf8' => '' }, 'authentication' => { 'NIS' => '', 'shadow' => 1, 'winbind' => '', 'LDAP' => '', 'md5' => 1 }, 'partitions' => [ ], 'netcnx' => { 'type' => 'lan', 'lan' => {} }, 'superuser' => { 'pw' => '$1$MEMUIURx$rG6oZGvoqvJGvWXScfQF..', 'uid' => '0', 'realname' => 'root', 'shell' => '/bin/bash', 'home' => '/root', 'gid' => '0' }, 'mouse' => { 'XMOUSETYPE' => 'PS/2', 'name' => 'Generic PS2 Mouse', 'device' => 'psaux', 'type' => 'PS/2', 'nbuttons' => 5, 'MOUSETYPE' => 'ps2' }, 'autoExitInstall' => '', 'mkbootdisk' => 0, 'keyboard' => { 'GRP_TOGGLE' => '', 'KBCHARSET' => 'iso-8859-15', Page 78 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

'KEYBOARD' => 'fr' }, 'timezone' => { 'ntp' => undef, 'timezone' => 'Europe/Paris', 'UTC' => 1 }, 'intf' => { 'eth0' => { 'IPADDR' => '130.0.0.206', 'NETMASK' => '255.255.255.0', 'BROADCAST' => '130.0.0.255', 'BOOTPROTO' => 'static', 'NETWORK' => '130.0.0.0', 'ONBOOT' => 'yes', 'DEVICE' => 'eth0', 'GATEWAY' => '130.0.0.211' }, }, 'partitioning' => { 'auto_allocate' => '1', 'clearall' => '1', 'eraseBadPartitions' => 0 }, 'security' => 2, 'interactiveSteps' => [ 'doPartitionDisks', 'formatPartitions' ], 'postInstall' => ' /bin/rpm -e alsa-utils libalsa2 libalsa-data grub procmail tmdns zcip /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e -e foomatic-db foomatic-db-engine foomatic-filters printer-utils printer-filters printer-testpages ghostscript ghostscript-fonts libcups1 netpbm lesstif libgimp1.2_1 libpng3 libtiff3 libjpeg62 urw-fonts libxml2 libgtk+1.2 libgimpprint1 --nodeps chkfontpath Page 79 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

/bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm /bin/rpm

-e -e -e -e -e -e -e -e -e -e

--nodeps XFree86-xfs XFree86-libs libnetpbm9 numlock perl --nodeps libfontconfig1 --nodeps fontconfig libxpm4 freetype libexpat0

mkdir /root/post_install echo "" >> /etc/init.d/mandrake_firstime echo "# SmartShare Installer" >> /etc/init.d/mandrake_firstime echo "mount /mnt/cdrom" >> /etc/init.d/mandrake_firstime echo "cp -r /mnt/cdrom/* /root/post_install/" >> / etc/init.d/mandrake_firstime echo "/root/post_install/post_install_2" >> / etc/init.d/mandrake_firstime ' };

Lesfichiersdeconfigurationcomplets
/etc/openldap/slapd.conf
# # # # # # # # $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.8.8.6 2001/04/20 23:32:43 kurt Exp $ See slapd.conf(5) for details on configuration options. This file should NOT be world readable. Modified by Christian Zoffoli <czoffoli@linux-mandrake.com> Version 0.2

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/egroupware/phpgwaccount.schema #include /usr/share/openldap/schema/egroupware/phpgwcontact.schema

Page 80 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

#include #include #include #include #include #include #include #include #include #include #include

/usr/share/openldap/schema/rfc822-MailMember.schema /usr/share/openldap/schema/mailrouter.schema /usr/share/openldap/schema/pilot.schema /usr/share/openldap/schema/autofs.schema /usr/share/openldap/schema/samba.schema /usr/share/openldap/schema/qmail.schema /usr/share/openldap/schema/mull.schema /usr/share/openldap/schema/netscape-profile.schema /usr/share/openldap/schema/trust.schema /usr/share/openldap/schema/dns.schema /usr/share/openldap/schema/cron.schema

include /usr/share/doc/samba3-doc-3.0.2a/examples/LDAP/samba.schema include /etc/openldap/schema/local.schema

# Define global ACLs to disable default read access. include /etc/openldap/slapd.access.conf

# Do not enable referrals until AFTER you have a working directory # service AND an understanding of referrals. #referral ldap://root.openldap.org pidfile argsfile modulepath #moduleload #moduleload #moduleload #moduleload /var/run/ldap/slapd.pid /var/run/ldap/slapd.args /usr/lib/openldap back_dnssrv.la back_ldap.la back_passwd.la back_sql.la

# SASL config #sasl-host ldap.example.com # To allow TLS-enabled connections, create /usr/share/ssl/certs/slapd.pem # and uncomment the following lines. #TLSRandFile /dev/random #TLSCipherSuite HIGH:MEDIUM:+SSLv2 TLSCertificateFile /etc/ssl/openldap/ldap.pem TLSCertificateKeyFile /etc/ssl/openldap/ldap.pem #TLSCACertificatePath /etc/ssl/openldap/ TLSCACertificateFile /etc/ssl/openldap/ldap.pem #TLSVerifyClient 0 ####################################################################### # ldbm database definitions ####################################################################### database suffix rootdn rootpw directory ldbm "dc=edge-it,dc=subnet" "cn=Manager,dc=edge-it ,dc=subnet" secret /var/lib/ldap

# # # # #

Cleartext passwords, especially for the rootdn, should be avoided. See slappasswd(8) and slapd.conf(5) for details. Use of strong authentication encouraged. rootpw secret rootpw {crypt}ijFYNcSNctBYg

# The database directory MUST exist prior to running slapd AND # should only be accessable by the slapd/tools. Mode 700 recommended. #directory /var/lib/ldap

Page 81 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# Indices to maintain #index objectClass eq #index objectClass,uid,uidNumber,gidNumber eq #index cn,mail,surname,givenname eq,subinitial index objectClass,uid,uidNumber,gidNumber,memberUid eq index cn eq,subinitial

# logging loglevel 256 # Basic ACL access to attr=userPassword by dn="cn=Manager,dc=edge-it,dc=subnet" write by self write by anonymous auth by * none access to attr=sambaLMPassword by dn="cn=Manager,dc=edge-it,dc=subnet" write by self write by anonymous auth by * none access to attr=sambaNTPassword by dn="cn=Manager,dc=edge-it,dc=subnet" write by self write by anonymous auth by * none access to * by dn="cn=Manager,dc=edge-it,dc=subnet" write by self write by * read

/etc/openldap/ldap.conf
$ ll /etc/ldap.conf lrwxrwxrwx 1 root root 23 dec 16 13:03 /etc/ldap.conf -> /etc/openldap/ldap.conf

# $OpenLDAP: pkg/ldap/libraries/libldap/ldap.conf,v 1.4.8.6 2000/09/05 17:54:38 kurt Exp $ # # LDAP Defaults # # See ldap.conf(5) for details # This file should be world readable but not world writable. #BASE #URI dc=example, dc=com ldap://ldap.example.com ldap://ldap-master.example.com:666 12 15 never

#SIZELIMIT #TIMELIMIT #DEREF

host 127.0.0.1 base dc=edge-it,dc=subnet binddn cn=Manager,dc=edge-it,dc=subnet bindpw secret rootbinddn cn=Manager,dc=edge-it,dc=subnet

Page 82 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

port 389 scope sub pam_filter objectclass=posixaccount pam_login_attribute uid pam_password md5 nss_base_passwd nss_base_shadow nss_base_group ssl no dc=edge-it,dc=subnet?sub dc=edge-it,dc=subnet?sub ou=Groups,dc=edge-it,dc=subnet?sub

/etc/nsswitch.conf
# # # # # # # # # # # # # # # # # # # # # # # /etc/nsswitch.conf An example Name Service Switch config file. This file should be sorted with the most-used services at the beginning. The entry '[NOTFOUND=return]' means that the search for an entry should stop if the search in the previous entry turned up nothing. Note that if the search failed due to some other reason (like no NIS server responding) then the search continues with the next entry. Legal entries are: nisplus or nis+ nis or yp dns files db compat hesiod [NOTFOUND=return] Use NIS+ (NIS version 3) Use NIS (NIS version 2), also called YP Use DNS (Domain Name Service) Use the local files Use the local database (.db) files Use NIS on compat mode Use Hesiod for user lookups Stop searching if not found so far

# To use db, put the # looked up first in # # Example: #passwd: db files #shadow: db files #group: db files passwd: shadow: group: #hosts: hosts:

"db" in front of "files" for entries you want to be the databases

nisplus nis nisplus nis nisplus nis

files ldap files ldap files ldap db files nisplus nis dns files nisplus nis dns

# Example - obey only what nisplus tells us... #services: nisplus [NOTFOUND=return] files #networks: nisplus [NOTFOUND=return] files #protocols: nisplus [NOTFOUND=return] files #rpc: nisplus [NOTFOUND=return] files #ethers: nisplus [NOTFOUND=return] files #netmasks: nisplus [NOTFOUND=return] files bootparams: nisplus [NOTFOUND=return] files

Page 83 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

ethers: netmasks: networks: protocols: rpc: services: netgroup: publickey: automount: aliases:

files files files files files files nisplus nisplus files nisplus files nisplus

/etc/pam.d/systemauth
#%PAM-1.0 auth auth auth auth account account password password password password session session session session required sufficient sufficient required required sufficient required sufficient sufficient required optional required required optional /lib/security/pam_env.so /lib/security/pam_unix.so likeauth nullok /lib/security/pam_ldap.so use_first_pass /lib/security/pam_deny.so /lib/security/pam_unix.so /lib/security/pam_ldap.so /lib/security/pam_cracklib.so retry=3 minlen=4 dcredit=0 ucredit=0 /lib/security/pam_unix.so nullok use_authtok md5 shadow /lib/security/pam_ldap.so use_authtok /lib/security/pam_deny.so /lib/security/pam_mkhomedir.so skel=/etc/skel umask=0022 /lib/security/pam_limits.so /lib/security/pam_unix.so /lib/security/pam_ldap.so

/etc/cups/cupsd.conf
# # "$Id: cupsd.conf.in,v 1.10 2002/12/17 22:08:08 mike Exp $" # # Sample configuration file for the Common UNIX Printing System (CUPS) # scheduler. # # Copyright 1997-2003 by Easy Software Products, all rights reserved. # # These coded instructions, statements, and computer programs are the # property of Easy Software Products and are protected by Federal # copyright law. Distribution and use rights are outlined in the file # "LICENSE.txt" which should have been included with this file. If this # file is missing or damaged please contact Easy Software Products # at: # # Attn: CUPS Licensing Information # Easy Software Products # 44141 Airport View Drive, Suite 204 # Hollywood, Maryland 20636-3111 USA #

Page 84 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# # # #

Voice: (301) 373-9603 EMail: cups-info@cups.org WWW: http://www.cups.org

######################################################################## # # # This is the CUPS configuration file. If you are familiar with # # Apache or any of the other popular web servers, we've followed the # # same format. Any configuration variable used here has the same # # semantics as the corresponding variable in Apache. If we need # # different functionality then a different name is used to avoid # # confusion... # # # ########################################################################

######## ######## Server Identity ######## # # ServerName: the hostname of your server, as advertised to the world. # By default CUPS will use the hostname of the system. # # To set the default server used by clients, see the client.conf file. # ServerName testPDC.edge-it.subnet # # ServerAdmin: the email address to send all complaints/problems to. # By default CUPS will use "root@hostname". # #ServerAdmin root@your.domain.com LogLevel debug2 TempDir /var/spool/cups/tmp Port 631 BrowseAddress @LOCAL BrowseDeny All BrowseAllow 127.0.0.1 BrowseAllow @LOCAL BrowseOrder deny,allow <Location /> Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 192.168.0.* </Location> <Location /admin> AuthType Basic AuthClass System Order Deny,Allow Deny From All Allow From 127.0.0.1 Allow From 192.168.0.* </Location>

Page 85 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

/etc/cups/client.conf
# # "$Id: client.conf,v 1.6 2002/12/17 18:56:38 swdev Exp $" # # Sample client configuration file for the Common UNIX Printing System # (CUPS). # # Copyright 1997-2003 by Easy Software Products, all rights reserved. # # These coded instructions, statements, and computer programs are the # property of Easy Software Products and are protected by Federal # copyright law. Distribution and use rights are outlined in the file # "LICENSE.txt" which should have been included with this file. If this # file is missing or damaged please contact Easy Software Products # at: # # Attn: CUPS Licensing Information # Easy Software Products # 44141 Airport View Drive, Suite 204 # Hollywood, Maryland 20636-3111 USA # # Voice: (301) 373-9603 # EMail: cups-info@cups.org # WWW: http://www.cups.org # ######################################################################## # # # This is the CUPS client configuration file. This file is used to # # define client-specific parameters, such as the default server or # # default encryption settings. # # # ######################################################################## # # ServerName: the hostname of your server. By default CUPS will use the # hostname of the system or the value of the CUPS_SERVER environment # variable. # ServerName testPDC.edge-it.subnet # # # # # # # # # # # # # #

Encryption: whether or not to use encryption; this depends on having the OpenSSL library linked into the CUPS library. Possible values: Always Never Required IfRequested Always use encryption (SSL) Never use encryption Use TLS encryption upgrade Use encryption if the server requests it

The default value is "IfRequested". This parameter can also be set using the CUPS_ENCRYPTION environment variable.

#Encryption #Encryption #Encryption #Encryption

Always Never Required IfRequested

Page 86 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# End of "$Id: client.conf,v 1.6 2002/12/17 18:56:38 swdev Exp $". #

/etc/samba3/smb.conf
[global] ############################################## ### ### ### Caracteristiques netbios de la machine ### ### ### ############################################## # definition du nom du domaine a gerer workgroup = Edge-DOM # definition du nom netbios de la machine netbios name = Edge-PDC # commentaire concernant la machine server string = Serveur PDC Edge-IT ######################## ### ### ### Gestion des logs ### ### ### ######################## # lieu de stockage log file = /var/log/samba3/log.%m # taille maximale du fichier de log max log size = 5000 # niveau de log #log level = 101 log level = 1 ##################################### ### ### ### definition du role du serveur ### ### ### ##################################### # PDC security = user # OS level > 32 pour tre lu os level = 80 # permet le declenchement des elections # definition d'un PDC local master = yes # domain master browser domain master = yes # force les elections pour devenir PDC preferred master = yes # le serveur fait de l'authentification domain logons = yes ################################# ### ### ### gestion des mots de passe ### ### ### ################################# # les echanges de mots de passe sont chiffres encrypt passwords = yes # on utilise un script externe... pam password change = no passwd program = /usr/share/samba3/scripts/smbldap-passwd.pl %u # qui change aussi les mots de passe Posix unix password sync = no

Page 87 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# dialogue entre samba et le script passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully* # en phase de debug, on active cette ligne pour etudier le dialogue ;passwd chat debug = yes # a n'utiliser que si on stocke quelques utilisateurs specifiques hors LDAP ;smb passwd file = /etc/samba3/smbpasswd ########################################### ### ### ### definition des bases d'utilisateurs ### ### ### ########################################### # on peut definir plusieurs types de sources ;passdb backend = ldapsam, smbpasswd, guest ;passdb backend = ldapsam:ldap://myfirstldap.edge-it.fr, ldapsam:ldap://mysecondldap.edge-it.fr, guest passdb backend = ldapsam, guest # definition des attributs ldap ldap admin dn = cn=Manager,dc=edge-it,dc=subnet ldap ssl = No ldap port = 389 ldap suffix = dc=edge-it,dc=subnet ldap machine suffix = ou=Computers ldap user suffix = ou=Users ldap group suffix = ou=Groups # le groupe des administrateurs du domaine admin users = @administrateurs ############## ### ### ### DIVERS ### ### ### ############## # le PDC est aussi serveur wins wins support = yes # si ce n'est pas le cas, on l'indique ici ;wins server = <ip> # ordre de resolution des noms netbios name resolve order = wins lmhosts bcast # pas de rsolution DNS sur les noms netbios dns proxy = no # quelques options de performance reseau # ces valeurs sont valables sur la majorite des configurations socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 ;socket options = TCP_NODELAY SO_RCVBUF=4096 SO_SNDBUF=4096 # Utilisateur utilise lorsque l'argument guest ok est a yes sur un partage guest account = administrateur # creation d'un nouvel utilisateur a-la-demande s'il n'existe pas deja dans la base. ; add user script = /usr/share/samba3/scripts/smbldap-useradd.pl -a %u # delete user script supprime l'utilisateur via les outils d'administration NT # en utilisant les outils d'administration NT, la craation d'un groupe est possible ;add group script = /usr/share/samba3/scripts/smbldap-groupadd.pl %g # delete group script fait l'operation inverse # avec ces memes outils, on peut associer un utilisateur a un groupe ;add user to group script = /usr/share/samba3/scripts/smbldap-groupmod.pl -m %u %g # delete user from group script fait l'operation inverse # script utilise pour ajouter une machine On-The-Fly avec une authentification comme administrateur du domaine add machine script = /usr/share/samba3/scripts/smbldap-useradd.pl -w %u

Page 88 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

########################################## ### ### ### Translation des jeux de caracteres ### ### ### ########################################## dos charset = 850 unix charset = ISO8859-15 ############################### ### ### ### Gestion de l'impression ### ### ### ############################### # on se sert des imprimantes definies dans CUPS # on charge la liste printcap name = cups load printers = yes # ajout des imprimantes autorisees pour le groupe administrateurs printer admin = @administrateurs ############################### ### ### ### DEFINITION DES PARTAGES ### ### (fichiers) ### ### ### ############################### # le partage des homedirectory tel qu'il est defini par defaut # cree un partage du type \\SERVER\\%u # utilisant le path /home/%u #[homes] # comment = Home Directories # browseable = no # writable = yes # root preexec = /etc/samba3/mkhomedir.sh %u %g # #vfs object = recycle # #recycle:repository = .Corbeille # #recycle:versions = yes # #recycle:maxsize = 5242880 [%U] path = /home/prives/%U comment = Home Directories browseable = no writeable = yes root preexec = /etc/samba3/mkhomedir.sh %u %g # si on souhaite avoir un partage priv ayant un autre nom que homes # on peut definir ce type d'entree ;[prives] ;path = /home/Prives/%u ;comment = Repertoire Prive ;browseable = no ;writable = yes ;root preexec = /usr/local/sbin/mkhomedir %u %g # partage des scripts de netlogon generes a la volee # par le script /home/netlogon/logon_script [netlogon] comment = Network Logon Service path = /home/netlogon guest ok = yes writable = no browseable = no root preexec = /home/netlogon/logon_script '%m' '%U' '%a' '%g' '%L'

Page 89 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# definition du partage des profiles utilisateur [profiles] path = /home/profiles browseable = no guest ok = yes profile acls = yes writeable = yes [administrateurs] comment = Stockage des Mises path = /home/administrateurs browseable = no writable = yes hide unreadable = yes [public] comment = Rpertoire Public path = /home/public public = yes writeable = yes browseable = yes ############################### ### ### ### DEFINITION DES PARTAGES ### ### (imprimantes) ### ### ### ############################### #Comme les packages utilises sont compiles avec la libcups, la directive 'print command' est ignore. # partage des imprimantes declarees [printers] comment = All Printers path = /var/spool/samba3 browseable = no # to allow user 'guest account' to print. guest ok = yes writable = no printable = yes create mode = 0700 # partage de distribution des drivers d'impression [print$] path = /var/lib/samba3/printers browseable = no read only = yes write list = @administrateurs guest ok = yes

Jour

/etc/samba3/smbldap_conf.pm
#!/usr/bin/perl use strict; package smbldap_conf3; # smbldap-tools.conf : Q & D configuration file for smbldap-tools # # # This code was developped by IDEALX (http://IDEALX.org/) and contributors (their names can be found in the CONTRIBUTORS file).

Page 90 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# # # # # # # # # # # # # # # # # #

Copyright (C) 2001-2002 IDEALX This program is modify it under as published by of the License, free software; you can redistribute it and/or the terms of the GNU General Public License the Free Software Foundation; either version 2 or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. Purpose : . be the configuration file for all smbldap-tools scripts

use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $UID_START $GID_START $smbpasswd $slaveLDAP $masterLDAP $slavePort $masterPort $ldapSSL $slaveURI $masterURI $with_smbpasswd $mk_ntpasswd $ldap_path $ldap_opts $ldapmodify $suffix $usersdn $computersdn $groupsdn $scope $binddn $bindpasswd $slaveDN $slavePw $masterDN $masterPw $_userLoginShell $_userHomePrefix $_userGecos $_defaultUserGid $_defaultComputerGid $_skeletonDir $_userSmbHome $_userProfile $_userHomeDrive $_userScript $usersou $computersou $groupsou $SID $hash_encrypt ); use Exporter; $VERSION = 1.00; @ISA = qw(Exporter); @EXPORT = qw( $UID_START $GID_START $smbpasswd $slaveLDAP $masterLDAP $slavePort $masterPort $ldapSSL $slaveURI $masterURI $with_smbpasswd $mk_ntpasswd $ldap_path $ldap_opts $ldapmodify $suffix $usersdn $computersdn $groupsdn $scope $binddn $bindpasswd $slaveDN $slavePw $masterDN $masterPw $_userLoginShell $_userHomePrefix $_userGecos $_defaultUserGid $_defaultComputerGid $_skeletonDir $_userSmbHome $_userProfile $_userHomeDrive $_userScript $usersou $computersou $groupsou $SID $hash_encrypt );

############################################################################## # # General Configuration # ############################################################################## # UID and GID starting at... $UID_START = 1000; $GID_START = 1000; # Put your own SID # to obtain this number do: "net getlocalsid" $SID='S-1-5-21-2136195339-989863896-887269785'; ############################################################################## # # LDAP Configuration

Page 91 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# ############################################################################## # # # # # # # Notes: to use to dual ldap servers backend for Samba, you must patch Samba with the dual-head patch from IDEALX. If not using this patch just use the same server for slaveLDAP and masterLDAP. Those two servers declarations can also be used when you have . one master LDAP server where all writing operations must be done . one slave LDAP server where all reading operations must be done (typically a replication directory)

# Ex: $slaveLDAP = "127.0.0.1"; $slaveLDAP = "127.0.0.1"; $slavePort = "389"; # Master LDAP : needed for write operations # Ex: $masterLDAP = "127.0.0.1"; $masterLDAP = "127.0.0.1"; $masterPort = "389"; # Use SSL for LDAP # If set to "1", this option will use start_tls for connection # (you should also used the port 389) $ldapSSL = "0"; # LDAP Suffix # Ex: $suffix = "dc=IDEALX,dc=ORG"; $suffix = "dc=edge-it,dc=subnet";

# Where are stored Users # Ex: $usersdn = "ou=Users,$suffix"; for ou=Users,dc=IDEALX,dc=ORG $usersou = q(Users); $usersdn = "ou=$usersou,$suffix"; # Where are stored Computers # Ex: $computersdn = "ou=Computers,$suffix"; for ou=Computers,dc=IDEALX,dc=ORG $computersou = q(Computers); $computersdn = "ou=$computersou,$suffix"; # Where are stored Groups # Ex $groupsdn = "ou=Groups,$suffix"; for ou=Groups,dc=IDEALX,dc=ORG $groupsou = q(Groups); $groupsdn = "ou=$groupsou,$suffix"; # Default scope Used $scope = "sub"; # Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA) $hash_encrypt="MD5"; ############################ # Credential Configuration # ############################ # Bind DN used # Ex: $binddn = "cn=Manager,$suffix"; for cn=Manager,dc=IDEALX,dc=org $binddn = "cn=Manager,$suffix"; # Bind DN passwd used # Ex: $bindpasswd = 'secret'; for 'secret' $bindpasswd = "riobeau1203"; # Notes: if using dual ldap patch, you can specify to different configuration # By default, we will use the same DN (so it will work for standard Samba # release) $slaveDN = $binddn; $slavePw = $bindpasswd;

Page 92 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

$masterDN = $binddn; $masterPw = $bindpasswd; ############################################################################## # # Unix Accounts Configuration # ############################################################################## # Login defs # Default Login Shell # Ex: $_userLoginShell = q(/bin/bash); $_userLoginShell = q(/bin/false); # Home directory prefix (without username) #Ex: $_userHomePrefix = q(/home/); $_userHomePrefix = q(/home/prives); # Gecos $_userGecos = q(System User); # Default User (POSIX and Samba) GID $_defaultUserGid = 513; # Default Computer (Samba) GID $_defaultComputerGid = 421; # Skel dir $_skeletonDir = q(/etc/skel); ############################################################################## # # SAMBA Configuration # ############################################################################## # The UNC path to home drives location without the username last extension # (will be dynamically prepended) # Ex: q(\\\\My-PDC-netbios-name\\homes) for \\My-PDC-netbios-name\homes $_userSmbHome = q(\\\\serveurstt1\\homes); # The UNC path to profiles locations without the username last extension # (will be dynamically prepended) # Ex: q(\\\\My-PDC-netbios-name\\profiles\\) for \\My-PDC-netbios-name\profiles $_userProfile = q(\\\\serveurstt1\\profiles\\); # The default Home Drive Letter mapping # (will be automatically mapped at logon time if home directory exist) # Ex: q(U:) for U: $_userHomeDrive = q(Z:); # The default user netlogon script name # if not used, will be automatically username.cmd #$_userScript = q(startup.cmd); # make sure script file is edited under dos ############################################################################## # # SMBLDAP-TOOLS Configuration (default are ok for a RedHat) # ############################################################################## # Allows not to use smbpasswd (if $with_smbpasswd == 0 in smbldap_conf.pm) but # prefer mkntpwd... most of the time, it's a wise choice :-) $with_smbpasswd = 0; $smbpasswd = "/usr/bin/smbpasswd"; $mk_ntpasswd = "/usr/sbin/mkntpwd3";

Page 93 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

# those next externals commands are kept fot the migration scripts and # for the populate script: this will be updated as soon as possible $slaveURI = "ldap://$slaveLDAP:$slavePort"; $masterURI = "ldap://$masterLDAP:$masterPort"; $ldap_path = "/usr/bin"; if ( $ldapSSL eq "0" ) { $ldap_opts = "-x"; } elsif ( $ldapSSL eq "1" ) { $ldap_opts = "-x -Z"; } else { die "ldapSSL option must be either 0 or 1.\n"; } #$ldapsearch = "$ldap_path/ldapsearch $ldap_opts -H $slaveURI -D '$slaveDN' -w '$slavePw'"; #$ldapsearchnobind = "$ldap_path/ldapsearch $ldap_opts -H $slaveURI"; $ldapmodify = "$ldap_path/ldapmodify $ldap_opts -H $masterURI -D '$masterDN' -w '$masterPw'"; #$ldappasswd = "$ldap_path/ldappasswd $ldap_opts -H $masterURI -D '$masterDN' -w '$masterPw'"; #$ldapadd = "$ldap_path/ldapadd $ldap_opts -H $masterURI -D '$masterDN' -w '$masterPw'"; #$ldapdelete = "$ldap_path/ldapdelete $ldap_opts -H $masterURI -D '$masterDN' -w '$masterPw'"; #$ldapmodrdn = "$ldap_path/ldapmodrdn $ldap_opts -H $masterURI -D '$masterDN' -w '$masterPw'";

1; # - The End

/home/netlogon/logon_script
#!/bin/sh # # Generate logon script for windows (or dos) # Original Author: Francois-Xavier Le Bail mailto:fx.LeBail@free.fr # #-- PARAMETRES -# %m (machine netbios name) %U (user) %a (architecture) %g (group) %L (server) # $1 $2 $3 $4 $5 # # <-- START --> #-- VARIABLES SAMBA_DIR=/var/log/samba3 SUFFIX=bat CLIENT_MACHINE="$1" USER="$2" # SYSTEM_TYPE (architecture) : WinXP, Win2K, WinNT, Win95, WfWg, Samba SYSTEM_TYPE="$3" GROUP="$4" SERVER_NAME="$5" SCRIPT="/home/netlogon/$USER.$SUFFIX" SERVER_TIME="\\\\testPDC" SERVER_NAS="\\\\testPDC" #-- FONCTIONS # end of line in windows/dos world : CR+NL # echo -n "WINDOWS_COMMAND"; echo -e '\r' # do the trick. # use "write" to write in the logon script write () { echo -n "$@"; echo -e '\r'; } # upper to lower function (user name, ...) u2l () { echo "$@" | tr '[A-Z]' '[a-z]'; }

Page 94 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

#-- ERRORS LOG -# for the new files umask 022 # if you need the errors messages #exec 2>>"$SAMBA_DIR/logon_script.err" # if you prefer the errors messages by machine name, comment the preceding line # and uncomment : exec 2>>"$SAMBA_DIR/logon_script.$USER.err" # if you need SHELL DEBUG, in the errors messages file, uncomment : #set -x #-- HEADER -# this redirection mean all the standard output go in the logon script exec 1>"$SCRIPT" # to hidden the script, (need "map hidden = yes", see in "man smb.conf") chmod o+x "$SCRIPT" #-- BODY -write "@ECHO off" write "ECHO." write "ECHO Type : $SYSTEM_TYPE." write "ECHO." write "ECHO Ordinateur : $CLIENT_MACHINE - Utilisateur : $USER - Groupe : $GROUP - Serveur: $SERVER_NAME" write "ECHO." # set the workstation time at the server time write "NET TIME $SERVER_TIME /set /yes" # perhaps you need non persistent connexion write "NET USE /persistent:no" #case "$SYSTEM_TYPE" in #WinNT) # # mount the home share # write "NET USE U: $SERVER_NAS\\homes /yes" #esac write "NET USE H: $SERVER_NAS\\$USER /yes" write "NET USE p: $SERVER_NAS\\public /yes" if [ "$GROUP" = administrateurs ]; then write "NET USE k: $SERVER_NAS\\administrateurs /yes" fi #if [ "$USER" = administrateur ]; then # write "NET USE y: $SERVER_NAS\\admins /yes" #fi write "regedit /s $SERVER_NAS\\netlogon\\MyDocs.reg" # if you need a pause #write "PAUSE"

/usr/local/sbin/mkhomedir
#/bin/bash homesdir="/home/prives" partition="/home" if [ $1 != administrateur ]; then /usr/sbin/setquota -p quotauser $1 $partition

Page 95 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

fi test ! -d $homesdir/$1 $homesdir/$1

&& mkdir -p $homesdir/$1

&& chmod 700 $homesdir/$1

&& chown $1:$2

/home/netlogon/MyDocs.reg
REGEDIT4 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders] "Personal"="H:\\" "My Pictures"="H:\\Mes images"

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders] "Personal"="H:\\" "My Pictures"="H:\\Mes images"

Page 96 / 97

_______________Rapport d'Installation Samba 3 PDC / LDAP / CUPS

LiensBibliographie
Gnral :

Le site Samba - http://www.samba.org Le site Openldap - http://www.openldap.org Le site Cups - http://www.cups.org Linux Printing - http://www.linuxprinting.org Howtos :

Samba HOWTO Collection : http://us1.samba.org/samba/docs/man Using Samba, 2nd Edition (O'Reilly) : http://us1.samba.org/samba/docs/using_samba/toc.html Listes de diffusion :

Listes Samba officielles : http://lists.samba.org/ Listes Samba officielles Archives : http://us1.samba.org/samba/archives.html Liste Samba-FR : http://listes.ujf-grenoble.fr/wws/info/samba-fr

Page 97 / 97

Das könnte Ihnen auch gefallen