Client GNU/Linux et Open LDAP

Protocole élaboré avec un serveur Kwartz basé sur Ubuntu/openLDAP+Samba

Il devrait fonctionner avec tout serveur utilisant un annuaire openLDAP.
La plupart de ces éléments ont été mis en place et testés avec succès par Sylvain Debomy sur son Raspberry au lycée Carnot Bruay-Labuissière, Hauts-de-France.
Romain Debailleul a complété les parties manquantes, effectué les tests y compris avec kwartz-client au lycée Carnot. Une cinquantaine de machines GNU/Linux sont intégrées au réseau pédagogique du lycée.
Georges Khaznadar du lycée Jean Bart Dunkerque a créé le paquet kwartz-client disponible pour DEBIAN. L’objectif à terme est de n’utiliser que ce paquet qui gère l’ensemble de façon automatique. Cependant,  Il n’est pour le moment pas disponible sur Raspberry et plusieurs collègues ne sont pas arrivés à le mettre en oeuvre dans leur établissement.

[Edit Novembre 2022: le paquet kwartz-client est disponible en version 2.0-1, test à venir ]

Emmanuel Ostenne du collège du val du Gy a effectué les tests et remarques diverses. Merci à lui.
Rémi Debrock du collège Cassin à Lillers a effectué les tests avec kwartz-client 2.0-1 et le paramétrage manuel. Merci pour les retours.
Plusieurs PCs de ces collèges sont maintenant intégrés au réseau Kwartz.

 

Le protocole ci-dessous indique la gestion manuelle sur un réseau Kwartz pour accéder à Internet, authentifier les utilisateurs.

Il est valable pour les distributions basées sur DEBIAN: Raspberry pi OS, Ubuntu, Mint etc.
DEBIAN est une distribution recommandée par le Socle Interministérielle de Logiciel Libre.
La distribution utilisée sur les postes fixes est Linux Mint 20. Nous utilisons Raspberry Pi OS pour nos Raspberry pi, voir Raspberry pi imager pour graver l’image sur une carte micro-SD ou une clé USB.
Bien sûr, dans le cadre d’une utilisation à la maison, ce tutoriel est inutile.


Contact: romain.debailleul arobase ac-lille.fr


Préambule

Le Raspberry est livré par défaut avec un compte utlisateur pi et le mot de passe raspberry
Il est fortement conseillé de changer le mot de passe du compte pi et de créer un utilisateur avec un autre mot de passe. Soit par le menu de configuration soit en ligne de commande:

Changer le mot de passe du compte pi

Avec le compte pi:
sudo passwd
ou supprimer ce compte:
sudo deluser -remove-home pi

Ajouter un compte

Ajouter son propre compte, par exemple alan:
sudo adduser alan
et lui donner les droits root:
sudo adduser alan sudo
[EDIT (septembre 2022):] les dernières versions de Raspberry OS obligent à changer le mot de passe.

Modifier les Fichiers

Les fichiers nommés avec leur chemin dans le système sont à éditer: ajouter les lignes proposées à l’aide d’un éditeur de texte.
Par exemple, pour éditer le fichier /etc/profile sur le Raspberry, taper la commande suivante dans un terminal:
sudo gedit /etc/profile

Cela ouvrira le fichier profile situé à l’emplacement /etc/ avec l’éditeur de texte gedit **

Rappelons qu’on sépare toujours une commande (gedit) de son argument (/etc/profile) par un espace.


Accès internet par le proxy


Faire identifier si nécessaire la machine par son adresse MAC auprès de l’administrateur réseau. Pour rappel cette adresse identifie de manière unique les périphériques réseaux et s’obtient en ligne de commande sur Linux par:
ip a (ou ifconfig)
adresse MAC

  • Cherchez dans la partie enp (ou eth0 sur Raspberry) pour l’ethernet: ether e0:3f:49:14:d3:xx indique ici une adresse MAC e0:3f:49:14:d3:xx
  • Cherchez dans la partie wlp (ou wlan0 sur Raspberry) pour le wifi. ether e0:3f:xx:14:d3:xx indique ici une adresse MAC e0:3f:xx:14:d3:xx

fichier /etc/profile

Pour accéder à internet via les protocole http, https, ftp:
En principe, pour la région Hauts-de-France, l’adresse IP du proxy est 172.16.0.253 sur le port 3128, à vérifier auprès de l’administrateur réseau. Il s’agit d’éditer le fichier `/etc/profile` en mode sudo

export http_proxy=http://"172.16.0.253":"3128"
export https_proxy=https://"172.16.0.253":"3128"
export ftp_proxy=ftp://"172.16.0.253":"3128"

Si la machine n’est utilisée que par une seule personne, il est possible d’indiquer ses identifiants:
http_proxy=http://"identifiant:mot_de_passe@172.16.0.253":"3128"

fichier /etc/apt/apt.conf.d/10proxy

Créer ce fichier qui ne contient qu’une seule ligne:


