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) et 22 (Ubuntu 24.04 avec le noyau 6.8).
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:
- accéder à internet et installer des logiciels via le proxy,
- authentifier les utilisateurs par l’annuaire LDAP,
- 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
[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.
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
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
(ouifconfig
)
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é)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.
- Installer les paquets
cifs-utils
,libpam-mount
, qui serviront au montage des répertoires:sudo apt install cifs-utils libpam-mount
- Installer le paquet
libpam-ldapd
.sudo apt install libpam-ldapd
Les paquetsldap-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.
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 installerlightdm
:
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.con
f
client min protocol = NT1
2.Montage automatique des partitions Public, Commun, Perso
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.]
Personnalisation des sessions utilisateurs
Avec le bureau XFCE.
Les fichiers du répertoire /etc/skel
sont automatiquement copiés lors de la première connexion d’un nouvel utilisateur. Placer les configurations XFCE dans /etc/skel/.config
suffira pour les nouveaux utilisateurs.
Il suffit donc de personnaliser une session modèle puis de copier le fichier de /home/<utilisateur_modele>/.config/xfce4
vers /etc/skel/.config
, par exemple avec :
cp -r /home/<utilisateur_modele>/.config/xfce4 /etc/skel/.config/
Pour les utilisateurs existants, une intervention manuelle est nécessaire pour propager les configurations.
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:
- Logiciels libres au lycée: Retour d’expérience.
Premiers retour de l’expérience menée au lycée qur quelques dizaines de machines. - Projet Numérique inclusif responsable et durable: enjeux du numérique.
-Références techniques:
- Merci à Iris Technologie pour leur aide.
- Script d’intégration de client GNU/Linux à EOLE :https://github.com/dane-lyon/clients-linux-scribe/blob/master/ubuntu-et-variantes-integrdom_20_04.sh
- Wiki DEBIAN LDAP NSS: https://wiki.debian.org/fr/LDAP/NSS
- A propos de PAM:https://www.formatux.fr/formatux-securite/module-020-pam/index.html
- lipam-ldapd par l’équipe d’EOLE: http://eole.ac-dijon.fr/documentations/2.5/partielles/HTML/ClientsGnuLinux/co/30-configurationClient.html
- La commande
smbmount
peut aider pour monter les répertoires:
Rendre executable et copiersmbmount
etsmbumount
vers/usr/bin
.
(Rendre executable par exemple avec:sudo chmod +x smbmount
) - Documentation pam_mount: https://wiki.archlinux.org/title/Pam_mount
- et https://doc.ubuntu-fr.org/utilisateurs/fr.laugier/ldap_client