1、簡介
我們知道在Linux系統中有大量的日志文件可以用於查看應用程序的各種信息,但是對於用戶的操作行為(如某用戶修改刪除了某文件)卻無法通過這些日志文件來查看,如果我們想實現監管企業員工的操作行為就需要開啟審計功能,也就是audit。
2、安裝及查看運行狀態
[root@RedHat_test ~]# yum install audit
[root@RedHat_test ~]# service auditd status
Redirecting to /bin/systemctl status auditd.service
● auditd.service -Security Auditing Service
Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
Active: active (running) since 一 2020-02-1016:55:56 CST; 29s ago
Docs: man:auditd(8)
https://github.com/linux-audit/audit-documentation
Process: 30174ExecStartPost=/sbin/augenrules --load(code=exited, status=0/SUCCESS)
Process: 30169ExecStart=/sbin/auditd (code=exited, status=0/SUCCESS)
Main PID: 30170(auditd)
CGroup: /system.slice/auditd.service
└─30170 /sbin/auditd
# 查看auditd的服務狀態的另一種方式
[root@RedHat_test ~]# auditctl -s
enabled 1
failure 1
pid 30170
rate_limit 0
backlog_limit 8192
lost 0
backlog 0
loginuid_immutable 0unlocked
----------------------------------------------------------------------------------------
enabled為1表示開啟,0表示關閉
3、auditd的相關的工具
auditctl : 即時控制審計守護進程的行為的工具,比如如添加規則等等。
/etc/audit/audit.rules : 記錄審計規則的文件。
aureport : 查看和生成審計報告的工具。
ausearch : 查找審計事件的工具
auditspd : 轉發事件通知給其他應用程序,而不是寫入到審計日志文件中。
autrace : 一個用於跟蹤進程的命令。
/etc/audit/auditd.conf : auditd工具的配置文件。
4、首次安裝 auditd 后, 審計規則是空的
[root@RedHat_test ~]# auditctl -l
No rules
5、Auditd監控文件和目錄的更改
[root@RedHat_test ~]# auditctl -w /etc/passwd -p rwxa
-wpath : 指定要監控的路徑,上面的命令指定了監控的文件路徑 /etc/passwd
-p: 指定觸發審計的文件/目錄的訪問權限
rwxa :指定的觸發條件,r 讀取權限,w 寫入權限,x 執行權限,a 屬性(attr)
6、Auditctl對目錄進行審計
[root@RedHat_test ~]# mkdir yunweimao
[root@RedHat_test ~]# auditctl -w /yunweimao/
7、查看已配置的規則
[root@RedHat_test ~]# auditctl -l
-w/etc/passwd -prwxa
-w/yunweimao -prwxa
8、使用 ausearch 工具查看審計日志
1.用-f 設定ausearch 調出 /etc/passwd文件的審計內容
[root@RedHat_test ~]# ausearch -f /etc/passwd
----
time->Mon Feb 1012:28:01 2020
type=PROCTITLE msg=audit(1581308881.667:110795): proctitle=2F7573722F7362696E2F63726F6E64002D6E
type=PATH msg=audit(1581308881.667:110795): item=0name="/etc/passwd"inode=134782786dev=fd:00 mode=0100644ouid=0ogid=0rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=NORMAL cap_fp=0000000000000000cap_fi=0000000000000000cap_fe=0cap_fver=0
type=CWD msg=audit(1581308881.667:110795): cwd="/"
type=SYSCALL msg=audit(1581308881.667:110795): arch=c000003e syscall=2success=yesexit=3a0=7f817d9f94d2 a1=80000a2=1b6 a3=24items=1ppid=2240pid=26958auid=4294967295uid=0gid=0euid=0suid=0fsuid=0egid=0sgid=0fsgid=0tty=(none) ses=4294967295comm="crond"exe="/usr/sbin/crond"subj=system_u:system_r:crond_t:s0-s0:c0.c1023 key=(null)
----
----------------------------------------------------------------------------------------
time : 審計時間。
name : 審計對象
cwd : 當前路徑
syscall : 相關的系統調用
auid : 審計用戶ID
uid 和 gid : 訪問文件的用戶ID和用戶組ID
comm : 用戶訪問文件的命令
exe : 上面命令的可執行文件路徑
2.修改監控文件添加一個用戶,看看auditd如何記錄文件 /etc/passwd的改動的
[root@RedHat_test ~]# useradd ywm
[root@RedHat_test ~]# ausearch -f /etc/passwd
----
time->Mon Feb 1012:38:43 2020
type=PROCTITLE msg=audit(1581309523.266:111048): proctitle=757365726164640079776D
type=PATH msg=audit(1581309523.266:111048): item=0name="/etc/passwd"inode=134782786dev=fd:00 mode=0100644ouid=0ogid=0rdev=00:00 obj=system_u:object_r:passwd_file_t:s0 objtype=NORMAL cap_fp=0000000000000000cap_fi=0000000000000000cap_fe=0cap_fver=0
type=CWD msg=audit(1581309523.266:111048): cwd="/root"
type=SYSCALL msg=audit(1581309523.266:111048): arch=c000003e syscall=2success=yesexit=4a0=7fc97e4cd4d2 a1=80000a2=1b6 a3=24items=1ppid=25306pid=27066auid=0uid=0gid=0euid=0suid=0fsuid=0egid=0sgid=0fsgid=0tty=pts0 ses=11383comm="useradd"exe="/usr/sbin/useradd"subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
----------------------------------------------------------------------------------------
在指定的時間,/etc/passwd 被root用戶(uid=0, gid=0)在/root目錄下修改。/etc/passwd 文件是使用/usr/sbin/useradd 訪問的
9、監控目錄是否有變動
1.ausearch去查看日志的時候會發現什么都沒有
[root@RedHat_test /]# mkdir test
[root@RedHat_test /]# auditctl -w /test/
[root@RedHat_test /]# ausearch -f /test/
<no matches>
2.使用root賬戶修改目錄權限
[root@RedHat_test /]# chmod -R 777 /test/
[root@RedHat_test /]# ausearch -f /test/
----
time->Mon Feb 1016:34:51 2020
type=PROCTITLE msg=audit(1581323691.872:117185): proctitle=63686D6F64002D5200373737002F746573742F
type=PATH msg=audit(1581323691.872:117185): item=0name="/test/"inode=268886168dev=fd:00 mode=040777ouid=0ogid=0rdev=00:00 obj=unconfined_u:object_r:default_t:s0 objtype=NORMAL cap_fp=0000000000000000cap_fi=0000000000000000cap_fe=0cap_fver=0
type=CWD msg=audit(1581323691.872:117185): cwd="/"
type=SYSCALL msg=audit(1581323691.872:117185): arch=c000003e syscall=257success=yesexit=3a0=ffffffffffffff9c a1=1020100a2=10900a3=0items=1ppid=29678pid=29913auid=0uid=0gid=0euid=0suid=0fsuid=0egid=0sgid=0fsgid=0tty=pts0 ses=11716comm="chmod"exe="/usr/bin/chmod"subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key=(null)
----
10、查看審計報告
aureport 是使用系統審計日志生成簡要報告的工具。我們已經配置auditd去跟蹤/etc/passwd文件。auditd參數設置后一段時間后,audit.log 文件就創建出來了。生成審計報告,我們可以使用aureport工具。不帶參數運行的話,可以生成審計活動的概述。
[root@RedHat_test ~]# aureport
Summary Report
======================
Range of time inlogs: 1970年01月01日 08:00:00.000 -2020年02月10日 16:40:10.014
Selected time forreport: 1970年01月01日 08:00:00 -2020年02月10日 16:40:10.014
Number of changes inconfiguration: 10
Number of changes to accounts, groups, or roles: 6
Number of logins: 3779
Number of failed logins: 0
Number of authentications: 978
Number of failed authentications: 486
Number of users: 2
Number of terminals: 12
Number of host names: 6
Number of executables: 18
Number of commands: 18
Number of files: 5
Number of AVC's: 0
Number of MAC events: 490
Number of failed syscalls: 0
Number of anomaly events: 0
Number of responses to anomaly events: 0
Number of crypto events: 16226
Number of integrity events: 0
Number of virt events: 0
Number of keys: 0
Number of process IDs: 16294
Number of events: 134330
----------------------------------------------------------------------------------------
看出有 486次授權失敗。使用aureport,我們可以深入查看這些信息
11、查看授權失敗的詳細信息
[root@RedHat_test ~]# aureport -au
Authentication Report
============================================
# date time acct host term exe success event
============================================
1. 2020年01月09日 19:04:38 root 10.101.0.194 ssh/usr/sbin/sshd no 550
2. 2020年01月09日 19:04:38 root 10.101.0.194 ssh/usr/sbin/sshd yes551
3. 2020年01月09日 19:04:38 root 10.101.0.194 ssh/usr/sbin/sshd yes554
4. 2020年01月09日 21:05:17 root 10.101.0.194 ssh/usr/sbin/sshd no 816
5. 2020年01月09日 21:05:17 root 10.101.0.194 ssh/usr/sbin/sshd yes817
6. 2020年01月09日 21:05:17 root 10.101.0.194 ssh/usr/sbin/sshd yes820
7. 2020年01月09日 22:04:57 root 10.101.0.194 ssh/usr/sbin/sshd no 991
12、查看所有賬戶與修改相關的事件
[root@RedHat_test ~]# aureport -m
Account Modifications Report
=================================================
# date time auid addr term exe acct success event
=================================================
1. 2020年02月10日 11:47:18 0? ? /usr/sbin/groupadd ? yes110357
2. 2020年02月10日 11:47:18 0? ? /usr/sbin/groupadd ? yes110358
3. 2020年02月10日 11:47:18 0? ? /usr/sbin/useradd ? yes110359
4. 2020年02月10日 12:38:43 0RedHat_test pts/0 /usr/sbin/useradd ywm yes111051
5. 2020年02月10日 12:38:43 0RedHat_test pts/0 /usr/sbin/useradd ? yes111053
6. 2020年02月10日 12:38:43 0RedHat_test pts/0 /usr/sbin/useradd ? yes111056
13、清空定義的規則
[root@RedHat_test ~]# auditctl -D
No rules
[root@RedHat_test ~]# auditctl -l
No rules
————————————————
版權聲明:本文為CSDN博主「運維貓(運維開發)」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/yunweimao/article/details/106688063