Ga naar inhoud

Auditd

In deze handleiding leer je hoe je Auditd (Linux Audit Daemon) kunt installeren, configureren en beheren op een Linux-systeem.
We gebruiken Debian/Ubuntu als voorbeeld, maar de stappen zijn grotendeels gelijk op RHEL/CentOS/Fedora en openSUSE.

Achtergrondinformatie

  • Auditd: onderdeel van het Linux Audit Framework, ontwikkeld door de Linux community onder leiding van het Linux Kernel Project.
  • Eerste introductie rond 2004 in de Linux kernel, sindsdien onderhouden en meegeleverd met de meeste Linux-distributies.
  • Het registreert systeemgebeurtenissen zoals bestandswijzigingen, uitgevoerde commando's en beveiligingsgerelateerde acties.
  • Veel gebruikt voor compliance (bijv. PCI-DSS, HIPAA, GDPR) en forensisch onderzoek.
  • Belangrijkste onderdelen:
    • auditd daemon β†’ verzamelt en schrijft de logs.
    • auditctl β†’ instellen en beheren van auditregels.
    • ausearch/aureport β†’ zoeken en rapportages maken.

1. Controleren of Auditd aanwezig is

auditctl -v

Voorbeeld output:

auditctl version 3.0.9

2. Installatie

sudo apt update
sudo apt install -y auditd audispd-plugins
Voorbeeld output
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  auditd audispd-plugins
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
After this operation, 1,200 kB of additional disk space will be used.
Setting up auditd (1:3.0.9-1) ...
Created symlink /etc/systemd/system/multi-user.target.wants/auditd.service β†’ /lib/systemd/system/auditd.service.
sudo yum install -y audit
# of op nieuwere systemen:
sudo dnf install -y audit
Voorbeeld output
Dependencies resolved.
================================================================================
 Package      Arch   Version               Repository       Size
================================================================================
Installing:
 audit        x86_64 3.0.7-103.el9         baseos           255 k

Installed:
  audit-3.0.7-103.el9.x86_64

Complete!
sudo zypper install audit
Voorbeeld output
Loading repository data...
Reading installed packages...
Resolving package dependencies...

The following NEW package is going to be installed:
  audit

1 new package to install.
Overall download size: 300.0 KiB.
After the operation, additional 1.1 MiB will be used.
Installing: audit-3.0.6-150400.1.5.x86_64 ................................[done]
Created symlink /etc/systemd/system/multi-user.target.wants/auditd.service β†’ /usr/lib/systemd/system/auditd.service.

3. Auditd beheren

Service starten en inschakelen

sudo systemctl enable --now auditd
Voorbeeld output
Created symlink /etc/systemd/system/multi-user.target.wants/auditd.service β†’ /usr/lib/systemd/system/auditd.service.
Starting Audit daemon...
Started Audit daemon.

Service stoppen

sudo systemctl stop auditd
Voorbeeld output
Stopping Audit daemon...
Stopped Audit daemon.

Service uitschakelen

sudo systemctl disable auditd
Voorbeeld output
Removed /etc/systemd/system/multi-user.target.wants/auditd.service.

Status controleren

sudo systemctl status auditd
Voorbeeld output
● auditd.service - Security Auditing Service
     Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2025-08-25 14:32:01 UTC; 1min 23s ago
   Main PID: 1234 (auditd)
      Tasks: 2 (limit: 4675)
     Memory: 3.5M
     CPU: 24ms

Service herstarten

sudo systemctl restart auditd
Voorbeeld output
Stopping Audit daemon...
Starting Audit daemon...
Started Audit daemon.

Service herladen (zonder stoppen)

sudo systemctl reload auditd
Voorbeeld output
Reloading Audit daemon configuration...

Log bekijken (journalctl)

sudo journalctl -u auditd --no-pager
Voorbeeld output
Aug 26 14:32:01 server systemd[1]: Started Security Auditing Service.
Aug 26 14:32:01 server auditd[1234]: Started dispatcher: /sbin/audispd pid: 1235
Aug 26 14:32:01 server auditd[1234]: Init complete, auditd is running.

4. Basisconfiguratie

Het hoofdconfiguratiebestand is:

/etc/audit/auditd.conf

Voorbeeldconfiguratie:

log_file = /var/log/audit/audit.log
log_format = RAW
flush = INCREMENTAL
freq = 50
max_log_file = 8
num_logs = 5
space_left_action = SYSLOG
admin_space_left_action = HALT

!!! tip - max_log_file bepaalt maximale grootte van logs (MB).\ - Met num_logs stel je het aantal rotaties in.\ - space_left_action kan waarschuwingen geven of acties uitvoeren bij volle schijf.


5. Auditregels beheren

Auditregels worden ingesteld met auditctl of permanent opgeslagen in:

/etc/audit/rules.d/audit.rules

Voorbeeldregels

  • Monitor wijzigingen aan /etc/passwd:

    sudo auditctl -w /etc/passwd -p wa -k passwd_changes
    
  • Log alle commando's van een gebruiker:

    sudo auditctl -a always,exit -F arch=b64 -S execve -F auid=1000 -k user_cmds
    
  • Permanent toevoegen in /etc/audit/rules.d/audit.rules:

    -w /etc/passwd -p wa -k passwd_changes
    -a always,exit -F arch=b64 -S execve -F auid=1000 -k user_cmds
    

Herlaad regels:

sudo augenrules --load

6. Logs bekijken en analyseren

Raw logs

sudo less /var/log/audit/audit.log
Voorbeeld output
type=SYSCALL msg=audit(1693123456.123:420): arch=c000003e syscall=59 success=yes \
exe="/usr/bin/passwd" ...

