Client GNU/Linux et Kwartz

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

Dernière mise à jour : mai 2023.

N’hésitez pas à nous faire un retour de test et/ou d’expérience.
Contact : romain.debailleul arobase ac-lille.fr

Script d’intégration

Nous avons rédigé un script SHELL regroupant la plupart de ces étapes pour remplacer ce tutoriel « manuel ». Ce script fonctionne sur Linux Mint 21 (basée sur Ubuntu 22.04).

Il devrait aussi fonctionner sur Linux Mint 20 (basée sur Ubuntu 20.04).

Nous manquons de temps mais le test du script kwartz-client de Georges Khaznadar est également en cours.


Les paragraphes ci-dessous indiquent le protocole pas-à-pas ainsi que la prise en main du système. Ce tutoriel est valable et a été testé pour les distributions basées sur Debian/Ubuntu : Raspberry pi OS, Lubuntu, Linux Lite, Linux Mint 20, 21 etc.

Le tutoriel reste utile pour le paramétrage de l’annuaire LDAP , visible dans le support vidéo Kwartz et Linux. Il permet en outre d’ajuster la configuration en cas de problème avec le script.

Tutoriel étape par étape

Cela suppose donc que vous avez installé le système d’exploitation GNU/Linux sur votre machine.

Le bureau XFCE est plus léger que Cinnamon et MATE. Il a été testé à 100% avec le déploiement via PULSE. Il reste possible de paramétrer le proxy avec le script.

Le protocole ci-dessous indique les étapes sur un réseau Kwartz pour:

  1. accéder à internet et installer des logiciels via le proxy,
  2. authentifier les utilisateurs par l’annuaire LDAP,
  3. monter automatiquement les répertoires Commun, User et Public (les noms peuvent varier) .
  • Récupérez le nom de domaine, nom samba du serveur Kwartz, utiles dans la seconde partie. Ces informations se trouvent dans l’onglet réseaux de l’interface Kwartz. Voir la vidéo de support ci-dessous.
    Le nom utilisé dans ce document sera kwartz-server. Inutile pour le seul accès internet. Cela signifie que nous avons accès aux répertoires Kwartz dans un navigateur de fichier à l’emplacement :
    smb://kwartz-server/prenom.nom/

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. Pascal Beel a participé à sa réalisation.
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 Carnot de Bruay.
Georges Khaznadar du lycée Jean Bart Dunkerque a créé le paquet kwartz-client disponible pour DEBIAN. Il nous a par ailleurs apporté une aide précieuse.
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 ]

Quelques établissements qui ont réalisé l’intégration

Emmanuel Ostenne du collège du val du Gy a effectué tests et remarques diverses. Il a largement contribué à améliorer ce document. 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.

Thomas Lévêque a intégré ses machines sous GNU/Linux au réseau Kwartz à Meubeuge.

Vincent Le-Mieux a intégré ses machines au réseau Kwartz dans son lycée.
David Selosse au lycée Malraux a utilisé le script de G.Khaznadar modifié.

Merci pour les retours.
Plusieurs PCs de ces collèges sont maintenant intégrés au réseau Kwartz.

Choix de la distribution

La distribution utilisée sur les postes fixes est Linux Mint, nous utilisons le bureau XFCE avec lequel le déploiement via l’outil Pulse s’est déroulé sans problème.
[EDIT 15/03/2023: les versions CInnamon et MATE fonctionnent, de préférence avec le script pour la gestion du proxy.]
Le choix du bureau : Cinnamon, MATE, XFCE etc. peut influencer le comportement des paramètres, nous l’avons observé pour le proxy.
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.

Ne pas multiplier les distributions utilisées pour harmoniser les pratiques: notre choix s’est porté sur DEBIAN et ses dérivées.
DEBIAN est recommandée par le Socle interministériel de logiciels libres.

Bien sûr, dans le cadre d’une utilisation à la maison, ce tutoriel est inutile.


Contact: romain.debailleul arobase ac-lille.fr



Intégration d’un client GNU/Linux au réseau Kwartz: support vidéo.

