Audit systému je velmi důležitým úkolem, který by měl být součástí každého serveru. Umožňuje nám auditovat drobné detaily související s tím, co se přesně děje v systému. Většina systémových administrátorů si může být vědoma základních funkcí auditování, jako je například hledání pokusů o přihlášení do souboru /var/log/secure, ale pokud jde o nízkoúrovňové auditování, je třeba tu práci udělat.
Některé z případů, kdy systémový audit pomáhá, jsou:
- Sledování přístupu k souboru :Chceme mít zprávu o tom, které soubory nebo adresáře na vašem serveru byly zpřístupněny nebo změněny a kdy a kterým uživatelem. Toto je důležitý aspekt, zejména pokud chceme zjistit přístup k důležitým souborům na našich serverech nebo chceme zjistit, kdo provedl změnu, která ovlivnila produkční prostředí.
- Sledování systémových volání :Každý příkaz, který napíšeme na zadní straně, provede systémové volání jádra.
Sledování změn v /etc/shadow a /etc/passwd
1. Chcete-li monitorovat soubory /etc/shadow a /etc/passwd, přidejte níže 2 pravidla do souboru auditovaných pravidel /etc/audit/rules.d/audit.rule.
# vi /etc/audit/rules.d/audit.rule -w /etc/shadow -p wa -k shadow -w /etc/passwd -p wa -k passwdNa CentOS/RHEL 6 je konfigurační soubor /etc/audit/audit.rules místo /etc/audit/rules.d/audit.rules.
Výše uvedený příkaz představuje následující:
-w path-to-file -p permissions -k keyname
kde oprávnění jsou jedno z následujících:
r – čtení souboru
w – zápis do souboru
x – spustit soubor
a – změna atributu souboru (vlastnictví/oprávnění)
2. Po definování 2 výše uvedených pravidel restartujte auditovanou službu.
# service auditd restartPoznámka :Nepoužívejte příkaz „systemctl“ ke správě služby auditované v CentOS/RHEL. Místo toho použijte starší příkaz „service“. Důvodem tohoto omezení je, že démon auditu musí zaznamenat jakékoli změny v auditní stopě, včetně spuštění a zastavení samotného démona auditu. Systemctl používá dbus ke komunikaci se systémem, který skrývá, kdo vydal příkaz, a vypadá, že to udělal root.
3. Pomocí příkazu „auditctl -l“ ověřte pravidla, která jste nastavili.
# auditctl -l -w /etc/shadow -p wa -k shadow -w /etc/passwd -p wa -k passwd
Ověřit
Soubor protokolu /var/log/audit/audit.log zaznamenává všechny auditované související zprávy protokolu. V tomto souboru protokolu můžete zkontrolovat, zda někdo nezměnil soubory shadow a passwd. Tento soubor může být dlouhý a systém může v tomto souboru generovat mnoho protokolů. K odfiltrování pravidel, která nás zajímají, můžeme použít příkaz „ausearch“ s klíčem, který jsme zadali při definování pravidel. Například:
# ausearch -k shadow ---- time->Sat Jun 16 06:23:07 2018 type=PROCTITLE msg=audit(1529130187.897:595): proctitle=7061737377640074657374 type=PATH msg=audit(1529130187.897:595): item=4 name="/etc/shadow" inode=551699 dev=ca:01 mode=0100664 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:shadow_t:s0 objtype=CREATE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=PATH msg=audit(1529130187.897:595): item=3 name="/etc/shadow" inode=636309 dev=ca:01 mode=0100664 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:shadow_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=PATH msg=audit(1529130187.897:595): item=2 name="/etc/nshadow" inode=551699 dev=ca:01 mode=0100664 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:shadow_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=PATH msg=audit(1529130187.897:595): item=1 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=PATH msg=audit(1529130187.897:595): item=0 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=CWD msg=audit(1529130187.897:595): cwd="/root" type=SYSCALL msg=audit(1529130187.897:595): arch=c000003e syscall=82 success=yes exit=0 a0=7f443258a332 a1=7f443258a2bc a2=7f443a3517b8 a3=0 items=5 ppid=4320 pid=4486 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="passwd" exe="/usr/bin/passwd" subj=unconfined_u:unconfined_r:passwd_t:s0-s0:c0.c1023 key="shadow"
Podobně pro soubor /etc/passwd můžeme odfiltrovat protokoly pomocí:
# ausearch -k passwd time->Sat Jun 16 06:22:56 2018 type=PROCTITLE msg=audit(1529130176.633:589): proctitle=757365726164640074657374 type=PATH msg=audit(1529130176.633:589): item=4 name="/etc/passwd" inode=638208 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=CREATE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=PATH msg=audit(1529130176.633:589): item=3 name="/etc/passwd" inode=636309 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=PATH msg=audit(1529130176.633:589): item=2 name="/etc/passwd+" inode=638208 dev=ca:01 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=DELETE cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=PATH msg=audit(1529130176.633:589): item=1 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=PATH msg=audit(1529130176.633:589): item=0 name="/etc/" inode=132 dev=ca:01 mode=040755 ouid=0 ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0 objtype=PARENT cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0 type=CWD msg=audit(1529130176.633:589): cwd="/root" type=SYSCALL msg=audit(1529130176.633:589): arch=c000003e syscall=82 success=yes exit=0 a0=7ffc0729ae70 a1=55f815c79ce0 a2=7ffc0729ade0 a3=55f815ce21a0 items=5 ppid=4320 pid=4481 auid=1001 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=3 comm="useradd" exe="/usr/sbin/useradd" subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="passwd"Porozumění systémovému auditování pomocí auditd