Aller au contenu
Sécurité medium

Verrouiller GNOME avec dconf : écran, bannière et médias

8 min de lecture

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.

  • 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

Un poste avec GNOME/GDM et un accès root. Les modifications prennent effet après dconf update et, pour la session, une reconnexion.

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é], puis clé=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.

Fenêtre de terminal
# Profil pour les réglages de session (base "local")
printf 'user-db:user\nsystem-db:local\n' | sudo tee /etc/dconf/profile/user

Le 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 :

Fenêtre de terminal
sudo dconf update
dconf 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.

  1. 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
  2. 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=true
    banner-message-text='Acces reserve aux personnes autorisees. Toute activite est journalisee.'
    disable-user-list=true
  3. 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.

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=true
lock-delay=uint32 5

Keyfile /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=false
automount-open=false
autorun-never=true

Les 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-never

On applique :

Fenêtre de terminal
sudo dconf update
Fenêtre de terminal
# Réglages de session lus depuis la base système
gsettings get org.gnome.desktop.screensaver lock-enabled # true
gsettings 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 place
ls /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.

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.

SymptômeCause probableSolution
Le réglage ne s'applique pasdconf update oubliérelancer sudo dconf update
Clé rejetée à la compilationuint32 manquant sur un entierpréfixer la valeur : idle-delay=uint32 900
L'utilisateur peut encore changer le réglageverrou absentajouter le chemin dans locks/, dconf update
La bannière GDM ne s'affiche pasmauvaise base (local au lieu de gdm)utiliser le profil et la base gdm
  • 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).

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracking. Un soutien, même symbolique, m'aide à couvrir l'hébergement et à garder ces ressources gratuites. Merci pour votre appui.

Le formulaire ne s'affiche pas ? Ouvrir Ko-fi dans un onglet.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn