GNU/Linux >> Belajar Linux >  >> Cent OS

Cara menggunakan auditd untuk memantau penghapusan file di Linux

Jadi Anda memiliki situasi di mana file tertentu sering dihapus dan Anda perlu menyelidiki siapa yang menghapus file tersebut. Ini bisa berupa penggunaan atau proses sistem yang dapat menghapus file. Layanan auditd dapat menjadi alat yang sempurna untuk menyelidiki masalah penghapusan file tersebut. Postingan tersebut menguraikan langkah-langkah untuk menginstal dan mengonfigurasi auditd untuk memantau penghapusan file dari file /var/tmp/test_file.

Red Hat Enterprise Linux menyediakan fitur aturan audit untuk mencatat aktivitas file yang dilakukan oleh pengguna atau proses. Hal ini dapat dicapai dengan mengkonfigurasi aturan audit.

Menginstal auditd

1. Sebagian besar, Anda akan menemukan auditd sudah diinstal pada distribusi berbasis redhat. Jika tidak, instal menggunakan yum:

# yum install audit

2. Selanjutnya, pastikan layanan dimulai saat boot dan memulai layanan.

# systemctl enable auditd
# systemctl start auditd

Disarankan agar Anda menggunakan perintah "service" alih-alih systemctl di CentOS/RHEL 7 saat memulai ulang layanan auditd. Jika Anda menggunakan perintah systemctl, Anda mungkin mengalami kesalahan di bawah ini:

# 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. Periksa status layanan:

# 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

Mengonfigurasi aturan audit

1. Untuk mengonfigurasi aturan audit, tambahkan baris berikut di 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
Pada CentOS/RHEL 6, file konfigurasinya adalah /etc/audit/audit.rules bukannya /etc/audit/rules.d/audit.rules.

Aturan di atas memantau semua file pada sistem untuk perubahan seperti batalkan tautan, ganti nama, hapus, dll. Secara opsional, Anda dapat menentukan jalur lengkap direktori yang akan ditonton, misalnya, jika Anda ingin memantau penghapusan file hanya dalam file tertentu sistem Anda dapat menentukan titik pemasangan dengan menambahkan bidang berikut ke aturan audit:

-F dir=[directory or mount point]

Jadi aturan yang didefinisikan di atas sekarang akan menjadi satu aturan tunggal seperti yang ditunjukkan di bawah ini:

# 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

Harap dicatat, bahwa saya juga telah memodifikasi kunci dalam aturan.

2. Anda perlu me-restart layanan auditd agar aturan menjadi efektif.

# service auditd restart

3. Gunakan perintah 'auditctl -l' untuk melihat aturan auditd yang sedang aktif.

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

Periksa log audit untuk penghapusan file

1. Sekarang Anda dapat mencoba menghapus file “/var/tmp/test_file” untuk melihat apakah aturan auditd yang baru saja kita buat mencatat peristiwa ini di file log.

2. Ini akan mencatat operasi penghapusan file dalam file /var/log/audit/audit.log , namun kita dapat menggunakan perintah ausearch dengan kunci yang ditentukan dalam aturan audit (-k) untuk melihat peristiwa:

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

Seperti yang Anda lihat di log di atas, root pengguna(uid=0) menghapus(exe="/usr/bin/rm") file /var/tmp/test_file.


Cent OS
  1. Cara Menggunakan Perintah Tar di Linux

  2. Cara menggunakan auditd untuk memantau SYSCALL tertentu

  3. File Diklaim Hilang – Cara memantau file untuk dihapus di Linux

  1. Cara Menggunakan Perintah md5sum di Linux

  2. Cara Menggunakan Perintah sentuh di Linux

  3. Cara Menggunakan Perintah kepala Linux

  1. Cara Menggunakan Perintah diff Linux

  2. Cara menggunakan operator tes file Bash di Linux

  3. Cara Menggunakan Perintah Linux rm dengan Contoh