Chapter 47. Configuring session recording by using the CLI
Learn how to configure user terminal session recordings using the System Security Services Daemon (SSSD), and how to manage and play back these recordings using the tlog
command-line utility.
47.1. Session recording overview and components Copy linkLink copied to clipboard!
Session recording captures and saves a user’s terminal activity. This provides a detailed, unchangeable record of all commands, output, and error messages, which you can use for auditing, troubleshooting, and investigating a security incident.
SSSD enforces the recording policies you define, and the tlog
utility handles the actual recording and playback.
- Components of the session recording
tlog
utilityThe
tlog
utility provides tools for recording and playing back terminal I/O.tlog-rec-session
functions as an intermediary login shell and captures all data between the user’s terminal and shell. Alltlog
recordings are in JSON format. You can play back recorded sessions usingtlog-play
. Note that by default, terminal input recording is disabled for security reasons. For detailed configuration options, see the/etc/tlog/tlog-rec-session.conf
file and thetlog-rec-session.conf(5)
man page on your system.SSSD
SSSD provides a set of daemons that manage access to remote directories and authentication mechanisms. When you configure session recording, SSSD overlays the user’s default shell with the
tlog-rec-session
program.
- Limitations of session recording
- You can configure session recording for the root user, but the root user has the privileges to disable or bypass the recording process, which makes the session recording unreliable for auditing purposes.
-
Terminal sessions in a GNOME graphical session are not recorded. This is because all terminals within a graphical session share a single audit session ID, which prevents
tlog
from distinguishing between them and capturing recordings correctly. A logging loop can occur when viewing the journal. When a recorded user views the system journal or
/var/log/messages
, it generates new logs, which are then recorded and displayed, causing a loop of flooded output.To prevent the logging loop, view the journal in real time and filter out the log entries which create the loop:
journalctl -f | grep -v 'tlog-rec-session'
journalctl -f | grep -v 'tlog-rec-session'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow You can also configure
tlog
to limit the output. For details, seetlog-rec-session.conf
man pages.-
You must configure session recording on the target host for remote execution. For example, if you want to record a user’s session when they use
ssh
to connect to a remote system, configure the recording on the remote system they connect to. -
All recordings are lost on reboot if
systemd-journald
service uses its default configuration to store the journal in-memory.
47.2. Enabling and configuring session recording with SSSD from the CLI Copy linkLink copied to clipboard!
You can configure and enable session recording for specific users and groups from the command line.
When you configure session recording, you use SSSD to define which users or groups to record by setting the scope
option to one of the following values:
-
none
to record no sessions -
some
to record only specified users and groups -
all
to record all users
Prerequisites
-
Commands that start with the
#
command prompt require administrative privileges provided bysudo
or root user access. For information on how to configuresudo
access, see Enabling unprivileged users to run certain commands. - You are using SSSD for authentication.
Procedure
Install the
tlog
package:dnf install tlog
# dnf install tlog
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Open the
sssd-session-recording.conf
configuration file:vi /etc/sssd/conf.d/sssd-session-recording.conf
# vi /etc/sssd/conf.d/sssd-session-recording.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Specify the scope of session recording and the users and groups to record. For example:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow For more details, see the
sssd-session-recording(5)
man page on your system.To enable the SSSD profile, run the following command:
authselect select sssd with-tlog
# authselect select sssd with-tlog
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Restart SSSD to load the configuration changes:
systemctl restart sssd
# systemctl restart sssd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
47.3. Playing back session recordings Copy linkLink copied to clipboard!
The system journal stores session recordings. By default, it saves them in-memory, so you lose recordings on reboot unless you configure persistent storage.
You can play back recordings directly from the system journal by using the tlog-play
utility. Alternatively, you can install the cockpit-session-recording
package to manage and play back recordings on the RHEL web console.
Prerequisites
- Terminal sessions have been recorded.
Procedure
Optional: List recorded sessions:
journalctl COMM=tlog-rec-session
$ journalctl COMM=tlog-rec-session
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Play back a specific session:
tlog-play --reader=journal --journal-id=<recorded_session_id>
# tlog-play --reader=journal --journal-id=<recorded_session_id>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow For more advanced options, such as changing playback speed or fast-forwarding, see the
tlog-play
man page on your system.