Acquire::http::Proxy "http://login:mot_de_passe@172.16.0.253:3128";

  • Il y a bien un espace entre Proxy et “http://………”
  • N’oubliez pas le point virgule en fin de ligne.
  • Vérifiez qu’aucun espace ne susbiste après ce point virgule.

    A ce stade, si vous ne souhaitez que l’accès internet, il est inutile de poursuivre.

Si Samba est installé, vous pouvez accéder à votre espace kwartz via un navigateur (Caja, Nautilus etc.) de fichier par l’adresse smb://kwartz-server/login

Remplacer `kwartz-server` par le nom samba du serveur Kwartz dans votre établissement. Par exemple, certains collèges ont simplement ‘serveur’ pour ce nom.

Installer le paquet `oidentd` qui dispose d’un mécanisme flexible pour spécifier les réponses d’identification.


Annuaire (pour les identifiants Kwartz):


Les lignes données dans ce paragraphe sont à ajouter au fichier existant.

  • Configuration des paramètres de l’annuaire
    Dans un terminal, lancer l’installation (admin) des paquets suivants:
    apt update
    apt-get install libpam-ldapd libnss-ldapd nscd

La fenêtre de configuration s’ouvre pour configurer l’annuaire LDAP, voici les paramètres en Hauts-de-France (à récupérer auprès de votre admin réseau s’ils ont été modifiés):
Paramètres: cocher users / passwd et shadow(?)

  • ldap server URI
    ldap://172.16.0.253
  • dn
    dc=kwartz,dc=dom
  • ldap version
    3
  • ldap account for root
    {laisser vide}
  • ldap root account password
    {laisser vide}

fichier /etc/nslcd.conf

A priori, seules les deux dernières lignes sont à ajouter.

uid nslcd

gid nslcd
uri ldap://172.16.0.253
base dc=kwartz,dc=dom
#SSL options
#ssl off
#tls_reqcert never
#tls_cacertfile /etc/ssl/certs/ca-certificates.crt base paswd OU=Users,DC=kwartz,DC=dom base group OU=Groups,DC=kwartz,DC=dom

fichier /etc/pam_ldap.conf

L’édition de ce fichier semble inutile sur Linux Mint/Ubuntu (à voir pour le montage auto ?)

host 172.16.0.253
uri ldap://172.16.0.253
ldap_version 3

pam_password crypt

A ce stade getent passwd renvoie la liste des users . Vérfiez-le avant d’aller plus loin.


Authentification


Paramètres d’authentification (voir https://www.linux.com/news/understanding-pam/)

fichier /etc/pam.d/common-session

En gras, les lignes ajoutées.

session [default=1]         pam_permit.so

session requisite           pam_deny.so
session required            pam_permit.so
session required    pam_unix.so 
session optional    pam_mount.so          #pour le montage fait ensuite
session [success=ok default=ignore] pam_ldap.so minimum_uid=1000
session optional    pam_systemd.so 
session required pam_mkhomedir.so

A ce stade , on peut avoir accès à l’authentification. Il reste à vérifier que l’écran de connexion vous permet d’entrer vos identifiants.


Connexion manuelle à l’écran de connexion


  • A l’écran de connexion,  vous devriez voir un menu pour la connexion  manuelle.
    Sinon, sur les distributions disposant de menus avancés type Ubuntu/Mint, il faut  cocher connexion manuelle dans le menu:

Administration>>écran de connexion>>utilisateur

  • Dans le cas contraire, comme sur Raspberry Pi OS, Lubuntu etc. Editer le fichier, il vous faudra éventuellement installer lightdm:

fichier /etc/lightdm/lightdm.conf

greeter-hide-users=true
#sinon on liste tous les utilisateurs de l’annuaire ldap pour choisir son identifiant


Montage automatique des partitions


Accès manuel à Public, Perso, Commun

L’adresse smb://kwartz-server dans un navigateur de fichier donne accès à l’espace kwartz.

Samba peut poser problème avec la version de Mint 20.2/20.3 utilisée. Si vous obtenez le message suivant en vous connectant au serveur kwartz via le gestionnaire de fenêtre(chemin: smb://kwartz-server/login): 
failed to mount Windows share: software cause connection abort
 Vous pouvez corriger ce problème en ajoutant une ligne sous le [global]à:

fichier /etc/samba.conf ou   /etc/samba/smb.conf

client min protocol = NT1

Montage automatique de Public, Perso, Commun

Installer le paquet `cifs-utils`

Version Iris Technologie pour le montage auto:
Voici les volumes ajoutés dans /etc/security/pam_mount.conf.xml

<volume  user="*"  fstype="cifs"   server="kwartz-server"   path="%(USER)"
       mountpoint="/home/%(GROUP)/%(USER)/Bureau/Perso" options="vers=1.0" />

<volume  user="*"  fstype="cifs"   server="kwartz-server"   path="Commun"
       mountpoint="/home/%(GROUP)/%(USER)/Bureau/Commun" options="vers=1.0" />

<volume  user="*"  fstype="cifs"   server="kwartz-server"   path="Public"
       mountpoint="/home/%(GROUP)/%(USER)/Bureau/Public" options="vers=1.0" />

Documentation pam_mount: https://wiki.archlinux.org/title/Pam_mount