NOC online · 24/7Longview, TX · +1 323 412 0665
KinetikatechServers · Security · Websites
FR

Ce guide détaillé est disponible en anglais.

English version

Linux Desktops and User Land Infrastructure

Configuring Systemd-Logind to Secure Virtual Consoles on Multi-User Desktop Nodes

Virtual consoles on multi-user desktops are a security boundary that is often overlooked. A user who switches to another console can access a session left unlocked or escalate privileges. Systemd-logind controls seat assignment, session tracking, and console switching. This guide hardens it.

Points clés

  1. Disable unused virtual consoles. Reduce the number of getty instances to limit attack surface.
  2. Configure console switching. Restrict Ctrl+Alt+Fx switching to prevent unauthorized console access.
  3. Set idle session timeouts. Automatically lock sessions that have been idle too long.
  4. Manage seat assignment. Ensure each user gets a dedicated seat with isolated devices.
  5. Enable session tracking. Logind tracks sessions for audit and policy enforcement.
  6. Configure polkit rules. Restrict who can reboot, suspend, or change system settings.
  7. Protect the graphical session. Ensure the display manager starts on a dedicated VT.
  8. Audit sessions. Use loginctl to review active sessions and seats.

Architecture

Logind manages seats, sessions, and virtual consoles. Each physical console maps to a seat, and sessions are tracked per user. Console switching is mediated by logind, which can restrict or disable it. Polkit provides additional authorization.

Production configuration

Logind configuration ini
# /etc/systemd/logind.conf
[Login]
NAutoVTs=2
ReserveVT=1
KillUserProcesses=yes
IdleAction=lock
IdleActionSec=300
HandlePowerKey=poweroff
HandleSuspendKey=suspend
HandleLidSwitch=suspend
Disable extra gettys bash
systemctl disable getty@tty3.service
systemctl disable getty@tty4.service
systemctl disable getty@tty5.service
systemctl disable getty@tty6.service
systemctl daemon-reload

loginctl show-seat seat0 -p VTNr
Polkit rule for console access javascript
polkit.addRule(function(action, subject) {
  if (action.id == "org.freedesktop.login1.set-wall-message" &&
      subject.isInGroup("admins")) {
    return polkit.Result.YES;
  }
  return polkit.Result.NOT_HANDLED;
});

Edge cases from production

  • Disabling all VTs breaks emergency recovery; keep at least one reserved.
  • IdleAction=lock requires a screen locker; ensure one is installed and configured.
  • Some applications expect VT switching; test before restricting.
  • Logind changes require a daemon restart or reboot to take full effect.

Questions fréquentes

Can I disable virtual consoles entirely?

Yes, but keep at least one for recovery.

How do I lock idle sessions?

Set IdleAction=lock and IdleActionSec in logind.conf.

What is a seat?

A collection of input and output devices assigned to a user.

How do I audit sessions?

Use loginctl list-sessions and loginctl show-session.

Does this affect SSH?

No, SSH sessions are separate from virtual consoles.

Comment Kinetikatech vous aide avec linux desktops and user land infrastructure

Soyons honnêtes, la plupart des équipes viennent nous voir après avoir essayé d'abord par elles-mêmes : Hardening compositors, sandboxing desktop apps, and tuning the user land that developers and operators actually touch. Notre service Gestion de serveurs et Maintenance web existe pour que vous n'ayez pas à apprendre linux desktops and user land infrastructure à vos dépens : nous gérons l'installation, la supervision et les surprises de 3 h du matin.

Parler à un ingénieur

Problème de serveur ? Site piraté ? Site lent ?

Incidents critiques pris en charge en 30 minutes — 24h/24, 7j/7.

Demander une assistance urgente support@kinetikatech.com