1. Les grandes étapes de la mise en place du contrôleur de domaine
1.4. Installation de Samba (version3.5.6)
Nous allons configurer Samba de telle sorte qu’il soit contrôleur de domaine, mais aussi en tant que serveur de fichiers (partage de fichiers ou sauvegarde de données via un disque réseau). Pour ce faire, nous allons installer Samba, puis nous créerons des zones de stockages privées et publiques.
Commençons par installer les paquets :
root@LDAP1:~#aptitude -y install smbldap-tools samba smbclient smbfs
Répondre aux questions suivantes :
Nom du domaine ou groupe de travail : clin Voulez vous chiffrer les mots de passe : Oui
Modifier smb.conf pour utiliser les paramètres WINS fournis par DHCP : Non
Comment voulez-vous lancer Samba : Démon
Faut-il créer une base de données /var/lib/samba/passdb.tdb : Non (voir remarque ci-dessous)
Remarque : si on répond « Oui » à la dernière question, le programme d'installation de Samba va importer tous les comptes. Ça inclut les comptes comme root, daemon, nobody, www-data, game, etc. Sur un serveur fraichement installé, il vaut mieux répondre « Non ». On pourra les rajouter à la main plus tard en cas de besoin.
Une fois l’installation terminée, on arrête Samba afin de terminer sa configuration : root@LDAP1:~#/etc/init.d/samba stop
Il faut maintenant configurer Samba pour qu'il intègre LDAP et les outils SMBLDAP que l'on installera dans la foulée. Un fichier de configuration /etc/samba/smb.conf est déjà présent, nous modifions sont nom en smb.conf.back afin d’avoir une sauvegarde la configuration originel au cas où :
root@LDAP1:~#mv /etc/samba/smb.conf /etc/samba/smb.conf.bak
Nous allons maintenant aller chercher un exemple de configuration de smb.conf (ceci permet d’avoir un fichier sans le grand nombre de commentaire qui le rende illisible), cet exemple de configuration est disponible dans les fichiers créés par l’installation précédente du package smbldap-tools) :
root@LDAP1:~#cp /usr/share/doc/smbldap-tools/examples/smb.conf /etc/samba/smb.conf
Il ne reste plus qu’à le modifier afin d’avoir la configuration souhaitée : root@LDAP1:~#vi /etc/samba/smb.conf
Nous obtenons le fichier de configuration suivant (explication en vert) :
[global] #Définition des paramètres globaux du serveur
workgroup = clin #Nom du domaine (pour les clients Windows) netbios name = ldap1 #Nom du serveur LDAP qui l’identifie sur le réseau security = user #Force Samba à authentifier les connexions clients server string = Samba Server %v #Commentaire affiché dans le voisinage réseau
(Samba transcrit « %v » par sa propre version) encrypt passwords = Yes #Utilisation des mots de passe encryptés
ldap passwd sync = yes #Synchronise les mots de passe LDAP et Samba
###Commande qui permet de changer le mot de passe de l’utilisateur (à faire sous Samba)###
passwd program = /usr/sbin/smbldap-passwd -u "%u"
passwd chat = "Changing *\nNew password*" %n\n "*Retype new password*" %n\n"
log level = 3 #Niveau de log Samba
syslog = 3 #Niveau de log Samba + LDAP
log file = /var/log/samba/log.%U #Répertoire des log de Samba max log size = 100000 #Taille maximal du fichier de log time server = Yes #Samba est aussi serveur de temps
socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192 #Optimization pour le protocol TCP/IP
authentifié (voir [home] plus bas)
logon path = \\ldap1\profiles\%U #Chemin qui indique aux clients Windows où stocker leurs profils itinérants
logon script = logon.bat #Nom du script à exécuter à l’ouverture d’une session (voir [netlogon] plus bas)
logon drive = H: #Lettre du lecteur réseau qui mène à l’espace personnel de l’utilisateur (voir [home] plus bas)
os level = 65 #un « os level » de 65 permet au serveur Samba
d’être forcément le contrôleur de domaine face à un serveur Windows (dans le cas où 2 contrôleurs de domaine se trouvent sur le même réseau)
preferred master = Yes #Indique que ce serveur sera choisi en cas d’élection d’un contrôleur de domaine (si 2 serveurs sont en
« preferred master = yes » alors celui qui a le plus utilisateurs sont stockés sous LDAP
###Définition de l’organisation de l’arbre LDAP###
ldap admin dn = cn=admin,dc=clin,dc=local ldap suffix = dc=clin,dc=local
ldap group suffix = ou=Groups ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
###Définition des scripts (voir plus bas dans la partie Smbldap-tools)###
add user script = /usr/sbin/smbldap-useradd -m "%u"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g '%g' '%u'
ldap ssl = no #Indique que la communication avec OpenLDAP
n’est pas chiffrée
create mask = 0640 #Tout fichiers créés dans les différents répertoires (sauf indication contraire (voir plus bas)) ont les droits 640
directory mask = 0750 #Tout dossiers créés dans les différents répertoires (sauf indication contraire (voir plus bas)) ont les droits 750
guest account = nobody #Les compte invité (utilisateurs qui parcours les dos- siers publiques de Samba ont le droit de l’utilisateur
« nobody ») map to guest = Bad User
###Définition des partages###
[homes] #Répertoire personnel des utilisateurs
comment = Dossiers personnels #Commentaire
browseable = no #Invisible dans le voisinage réseau
writable = yes #Accessible en écriture
guest ok = no #Les utilisateurs invité n’y ont pas accès
valid users = %U, clin\%U #Seul l’utilisateur authentifié à droit de voir son réper- toire personnel (« %U » est l’utilisateur authentifié)
[netlogon] #Répertoire où sont stockés les scripts exécutés par
Les clients Windows lors de leurs connexions path = /home/netlogon/%G #Chemin du répertoire (où « %G » est le groupe
primaire de l’utilisateur)
browseable = No #Invisible dans le voisinage réseau
read only = yes #Accessible en lecture seul
guest ok = no #Les utilisateurs invité n’y ont pas accès
[profiles] #Répertoire où sont stocké les profiles itinérants
comment = profils itinerants #Commentaire toire personnel (« %U » est l’utilisateur authentifié)
[public] #Répertoire accessible à tout le monde
comment = Dossier public #Commentaire
Nous avons donc configuré le fichier de configuration de Samba et avons donné des chemins vers des répertoires (netlogon, public, profiles et home), il nous faut donc créer les dossiers (en leur attribuant les bon droits) au bon endroit afin que ces chemins pointent vers leur bonne destinations :
root@LDAP1:~#mkdir /home/netlogon root@LDAP1:~#chmod 775 /home/netlogon root@LDAP1:~#mkdir /home/profiles root@LDAP1:~#chmod 773 /home/profiles root@LDAP1:~#mkdir /home/public root@LDAP1:~#chmod 777 /home/public
Remarque : Nous n’avons pas créé le répertoire « home » car il s’agit d’un répertoire automatiquement créé qui pointe vers le répertoire personnel de l’utilisateur authentifié (ce répertoire est automatiquement créé à la création d’un utilisateur).
Nous redémarrons le démon Samba afin de prendre en compte notre configuration : root@LDAP1:~#/etc/init.d/samba restart
Stopping Samba daemons: nmbd smbd.
Starting Samba daemons: nmbd smbd.
Samba doit connaître le mot de passe administrateur du serveur OpenLDAP pour l’administration LDAP. Ca lui donnera l'autorisation de créer, supprimer, modifier des entrées pour les comptes utilisateurs, groupes et machines.
La commande suivante permet de le faire:
root@LDAP1:~#smbpasswd -W
Setting stored password for "cn=admin,dc=clin,dc=local" in secrets.tdb New SMB password: tototata
Retype new SMB password: tototata
Ceci créer un fichier « secret.tdb » se trouvant dans le répertoire /var/lib/samba que seul le super utilisateur (root) peut lire.