Otázka :Zdá se, že soubor mizí a nelze najít žádný přímý důvod pro jeho zmizení. Jak můžeme monitorovat přístup k souboru, zejména smazání konkrétního souboru v systému CentOS/RHEL?
Soubor lze monitorovat v průběhu jeho životního cyklu pomocí Linux auditd službu.
Postup
1. Chcete-li jej nainstalovat na CentOS nebo RHEL, spusťte:
# yum install audit
2. Chcete-li službu povolit při spouštění, spusťte:
# chkconfig auditd on # For CentOS/RHEL 6 # systemctl enable auditd # For CentOS/RHEL 7
nebo jej spusťte dočasně, do příštího restartu:
# service auditd start # For CentOS/RHEL 6 # systemctl start auditd # For CentOS/RHEL 7Poznámka :systemctl restart auditd nebude fungovat v RHEL7, protože jádro zpracovává auditované zvláštním způsobem. Budete muset zastavit a spustit službu.
3. Chcete-li sledovat konkrétní soubor a zjistit, zda se souboru něco dotýká, spusťte:
# auditctl -w [filename] -p rwxa -k [filter key]
kde:
-w [název souboru] :podívejte se na konkrétní soubor.
-p war :filtr oprávnění pro zápis, připojení, čtení.
-k [klíč filtru] :klíč filtru pro jednoznačnou identifikaci protokolů auditu.
Například:
# auditctl -w /var/opt/sun/comms/messaging64/log/mail.log_yesterday -p rwxa -k mail.log_yesterday
4. Chcete-li zobrazit aktuální sadu pravidel, spusťte:
# auditctl -l
Například:
# auditctl -l LIST_RULES: exit,always watch=/var/opt/sun/comms/messaging64/log/mail.log_yesterday perm=rwxa key=mail.log_yesterday
Ověřit
Chcete-li zjistit, kdo změnil sledovaný soubor nebo k němu přistupoval:
# ausearch -i -k [filter key]
Například:
# ausearch -i -k mail.log_yesterday ... ---- type=PATH msg=audit(12/12/2013 00:30:00.407:6209) : item=0 name=/opt/sun/comms/messaging64/data/log/mail.log_yesterday inode=425831 dev=fd:00 mode=file,600 ouid=mailsrv ogid=mail rdev=00:00 type=CWD msg=audit(12/12/2013 00:30:00.407:6209) : cwd=/var/opt/sun/comms/messaging64/log type=SYSCALL msg=audit(12/12/2013 00:30:00.407:6209) : arch=x86_64 syscall=open success=yes exit=5 a0=7fff62973b1d a1=0 a2=7fff62973870 a3=2 items=1 ppid=16442 pid=16450 auid=root uid=mailsrv gid=mail euid=mailsrv suid=mailsrv fsuid=mailsrv egid=mail sgid=mail fsgid=mail tty=(none) ses=570 comm=cat exe=/bin/cat key=mail.log_yesterday ---- type=CONFIG_CHANGE msg=audit(12/12/2013 00:30:00.407:6210) : auid=root ses=570 op="updated rules" path=/var/opt/sun/comms/messaging64/log/mail.log_yesterday key=mail.log_yesterday list=exit res=1 ---- type=PATH msg=audit(12/12/2013 00:30:00.407:6211) : item=1 name=/opt/sun/comms/messaging64/data/log/mail.log_yesterday inode=425831 dev=fd:00 mode=file,600 ouid=mailsrv ogid=mail rdev=00:00 type=PATH msg=audit(12/12/2013 00:30:00.407:6211) : item=0 name=/opt/sun/comms/messaging64/data/log/ inode=423325 dev=fd:00 mode=dir,700 ouid=mailsrv ogid=mail rdev=00:00 type=CWD msg=audit(12/12/2013 00:30:00.407:6211) : cwd=/var/opt/sun/comms/messaging64/log type=SYSCALL msg=audit(12/12/2013 00:30:00.407:6211) : arch=x86_64 syscall=unlink success=yes exit=0 a0=7ffff94beb1f a1=7ffff94beb1f a2=2 a3=2 items=2 ppid=16442 pid=16452 auid=root uid=mailsrv gid=mail euid=mailsrv suid=mailsrv fsuid=mailsrv egid=mail sgid=mail fsgid=mail tty=(none) ses=570 comm=rm exe=/bin/rm key=mail.log_yesterday ---- type=CONFIG_CHANGE msg=audit(12/12/2013 00:30:00.407:6212) : auid=root ses=570 op="updated rules" path=/var/opt/sun/comms/messaging64/log/mail.log_yesterday key=mail.log_yesterday list=exit res=1 ---- type=PATH msg=audit(12/12/2013 00:30:00.407:6213) : item=3 name=/opt/sun/comms/messaging64/data/log/mail.log_yesterday inode=425765 dev=fd:00 mode=file,600 ouid=mailsrv ogid=mail rdev=00:00 type=PATH msg=audit(12/12/2013 00:30:00.407:6213) : item=2 name=/opt/sun/comms/messaging64/data/log/mail.log_current inode=425765 dev=fd:00 mode=file,600 ouid=mailsrv ogid=mail rdev=00:00 type=PATH msg=audit(12/12/2013 00:30:00.407:6213) : item=1 name=/opt/sun/comms/messaging64/data/log/ inode=423325 dev=fd:00 mode=dir,700 ouid=mailsrv ogid=mail rdev=00:00 type=PATH msg=audit(12/12/2013 00:30:00.407:6213) : item=0 name=/opt/sun/comms/messaging64/data/log/ inode=423325 dev=fd:00 mode=dir,700 ouid=mailsrv ogid=mail rdev=00:00 type=CWD msg=audit(12/12/2013 00:30:00.407:6213) : cwd=/var/opt/sun/comms/messaging64/log type=SYSCALL msg=audit(12/12/2013 00:30:00.407:6213) : arch=x86_64 syscall=rename success=yes exit=0 a0=7fff81d5caea a1=7fff81d5cb1f a2=0 a3=0 items=4 ppid=16442 pid=16453 auid=root uid=mailsrv gid=mail euid=mailsrv suid=mailsrv fsuid=mailsrv egid=mail sgid=mail fsgid=mail tty=(none) ses=570 comm=mv exe=/bin/mv key=mail.log_yesterday ...
Zde vidíme rotaci souborů mail.log, kterou provádí „return_job ‘, která se ve výchozím nastavení odehrává v 00:30 a kterou spouští uživatel „mailsrv “. Můžete vidět, že soubor mail.log_yesterday je cat (do mail.log), je odstraňován a mail.log_current se přejmenovává na mail.log_yesterday.
Porozumění systémovému auditování pomocí auditd