GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come utilizzare auditd per monitorare l'eliminazione di un file in Linux

Quindi hai una situazione in cui un determinato file viene eliminato frequentemente e devi indagare su chi elimina il file. Può essere un utilizzo o un processo di sistema che può eliminare un file. Il servizio auditd può essere uno strumento perfetto per indagare su tali problemi di eliminazione dei file. Il post delinea i passaggi per installare e configurare auditd per monitorare l'eliminazione di un file del file /var/tmp/test_file.

Red Hat Enterprise Linux fornisce la funzionalità delle regole di controllo per registrare le attività sui file eseguite dagli utenti o dai processi. Ciò può essere ottenuto configurando le regole di controllo.

Installazione di auditd

1. Per lo più, troverai auditd già installato su distribuzioni basate su redhat. In caso contrario, installalo usando yum:

# yum install audit

2. Quindi, assicurati che il servizio sia avviato all'avvio e avvia il servizio.

# systemctl enable auditd
# systemctl start auditd

Si consiglia di utilizzare il comando "service" invece di systemctl in CentOS/RHEL 7 durante il riavvio del servizio auditd. Se usi il comando systemctl potresti riscontrare il seguente errore:

# systemctl restart auditd
Failed to restart auditd.service: Operation refused, unit auditd.service may be requested by dependency only (it is configured to refuse manual start/stop).
See system logs and 'systemctl status auditd.service' for details.

3. Verifica lo stato del servizio:

# systemctl status auditd
● auditd.service - Security Auditing Service
   Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-06-16 03:29:19 UTC; 8s ago
     Docs: man:auditd(8)
           https://github.com/linux-audit/audit-documentation
  Process: 1951 ExecStartPost=/sbin/augenrules --load (code=exited, status=0/SUCCESS)
  Process: 1946 ExecStart=/sbin/auditd (code=exited, status=0/SUCCESS)
 Main PID: 1947 (auditd)
    Tasks: 2
   CGroup: /system.slice/auditd.service
           └─1947 /sbin/auditd

Configurazione delle regole di controllo

1. Per configurare le regole di controllo, aggiungi la seguente riga nel file /etc/audit/rules.d/audit.rules:

# vi /etc/audit/rules.d/audit.rules
-a always,exit -F arch=b32 -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete
-a always,exit -F arch=b64 -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete
Su CentOS/RHEL 6, il file di configurazione è /etc/audit/audit.rules invece di /etc/audit/rules.d/audit.rules.

Le regole di cui sopra monitorano tutti i file sul sistema per modifiche come scollegamento, rinomina, eliminazione ecc. Facoltativamente, puoi specificare un percorso completo della directory da guardare, ad esempio, se desideri monitorare l'eliminazione dei file solo in un file specifico sistema è possibile specificare il punto di montaggio aggiungendo il seguente campo alla regola di controllo:

-F dir=[directory or mount point]

Quindi le regole sopra definite diventeranno ora un'unica regola come mostrato di seguito:

# vi /etc/audit/rules.d/audit.rules
-a always,exit -F dir=/var/tmp -S unlink -S unlinkat -S rename -S renameat  -S rmdir -k delete_var

Si prega di notare che ho anche modificato la chiave nelle regole.

2. È necessario riavviare il servizio auditd affinché le regole diventino effettive.

# service auditd restart

3. Utilizzare il comando 'auditctl -l' per visualizzare le regole di audit attualmente attive.

# auditctl -l
-a always,exit -S rename,rmdir,unlink,unlinkat,renameat -F dir=/var/tmp -F key=delete_var

Controlla i log di controllo per l'eliminazione dei file

1. Ora puoi provare a eliminare il file "/var/tmp/test_file" per vedere se la regola auditd che abbiamo appena creato registra questo evento nel file di registro.

2. Questo registrerà le operazioni di eliminazione del file nel file /var/log/audit/audit.log , tuttavia possiamo usare il comando ausearch con la chiave specificata nella regola di controllo (-k) per guardare gli eventi:

# ausearch -k delete_var
...
----
time->Sat Jun 16 04:02:25 2018
type=PROCTITLE msg=audit(1529121745.550:323): proctitle=726D002D69002F7661722F746D702F746573745F66696C65
type=PATH msg=audit(1529121745.550:323): item=1 name="/var/tmp/test_file" inode=16934921 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=unconfined_u:object_r:user_tmp_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=PATH msg=audit(1529121745.550:323): item=0 name="/var/tmp/" inode=16819564 dev=ca:01 mode=041777 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:tmp_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0
type=CWD msg=audit(1529121745.550:323):  cwd="/root"
type=SYSCALL msg=audit(1529121745.550:323): arch=c000003e syscall=263 success=yes exit=0 a0=ffffffffffffff9c a1=9930c0 a2=0 a3=7ffe9f8f2b20 items=2 ppid=2358 pid=2606 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2 comm="rm" exe="/usr/bin/rm" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="delete_var"

Come puoi vedere nel log sopra, l'utente root(uid=0) ha cancellato(exe=”/usr/bin/rm”) il file /var/tmp/test_file.


Cent OS
  1. Come utilizzare il comando md5sum in Linux

  2. Come utilizzare il comando touch in Linux

  3. Come utilizzare il comando Tar in Linux

  4. Come utilizzare auditd per monitorare un SYSCALL specifico

  5. Si dice che un file stia scomparendo:come monitorare un file per l'eliminazione in Linux

Come creare e utilizzare file di scambio su Linux

Come utilizzare AppImage su Linux (Guida per principianti)

Come utilizzare il comando SCP su Linux

Come usare il comando lsof in Linux

Come usare gzip in Linux?

Come utilizzare il comando shred Linux