[EDIT Mai 2023 : Vers 3:20, il est conseillé de copier la ligne session required pam_mkhomedir.so  plus haut dans le fichier, juste après la ligne session required pam_unix.so, afin d’activer les modules dans le bon ordre pour pouvoir personnaliser la session.

 

Cette vidéo est disponible sur Peertube.

Préambule

Les commandes de ce tutoriel sont à taper dans une fenêtre de terminal (Crl+alt+t). En voici un premier exemple: tapez la commande sudo -s dans un terminal, cela vous permettra d’effectuer votre session avec le compte root, évitant de rappeler la commande sudo à chaque étape.

Linux: session root
Effectuer cette session avec le compte root évitera de taper sudo à chaque commande.

1. Raspberry

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 (en vert). Ouvrez pour cela un terminal (par exemple avec Ctrl+T). La commande sudo vous permet de vous substituer à l’administrateur.

[EDIT (septembre 2022):] les dernières versions de Raspberry OS obligent à changer le mot de passe

Changer le mot de passe :

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

2. Modifier les fichiers système

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

                                                      Arborescence du système de fichier GNU/Linux

3.Obtenir les informations

  • 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)

Terminal: commande ip a et son retour

I.Accès internet par le proxy

Fichier /etc/profile

Editer ce fichier pour accéder à internet via le proxy avec les protocoles 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 et mot de passe avec la syntaxe suivante dans le fichier ci-dessus:

export http_proxy=http://"rick.sanchez:mot_de_passe@172.16.0.253":"3128"

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

Créer ce fichier -une seule ligne- indispensable pour la gestion des paquets logiciels via apt:

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

3.Notes

  • Note : Vous avez également accès à serveur mandataire dans les préférences avec Ubuntu/Mint etc.
  • Si vous avez des apparitions intempestives de boite de dialogue demandant les identifiants, pensez à les sauvegarder. Installez le paquet oidentd si le problème persiste.
  • Installez Samba (souvent déjà installé) pour accéder au réseau de l’établissement ( Imprimantes, NAS etc.). Vous pouvez accéder à votre espace kwartz via un navigateur de fichier (Caja, Nautilus, Nemo etc.) par l’adresse smb://kwartz-server/login . SI cela ne fonctionne pas, voyez IV.Montage.

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


II.Annuaire et authentification:

1.Paquets à installer

Mettez à jour la liste des paquets via le gestionnaire ou sudo apt update.
Ces paquets sont disponibles dans les sources. Utiliser apt ou synaptic.

  1. Installer les paquets cifs-utils,libpam-mount, qui serviront au montage des répertoires:
    sudo apt install cifs-utils libpam-mount
  2. Installer le paquet libpam-ldapd.
    sudo apt install libpam-ldapd
    Les paquets ldap-utils libnss-ldapd libpam-ldapd nscd nslcd nslcd-utils sont automatiquement installés.
Outil de configuration des paquets

La fenêtre de configuration s’ouvre pour configurer l’annuaire LDAP, voici les paramètres par défaut (adresse IP du serveur Kwartz et paramètres DN à récupérer auprès de votre admin réseau):

  • Configuration de nslcd.
    URI du serveur LDAP:ldap://172.16.0.253
  • Nom distinctif DN :
    dc=kwartz,dc=dom
  • Configuration de libnss-ldapd:
    cocher passwd/ group/ shadow

Attention: Le nom distinctif DN peut différer, E. Ostenne le signale pour son collège (CG62). Avec des paramètres fictifs, il est du type:

dc=0620123a,dc=clg,dc=ac-lille,dc=fr

  • Vous ne devriez changer que la valeur 0620123a en fonction de votre établissement. Infos à repérer dans l’onglet réseau de Kwartz.
  • En cas d’erreur, vous pouvez relancer la configuration du LDAP avec :
    dpkg-reconfigure libnss-ldapd
  • Voir le document complet élaboré par E. Ostenne.
Configuration Kwartz
URI du LDAP, en principe 172.16.0.253

Exécutez la commande getent passwd .

Ceci devrait vous montrer les comptes de LDAP qui ne sont pas dans le fichier /etc/passwd. Autrement dit, tous les utilisateurs de l’établissement. Des tests similaires peuvent être faits avec group, shadow et d’autres bases de données configurées dans /etc/nsswitch.conf .

Cela permet de vérifier que NSS voit bien ce que fournit LDAP.

Vous devriez pouvoir vous connecter avec vos identifiants Kwartz.

https://wiki.debian.org/fr/LDAP/NSS

Fichiers modifiés pour consultation

III.Connexion à la session

1.Fichier /etc/pam.d/common-session

Afin d’activer le module pam_mkhomedir.so contenu dans le paquet libpam-modules qui va s’occuper tout seul de la création du répertoire sur la station, iI est nécessaire de modifier le fichier ci-dessous pour créer le dossier de l’utilisateur, indispensable à la connexion de session.

[EDIT 15/03/2023]: Il semble que la place des lignes joue sur l’ordre d’activation des modules.

