Activité : OpenLDAP et Samba

Situation

Votre entreprise vous a chargé de tester l’intégration openLDAP avec samba.

Consigne

  • Lisez les instructions ci-après et réalisez les tâches demandées.
  • Votre machine virtuelle doit avoir les caractéristiques suivantes :
    • Paramètres de base de la machine :
    • Serveur : Ubuntu22.04LTS
    • Hostname : ubuntu
    • Username : epai
    • Password : epai1.2
    • L’utilisateur epai doit faire partie du groupe sudo

Objectifs

À la fin de ce travail, vous devez :

  1. Être capable d’installer et de configurer samba
  2. Être capable d’installer et de configurer openldap
  3. Être capable d’utiliser des fichiers LDIF

Horodatage

Un serveur se doit d’être à l’heure! Ne serait que pour les informations contenues dans ses journaux d’événements (logs).

Pour garantir que l’heure de votre serveur soit toujours exacte, on va utiliser un serveur de temps nous fournissant toujours l’heure exacte. Mais il est toujours utile de connaître les commandes permettant le changement de fuseau horaire.

Configurer l’heure manuellement

Utiliser la commande timedatectl pour afficher les informations sur l’heure de votre système :

timedatectl

Pour lister les fuseaux horaires disponibles. Attention il y en a beaucoup, nous ajouterons un filtre à la commande suivante:

timedatectl list-timezone

timedatectl list-timezone | grep Zurich

Résultat : Europe/Zurich

Afin d’appliquer un fuseau horaire, utilisez la commande suivante:

timedatectl set-timezone Europe/Zurich

Il s’agit de modifier une configuration système, il faut donc avoir des privilèges élevés. Notre utilisateur “epai” étant dans le groupe sudo, pas de problème, il suffit de redonner le mot de passe.

Plus simplement, lorsqu’une élévation de privilèges est nécessaire, il faut préfixer nos commandes avec sudo :

sudo timedatectl set-timezone Europe/Zurich

Revérifions l’application du fuseau horaire:

timedatectl

Configurer la synchronisation avec un serveur de temps

Un réglage manuel de l’heure ne nous garantit pas d’être à l’heure. Et un glissement du temps de l’horloge peut toujours avoir lieu. Il est donc plus intéressant d’être synchronisé en permanence avec des horloges de référence.

Pour cela il existe le protocole NTP (Network Time Protocol). L’étude de ce protocole sort du cadre de ce module. Par contre il est intéressant de savoir le configurer.

Sur un serveur Debian ou Ubuntu, l‘horloge système est automatiquement synchronisée en réseau.

C’est le service systemd-timesyncd.service qui gère la synchronisation.

Voyons l’état de notre service :

systemctl status systemd-timesyncd

Le résultat montre que le service est actif (running), et que le serveur de temps utilisé est un serveur ntp de Debian ou d’ubuntu.

Avec le protocole NTP nous pouvons donc synchroniser tous les serveurs de notre réseau avec le réseau mondial NTP. Si notre réseau devient très grand, il peut même être intéressant d’avoir son propre serveur NTP em ayant les avantages suivant :

  • Amélioration la synchronisation entre les serveurs de notre réseau
  • Réduction du trafic lié aux synchronisations de temps sur notre liaison Internet
  • Conserver des serveurs synchronisés, même en cas de coupure de notre connexion Internet
  • Diminuer les sollicitations sur le réseau NTP mondial

OpenLDAP

LDAP = Lightweight Directory Access Protocol.

Un annuaire est une base de données qui contient des informations sur des personnes, des ordinateurs, des groupes, …

Lancez l’applicatif Calculatrice trois fois de suite.

Ainsi, Active Directory (AD) est un annuaire LDAP.

Après l’AD de Microsoft, OpenLDAP est un des annuaires les plus répandus. Il est Open Source et gratuit, essayons de l’installer.

installer OpenLDAP

OpenLDAP est fourni via le paquet slapd. Il convient d’installer aussi les utilitaires clients pour pouvoir interroger ou modifier l’annuaire.

sudo apt-get install slapd ldap-utils

A l’installation, lorsqu’il est demandé le mot de passe de l’administrateur de l’annuaire, il n’est pas nécessaire de le faire. Nous le ferons plus tard.

Une fois l’installation terminée, lancez la commande de configuration de l’annuaire

sudo dpkg-reconfigure slapd

Et répondez de la manière suivante aux questions posées lors de l’installation:

  • Q1 : répondre NON
  • Q2 : choisissez votre domaine (racine de votre annuaire). Ex: module127.ch
  • Q3 : le nom de votre organisation. Exemple : module127
  • Q4 : le mot de passe administrateur de l’annuaire
  • Q5 : laissez le module par défaut MDB
  • Q6 : NON (défaut), ne pas purger la base de données
  • Q7 : OUI (défaut), déplacer les fichiers de base de données