Zoeken met ausearch

  • Alle events van gebruiker alice:

    sudo ausearch -ua alice
    
    Voorbeeld output
    ----
    time->Tue Aug 26 14:50:11 2025
    type=USER_LOGIN msg=audit(1693128611.456:99): pid=1234 uid=0 auid=1001 user="alice" exe="/usr/sbin/sshd" hostname=?
    ----
    
  • Alle wijzigingen aan /etc/passwd:

    sudo ausearch -f /etc/passwd
    
    Voorbeeld output
    ----
    type=PATH msg=audit(1693128700.789:100): item=0 name="/etc/passwd" inode=12345 dev=08:01 mode=0644 ouid=0 ogid=0 rdev=00:00
    ----
    

Rapporten maken met aureport

  • Algemeen overzicht:

    sudo aureport
    
    Voorbeeld output
    Summary Report
    ==============
    Range of time in logs: 08/26/2025 14:30:00.000 - 08/26/2025 15:00:00.000
    Number of logins: 12
    Number of failed logins: 2
    Number of users: 3
    
  • Failed logins:

    sudo aureport --failed
    
    Voorbeeld output
    Failed Summary Report
    =====================
    Range of time in logs: 08/26/2025 14:30:00.000 - 08/26/2025 15:00:00.000
    Failed logins: 2
    
  • Uitgevoerde commando's:

    sudo aureport -x
    
    Voorbeeld output
    Executable Report
    =================
    auid=1001 user=alice exe=/usr/bin/passwd count=3
    auid=1002 user=bob   exe=/usr/bin/sudo   count=1
    


7. Veelgebruikte configuraties

Hier volgen enkele praktische auditd-configuraties die vaak worden toegepast om kritieke gebeurtenissen en bestanden te monitoren. De regels worden doorgaans toegevoegd aan /etc/audit/rules.d/audit.rules of via auditctl toegepast.

-w /etc/shadow -p wa -k shadow_file
-w /etc/sudoers -p wa -k sudoers

Deze regels zorgen ervoor dat alle wijzigingen (-p wa = write & attribute change) aan kritieke systeem-bestanden zoals /etc/shadow en /etc/sudoers worden gelogd. Met de sleutel (-k) kun je deze later makkelijk terugvinden via ausearch -k shadow_file.

-w /var/log/secure -p wa -k login_logs

Hiermee monitor je wijzigingen in het authenticatie-logbestand (/var/log/secure of /var/log/auth.log, afhankelijk van je distributie). Zo kun je inbraken of brute-force pogingen beter analyseren.

-a always,exit -F arch=b64 -S execve -F uid=0 -k root_cmds

Deze regel logt alle uitgevoerde commando’s door root (uid=0). Dit is handig voor forensisch onderzoek, maar kan veel data opleveren. Met ausearch -k root_cmds of aureport -x --summary kun je deze rapporteren.


Debugging & Troubleshooting

Bij problemen met auditd is het handig om te controleren of regels juist geladen zijn, of logs correct worden geschreven. Hieronder enkele nuttige commando’s.

Check of regels geladen zijn

sudo auditctl -l
Voorbeeld output
-w /etc/shadow -p wa -k shadow_file
-w /etc/sudoers -p wa -k sudoers
-a always,exit -F arch=b64 -S execve -F uid=0 -k root_cmds

Test auditd

sudo ausearch -ts today -m avc
Voorbeeld output
----
time->Tue Aug 26 15:20:01 2025
type=AVC msg=audit(1693130401.789:321): avc:  denied  { read } for pid=1234 comm="cat" name="/etc/shadow"
----

Live volgen van log

sudo tail -f /var/log/audit/audit.log
Voorbeeld output
type=SYSCALL msg=audit(1693130502.456:322): arch=c000003e syscall=59 success=yes exe="/usr/bin/passwd"

Service status & fouten opsporen

sudo systemctl status auditd
sudo journalctl -u auditd --no-pager
Voorbeeld output
● auditd.service - Security Auditing Service
     Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
     Active: active (running) since Tue 2025-08-26 15:10:00 CEST; 15min ago
       Docs: man:auditd(8)

Configuratiebestanden

  • /etc/audit/auditd.conf β†’ algemene instellingen.\
  • /etc/audit/rules.d/ β†’ persistente auditregels.\
  • /var/log/audit/audit.log β†’ hoofdlogbestand.\
  • /etc/audisp/plugins.d/ β†’ plugins zoals syslog integratie.

Auditd verwijderen

sudo apt remove auditd
Voorbeeld output
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages will be REMOVED:
  auditd
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
After this operation, 1,200 kB disk space will be freed.
Do you want to continue? [Y/n]
sudo yum remove audit
Voorbeeld output
Dependencies resolved.
======================================================================
 Package     Arch    Version            Repository       Size
======================================================================
Removing:
 audit       x86_64  3.0.9-1.el8        @baseos          600 k

Let op

Het verwijderen van Auditd betekent dat je geen security auditing & forensische logs meer hebt.
Doe dit alleen in testomgevingen of wanneer je een alternatief hebt.


Hardening Tips

Aanbevelingen voor extra veiligheid

  • Stel kritieke bestanden (/etc/passwd, /etc/shadow, /etc/sudoers) altijd in de auditregels in.
  • Monitor wijzigingen in /var/log/ om logmanipulatie te detecteren.
  • Integreer Auditd met een SIEM-systeem (bijv. Splunk, ELK, Wazuh).
  • Gebruik aureport en ausearch regelmatig voor compliance-rapportages.

βœ… Met Auditd heb je een krachtig hulpmiddel om alle beveiligingsrelevante acties op je Linux-systeem vast te leggen en te analyseren!