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

이 심층 가이드는 영어로 제공됩니다.

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.

핵심 내용

  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.

자주 묻는 질문

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.

linux desktops and user land infrastructure에 대한 Kinetikatech의 지원

저희가 매일 하는 일: Hardening compositors, sandboxing desktop apps, and tuning the user land that developers and operators actually touch. 당사의 서버 관리 및 웹사이트 유지보수 서비스는 평가, 구현, 24시간 연중무휴 모니터링, 30분 이내 긴급 대응을 엔드투엔드로 제공합니다.

엔지니어와 상담하기

서버 문제? 해킹된 웹사이트? 느린 페이지?

심각한 장애에 30분 이내 대응 — 24시간, 주 7일.

긴급 지원 요청 support@kinetikatech.com