Debian GNU/Linux · Logging & auditing

Install and run the audit daemon

When it fails: The kernel audit records are not collected. Without auditd, security relevant system calls, file changes and command runs are not recorded anywhere.

CB-DEB-AUDIT-011mediumactiveautomatedautomated fixprofile server-hardenedprofile desktop-hardened

As released in v0.1.0 beta · pre-release. Current state.

Description

The Linux audit framework records events chosen by rules (system calls, file accesses, program runs) with the identity of the user who logged in. auditd (package auditd) receives these records from the kernel and writes them to /var/log/audit/audit.log; audispd-plugins adds the plugins that forward them (syslog, remote server). Neither is installed by default.

This control requires both packages and the auditd service enabled and running.

Rationale

The audit log is the detailed, per-user record that investigations rely on after an intrusion. It is also required by the audit rules controls CB-DEB-AUDIT-016 to CB-DEB-AUDIT-029.

Impact

auditd uses a few megabytes of memory. The disk space used depends on the rules and on the activity; see CB-DEB-AUDIT-013 and CB-DEB-AUDIT-014.

Setting

Locationauditd and audispd-plugins packages, auditd.service
DefaultNot installed
RecommendedInstalled, auditd.service enabled and active

Audit

  1. Run dpkg-query -W -f='${Package} ${Status}\n' auditd audispd-plugins. Both must end with installed.
  2. Run systemctl is-enabled auditd and systemctl is-active auditd. They must print enabled and active.

Automated: every check must pass. Scanners report each check by its id.

auditd

auditd is installed.

name: auditd
state: installed

plugins

audispd-plugins is installed.

name: audispd-plugins
state: installed

service

auditd.service is enabled.

unit: auditd.service
state: enabled

Remediation

Run apt-get install auditd audispd-plugins, then systemctl enable --now auditd.

Restartnone
Disruptionnone

Rollback

Run apt-get purge auditd audispd-plugins.

auditd

Generated from check auditd: the engine writes the fix for every output, it sets the expected value and the check runs again after.

plugins

Generated from check plugins: the engine writes the fix for every output, it sets the expected value and the check runs again after.

service

Generated from check service: the engine writes the fix for every output, it sets the expected value and the check runs again after.

Each release turns these fixes into remediate.sh and an Ansible role per profile: dry run by default, a fix runs only when its check fails.

References

Mappings

FrameworkIDRelationNote
ANSSI-BP-028 - Recommandations de configuration d'un système GNU/Linux2.0R73partialR73 also lists the events to record, covered by CB-DEB-AUDIT-016 to 029.
ANSSI-BP-028 - Recommandations de configuration d'un système GNU/Linux2.0R33related
NIST SP 800-53 Rev. 55.1.1AU-12related
NIST SP 800-53 Rev. 55.1.1AU-3related

How this control relates to the other framework's: equivalent, stricter, looser, partial or related.

Threats mitigated

People and lifecycle

Authors
Verified2026-10-18 by Sn0wAlice on 12, Proxmox VM, Debian 12 genericcloud image, kernel 6.1.0-54-cloud-amd64, BIOS boot. Fails on fresh install; packages installed and auditd enabled and active; kept after reboot.
Verified2026-10-18 by Sn0wAlice on 13, Proxmox VM, Debian 13 genericcloud image, kernel 6.12.113+deb13-cloud-amd64, BIOS boot. Fails on fresh install; packages installed and auditd enabled and active; kept after reboot.
Introduced inv0.1.0
Created, updated2026-10-18, 2026-10-18
Translationsfr