Votre annuaire LDAP est configuré avec la racine “dc=module127,dc=ch” (selon l’exemple ci-dessus).

Avec la commande ldapsearch, visualiser l’arbre :

sudo ldapsearch –Q –Y EXTERNAL –L –H ldapi:/// -b dc=module127,dc=ch

Explication des paramètres :

-Q –Y EXTERNAL : ces paramètres concernent l’authentification pour accéder à l’annuaire. -L : le résultat est affiché au format LDIF (voir plus loin) -H : l’URI pour se connecter à l’annuaire -b le nœud à partir duquel faire la recherche

LDIF (LDAP Directory Interchange Format) est un format créé pour décrire les ajouts et les modifications d’un annuaire.

Afin de configurer notre serveur LDAP, nous allons écrire des fichiers LDIF que nous pourrons appeler en ligne de commande.

Alimenter l’annuaire avec LDIF

Créer un fichier LDIF avec vos propres données en vous inspirant de l’exemple ci-dessous:

dn: ou=Personnes,dc=module127,dc=ch
objectClass: organizationalUnit
ou: Personnes
description: Participants au module

dn: ou=Ordinateurs,dc=module127,dc=ch
objectClass: organizationalUnit
ou: Ordinateurs
description: Ordinateurs du domaine

dn: cn=Pierre Dupont,ou=Personnes,dc=module127,dc=ch
objectClass: inetOrgPerson
givenName: Pierre
sn: Dupont
cn: Pierre Dupont
uid: pdupont
userPassword: changeme

Reprendre la structure utilisée pour la configuration de l’AD au début de ce module et reproduire les OU ordinateurs et personnes

Puis ajouter cette structure à votre annuaire à l’aide de la commande ldapadd suivante:

sudo ldapadd -x -W -D “cn=admin,dc=module127,dc=ch” -H ldap://localhost -f structure.ldif

Félicitations, vous venez de créer votre première base LDAP.

Vous pouvez voir le résultat en invoquant à nouveau la commande ldapsearch :

sudo ldapsearch –Q –Y EXTERNAL –L –H ldapi:/// -b dc=module127,dc=ch

Utiliser un browser LDAP

Sur votre poste de travail, télécharger un browser LDAP. Comme par exemple: Softerra LDAP Browser.

Celui-ci vous permet de vous connecter à un AD ou à OpenLDAP pour parcourir vos annuaires.

Afin d’accéder à votre machine virtuel depuis votre PC, il faut configurer la redirection de port sur Virtual Box.

Tester la connexion au serveur OpenLDAP. Et parcourir l’arbre pour y retrouver les entrées créées.

Faire de même en se connectant à l’Active Directory installé au début de ce module.

Samba et partage réseau

On va devoir installer une seconde carte réseau en mode Host-Only :

  • Arrêtez la machine virtuelle. Lui ajouter une seconde carte réseau de type Host-Only. Redémarrer la machine virtuelle.
  • Vérifiez la configuration de cette carte sur la machine Windows (hôte), et relevez l’adresse IP configurée (ex. 192.168.56.1/24).
  • Configurez la nouvelle carte réseau sur le serveur Debian, avec une adresse IP dans le même réseau que ci-dessus.
  • Recherchez d’abord le nom de la nouvelle carte :
    ip a
    
  • Relevez le nom de la carte à l’état « DOWN » : par exemple enp0s8
  • Éditez le fichier /etc/network/interface et configurer les paramètres de la carte réseau de la manière suivante :
#The host network interface

allow-hotplug enp0s8
iface enp0s8 inet static 
    address 192.168.56.2 
    netmask 255.255.255.0
  • Tester la connectivité depuis votre machine windows en faisant un ping

Installer et configurer samba

sudo apt-get install samba

Lors de l’installation, lorsque la question est posée, autoriser la modification du fichier /etc/samba/smb.conf

Sur le serveur, créer un dossier qui sera partagé : /home/epai/partage

Nous n’allons pas entrer dans les détails de la gestion des droits, et autoriser les accès anonyme en écriture et lecture. Pour cela il faut donner les droits d’écriture à tout le monde :

chmod a+w ~/partage

Configurez le partage dans samba (/etc/samba/smb.conf) ajoutez une entrée à la fin du fichier, exemple : [mon-partage]

      comment = un partage Linux
      create mask = 0777 
      force create mode = 0777
      force directory mode = 0777
      guest ok = Yes
      path = /home/epai/partage
      read only = No

Depuis la machine Windows, appelez le partage comme pour un partage Windows : via l’explorateur entrer

\\192.168.56.2\

La liste des partages disponibles devrait s’afficher :

Partage

Créer un dossier, copier un fichier dans ce partage. Et retourner sur Linux, les fichiers doivent être visibles : $ ls –l

Liste du partage