GNU/Linux >> Znalost Linux >  >> Cent OS

Jak používat auditd ke sledování mazání souborů v Linuxu

Takže máte situaci, kdy se určitý soubor často maže a musíte prozkoumat, kdo soubor odstraní. Může to být použití nebo systémový proces, který může smazat soubor. Služba auditd může být dokonalým nástrojem pro prošetření takových problémů s mazáním souborů. Příspěvek nastiňuje kroky k instalaci a konfiguraci auditovaného ke sledování mazání souboru /var/tmp/test_file.

Red Hat Enterprise Linux poskytuje funkci pravidel auditu pro protokolování činností se soubory prováděných uživateli nebo procesy. Toho lze dosáhnout konfigurací pravidel auditu.

Instalace auditována

1. Většinou najdete auditované již nainstalované v distribucích založených na redhat. Pokud ne, nainstalujte jej pomocí yum:

# yum install audit

2. Dále se ujistěte, že je služba spuštěna při spouštění a spusťte službu.

# systemctl enable auditd
# systemctl start auditd

Při restartování auditované služby se doporučuje v CentOS/RHEL 7 použít místo systemctl příkaz „service“. Pokud použijete příkaz systemctl, můžete narazit na níže uvedenou chybu:

# 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. Zkontrolujte stav služby:

# 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

Konfigurace pravidel auditu

1. Chcete-li nakonfigurovat pravidla auditu, přidejte do souboru /etc/audit/rules.d/audit.rules následující řádek:

# 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
Na CentOS/RHEL 6 je konfigurační soubor /etc/audit/audit.rules místo /etc/audit/rules.d/audit.rules.

Výše uvedená pravidla sledují změny všech souborů v systému, jako je odpojení, přejmenování, smazání atd. Volitelně můžete zadat úplnou cestu ke sledovanému adresáři, například pokud chcete sledovat smazání souborů pouze v konkrétním souboru systém můžete určit bod připojení přidáním následujícího pole do pravidla auditu:

-F dir=[directory or mount point]

Výše definovaná pravidla se tedy nyní stanou jediným pravidlem, jak je ukázáno níže:

# 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

Upozorňujeme, že jsem také upravil klíč v pravidlech.

2. Aby pravidla nabyla účinnosti, musíte restartovat auditovanou službu.

# service auditd restart

3. Pomocí příkazu ‚auditctl -l‘ zobrazíte aktuálně aktivní auditovaná pravidla.

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

Zkontrolujte protokoly auditu pro odstranění souboru

1. Nyní můžete zkusit smazat soubor „/var/tmp/test_file“, abyste zjistili, zda auditované pravidlo, které jsme právě vytvořili, zaznamenává tuto událost do souboru protokolu.

2. Tím se zaprotokolují operace mazání souborů do souboru /var/log/audit/audit.log , můžeme však použít příkaz ausearch s klíčem zadaným v pravidle auditu (-k) pro prohlížení událostí:

# 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"

Jak můžete vidět ve výše uvedeném protokolu, uživatel root(uid=0) smazal (exe=”/usr/bin/rm”) soubor /var/tmp/test_file.


Cent OS
  1. Jak používat příkaz Tar v Linuxu

  2. Jak používat auditd ke sledování konkrétního SYSCALL

  3. Tvrdí se, že soubor mizí – Jak sledovat soubor pro smazání v Linuxu

  1. Jak používat příkaz md5sum v Linuxu

  2. Jak používat dotykový příkaz v Linuxu

  3. Jak používat příkaz Linux head

  1. Jak používat příkaz Linux diff

  2. Jak používat operátory testování souborů Bash v Linuxu

  3. Jak používat Linux rm Command s příklady