Sur un poste de travail Linux sous GNOME, des réglages de sécurité (verrouillage d'écran, bannière de connexion, blocage des clés USB) se définissent et surtout se verrouillent centralement avec dconf. Sans verrou, l'utilisateur peut tout désactiver ; avec, les réglages s'imposent à toute la session. Ce guide montre comment durcir l'écran de connexion GDM et la session, et rendre ces mesures non contournables. Pour administrateurs Linux, sur Debian/Ubuntu et RHEL/AlmaLinux avec GNOME. Aligné CIS Benchmarks. Toutes les sorties proviennent d'un test réel.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Le mécanisme dconf : profils, keyfiles et verrous (locks)
- Configurer la bannière GDM et masquer la liste des utilisateurs
- Imposer le verrouillage d'écran sur inactivité
- Bloquer l'automontage et l'autorun des médias amovibles
- Rendre chaque réglage non contournable
Prérequis
Section intitulée « Prérequis »Un poste avec GNOME/GDM et un accès root. Les modifications prennent effet après dconf update et, pour la session, une reconnexion.
Le mécanisme dconf
Section intitulée « Le mécanisme dconf »dconf est le système de configuration de GNOME. Le durcissement centralisé repose sur trois éléments :
- Un profil dans
/etc/dconf/profile/qui déclare les bases : une base utilisateur (modifiable) et une ou plusieurs bases système (en lecture seule). - Des keyfiles dans
/etc/dconf/db/<base>.d/, au format INI : une section[chemin/de/la/clé], puisclé=valeur. - Des verrous dans
/etc/dconf/db/<base>.d/locks/: un chemin de clé par ligne, préfixé par/.
Le point clé : la base utilisateur prime toujours sur les bases système. Sans verrou, un réglage système de sécurité est donc écrasable par l'utilisateur. Le lock est ce qui rend la mesure obligatoire. Après toute modification, on reconstruit les bases binaires avec dconf update.
# Profil pour les réglages de session (base "local")printf 'user-db:user\nsystem-db:local\n' | sudo tee /etc/dconf/profile/userLe lab confirme le mécanisme : après dconf update, la base binaire /etc/dconf/db/local est compilée, et la lecture d'une clé verrouillée renvoie bien la valeur imposée :
sudo dconf updatedconf read /org/gnome/desktop/media-handling/automount# falseÉcran de connexion GDM : bannière et liste d'utilisateurs
Section intitulée « Écran de connexion GDM : bannière et liste d'utilisateurs »L'écran de connexion utilise une base dédiée, gdm. On crée son profil puis les réglages.
-
Déclarer le profil gdm :
Fenêtre de terminal printf 'user-db:user\nsystem-db:gdm\nfile-db:/usr/share/gdm/greeter-dconf-defaults\n' | sudo tee /etc/dconf/profile/gdm -
Bannière d'avertissement + masquage de la liste des comptes dans
/etc/dconf/db/gdm.d/00-login-screen:[org/gnome/login-screen]banner-message-enable=truebanner-message-text='Acces reserve aux personnes autorisees. Toute activite est journalisee.'disable-user-list=true -
Appliquer :
Fenêtre de terminal sudo dconf update
Masquer la liste des utilisateurs (disable-user-list=true) élimine la moitié du couple identifiant/mot de passe offerte à un attaquant ayant un accès physique : il doit deviner le nom de compte en plus du mot de passe.
Session : verrouillage d'écran et médias
Section intitulée « Session : verrouillage d'écran et médias »Ces réglages utilisent la base local (profil user créé plus haut). On définit le keyfile et son verrou, sinon l'utilisateur peut les annuler.
Keyfile /etc/dconf/db/local.d/00-screensaver :
[org/gnome/desktop/session]idle-delay=uint32 900
[org/gnome/desktop/screensaver]lock-enabled=truelock-delay=uint32 5Keyfile /etc/dconf/db/local.d/00-media-handling (bloque l'automontage et l'autorun des médias, vecteur BadUSB) :
[org/gnome/desktop/media-handling]automount=falseautomount-open=falseautorun-never=trueLes valeurs entières dconf doivent être préfixées de leur type : idle-delay=uint32 900 (900 secondes), pas idle-delay=900, sinon la clé est rejetée. idle-delay est le délai avant extinction de l'écran, lock-delay le délai après extinction avant verrouillage.
Puis les verrous correspondants, pour rendre l'ensemble non contournable. Fichier /etc/dconf/db/local.d/locks/00-security :
/org/gnome/desktop/session/idle-delay/org/gnome/desktop/screensaver/lock-enabled/org/gnome/desktop/screensaver/lock-delay/org/gnome/desktop/media-handling/automount/org/gnome/desktop/media-handling/automount-open/org/gnome/desktop/media-handling/autorun-neverOn applique :
sudo dconf updateVérifier
Section intitulée « Vérifier »# Réglages de session lus depuis la base systèmegsettings get org.gnome.desktop.screensaver lock-enabled # truegsettings get org.gnome.desktop.media-handling automount # false
# Bannière GDM (dans le contexte de l'utilisateur gdm)sudo -u gdm dbus-run-session -- gsettings get org.gnome.login-screen disable-user-list # true
# Verrous bien en placels /etc/dconf/db/local.d/locks/Une fois les clés verrouillées, l'utilisateur ne peut plus les modifier depuis les paramètres GNOME : c'est le comportement attendu.
Pas de « session invité » sur GDM
Section intitulée « Pas de « session invité » sur GDM »Beaucoup de checklists mentionnent « désactiver l'utilisateur invité ». Or GDM ne propose pas de session invité : cette fonction venait de LightDM (anciennes saveurs Ubuntu). Il n'existe donc aucune clé dconf pour la désactiver côté GNOME, et le contrôle équivalent en pratique est disable-user-list=true. Si votre machine utilise LightDM, c'est allow-guest=false dans /etc/lightdm/, pas du dconf.
Dépannage
Section intitulée « Dépannage »| Symptôme | Cause probable | Solution |
|---|---|---|
| Le réglage ne s'applique pas | dconf update oublié | relancer sudo dconf update |
| Clé rejetée à la compilation | uint32 manquant sur un entier | préfixer la valeur : idle-delay=uint32 900 |
| L'utilisateur peut encore changer le réglage | verrou absent | ajouter le chemin dans locks/, dconf update |
| La bannière GDM ne s'affiche pas | mauvaise base (local au lieu de gdm) | utiliser le profil et la base gdm |
À retenir
Section intitulée « À retenir »- dconf durcit GNOME via profil + keyfiles + verrous, suivis de
dconf update. - Le verrou (
locks/) est indispensable : sans lui, l'utilisateur écrase le réglage système. - Écran de connexion (base gdm) : bannière et
disable-user-list=true. - Session (base local) : verrouillage d'écran sur inactivité, automount/autorun désactivés.
- Préfixer les entiers avec
uint32. - Pas de clé « invité » sur GDM ; sur un serveur, ne pas installer GNOME du tout.
- Aligné CIS (sections GDM : 1.7.x Ubuntu, 1.8.x RHEL ; vérifier le numéro selon la version du benchmark).