Placer plus haut dans le fichier la ligne : session required pam_mkhomedir.so

permet d’utiliser le répertoire /etc/skel pour personnaliser la session utilisateur.

Ajouter juste après la ligne : session required pam_unix.so la ligne suivante:

session required    pam_mkhomedir.so

Attention: l’ordre des modules est important.

https://www.formatux.fr/formatux-securite/module-020-pam/index.html

Fichiers modifiés pour consultation.

2.Connexion manuelle à l’écran de connexion

A l’écran de connexion, vous devriez voir un menu pour la connexion manuelle. Dans le cas contraire:

  • Sur les distributions disposant de menus avancés type Ubuntu/Mint, il suffit de  cocher connexion manuelle dans le menu:Administration>>écran de connexion>>utilisateur
  • En l’absence de ce menu, comme sur Raspberry Pi OS, Lubuntu etc. Editer le fichier en modifiant la ligne greeter-hide-users=false , il vous faudra éventuellement installer lightdm:

Fichier /etc/lightdm/lightdm.conf

greeter-hide-users=true


Sinon, la liste de tous les utilisateurs de l’annuaire apparaît.

IV.Montage des partitions

1.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/21 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/smb.conf

client min protocol = NT1

2.Montage automatique des partitions Public, Commun, Perso

             Linux Mint MATE: les répertoires Perso, Commun et Public doivent apparaître sur le bureau.

Le fichier  /etc/security/pam_mount.conf.xml est créé à l’installation du paquet libpam-mount et doit comporter les volumes à monter, y ajouter les lignes ci-dessous. Le nom kwartz-server peut convenir mais il faudra le remplacer par le nom samba de votre serveur Kwartz si cela ne fonctionne pas.

(En collège CG62, il semble que ce nom soit serveur.)

Fichier /etc/security/pam_mount.conf.xml

Ajouter les lignes suivantes après <!-- Volume definitions -->

<volume  user="*"  fstype="cifs"   server="kwartz-server"   path="%(USER)"
             mountpoint="/home/%(GROUP)/%(USER)/Bureau/Espace_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" />

V.Documentation, sources et notes diverses


1.Remarques diverses

  • Pulse, livré par Iris technologie gère les images Linux pour le déploiement via PXE comme pour les clients Windows (par le réseau, appui sur F12 au démarrage). Les images Linux semblent prendre moins de place.
    Si nécessaire, mettre en cohérence les paramètres du BIOS: UEFI ou Legacy (hérité) afin d’éviter les problèmes avec le gestionnaire de démarrage comme avec l’erreur suivante:
    Image Linux efi mais boot legacy: Abandon de la reconstruction de grub.
    Dans l’onglet démarrage, activez UEFI only, et désactivez l’option CSM.
  • Privilégier le bureau XFCE, testé à 100% avec le déploiement via PULSE. Les bureaux basés sur GNOME comme MATE nécessitent un ajustement pour le proxy. Ce n’est gênant sur le poste d’installation, il suffit d’entrer dans le menu préférences>>serveur mandataire mais il n’est bien entendu pas envisageable de laisser cette gestion à l’utilisateur final.
    (Vérification en cours au 27/02/2023).
    [MAJ 10/03/2023: le script gère maintenant ce paramétrage.]

Les modifications ci-dessous sont prises en charge par le script kwartz-install

  • Le paquet unattended-upgrades gère les mises à jour de façon automatique:
    sudo apt install unattended-upgrades

    Assurez-vous que le paquet est activé, pour cela vérifiez que le fichier
    `/etc/apt/apt.conf.d/20auto-upgrades` contient les lignes suivantes:

    APT::Periodic::Update-Package-Lists « 1 »;
    APT::Periodic::Unattended-Upgrade « 1 »;
  • Touches d’accès au Boot Menu/BIOS/UEFI par constructeur
  • Créer un lien symbolique pour activer le shell, utile dans certains cas (utilisation de la commande su notamment):
    ln -s /bin/bash /bin/kwartz-sh
  • Il est préférable d’installer le paquet numlockx:
    sudo apt install numlockx
    et d’activer le verrouillage du pavé numérique à la connexion dans le menu:
    Administration>>Ecran de connexion>>Options.
  • Le logiciel Veyon est un logiciel libre pour la surveillance et le contrôle des ordinateurs sur plusieurs plates-formes.

2.Imprimantes

Avec une installation normale de Samba, les imprimantes du réseau sont détectées.

3.Documentations et sources.

-Quelques réflexions sur les logiciels libres en éducation:
-Références techniques: