使用Audit审计服务排查linux终端异常关机问题

目录

【基本信息】

【问题描述】

【定位过程】

1,整理规律如下

2,部署audit审计服务定位问题

3,定位后期

【问题原因】

【问题解决】

【问题小结】

附录

1,audit审计服务部署脚本及其安装包

2,配置软绘,软解,禁用power键

3,部署audit服务

4,audit审计日志与规则

我将本案例写成了文档案例,可参见阿里云盘链接下载阅读,凡是提及附件的地方本文均未粘贴,可下载文档来阅读:

「spaceos终端不符合预期关机问题」https://www.aliyundrive.com/s/hetkctd2bbD

点击链接保存,或者复制本段内容,打开「阿里云盘」APP ,无需下载极速在线查看,视频原画倍速播放。

【基本信息】

  1. 瘦终端:C101LS,装载x64 SpaceOS(linux终端)系统(用于连接云桌面)
  2. 版本:Workspace E1009(云桌面客户端版本)
  3. 现场使用H3C Workspace的方式部署教室云桌面,自动登录云桌面,终端锁在教室讲台里,平时仅关闭显示器,终端独立供电,并且不断电。
  4. 客户基本预期就是终端不关机,也不断开云桌面,仅关闭其显示器,第二天上课时仅仅是给显示器上电,并且从授权策略中将关机和重启功能都是禁用了的。

【问题描述】

如上述基本信息,在部署了16间教室后,经过一周表现正常,但是第二周来每天陆续发现linux终端出现9次不符合预期的关机,确定非虚拟机关机。

【定位过程】

实际上,这个问题在出差到达现场之前,就已经定位到是正常的软关机,见下syslog的日志段,依次正确关闭系统服务,并且syslog中并无硬件类的报错记录,包括SpaceAgent和workspace客户端没有执行关机记录。

Jul 11 16:43:50 localhost systemd[1]: Stopped target Timers.

Jul 11 16:43:50 localhost systemd[1]: Closed Load/Save RF Kill Switch Status /dev/rfkill Watch.

Jul 11 16:43:50 localhost systemd[1]: Stopped target Host and Network Name Lookups.

Jul 11 16:43:50 localhost systemd[1]: Stopped Discard unused blocks once a week.

Jul 11 16:43:50 localhost systemd[1]: Stopping Authorization Manager...

Jul 11 16:43:50 localhost systemd[1]: Stopped target Graphical Interface.

Jul 11 16:43:50 localhost systemd[1]: Stopped Daily Cleanup of Temporary Directories.

Jul 11 16:43:50 localhost systemd[1]: Stopped Daily apt upgrade and clean activities.

Jul 11 16:43:50 localhost systemd[1]: Stopped Daily apt download activities.

Jul 11 16:43:50 localhost systemd[1]: Stopped Message of the Day.

Jul 11 16:43:50 localhost systemd[1]: Stopping User Manager for UID 1010...

Jul 11 16:43:50 localhost systemd[1]: Stopping Save/Restore Sound Card State...

Jul 11 16:43:50 localhost systemd[1]: Stopped target Multi-User System.

Jul 11 16:43:50 localhost systemd[1]: Stopping SpaceAgent deamon...

Jul 11 16:43:50 localhost systemd[1]: Stopping Regular background program processing daemon...

Jul 11 16:43:50 localhost systemd[575]: Stopping Virtual filesystem service...

Jul 12 07:56:19 localhost systemd[1]: Starting Flush Journal to Persistent Storage...

Jul 12 07:56:19 localhost systemd[1]: Started Flush Journal to Persistent Storage.

但疑难问题点在于,我们并不清楚关机的触发源,因为客户确定他们不会去关机,也不希望关机,讲台也没有针对终端的关开机按钮(后续事实证明这句话不完全准确)。

1,整理规律如下

  1. 出现的终端并不固定,多个教室均出现,从出现的数量来看(加上到现场发现的总共出现16台),问题概率高
  2. 问题发生的时间并不固定,有的是晚上8点多,有的是下午2-4点之间
  3. 问题时间尽管不固定,但是11号(周末),出现5台不符合预期关机时间点集中的情况,均在下午4点30-5点之间。

2,部署audit审计服务定位问题

在现场部署了audit服务(见附件1)来审计关机触发源,尽管没定位到触发源,但是从客观上证明了和workspace,spaceagent以及管理平台无关。截取部分审计内容如下:

A)键入last -x | shutdown后的审计结果

type=SYSCALL msg=audit(1626146892.715:736)(2021-07-13 11:28:12): arch=c000003e syscall=59 success=yes exit=0 a0=557d4e603050 a1=557d4e5de6a0 a2=557d4e5df9f0 a3=8 items=2 ppid=4776 pid=4785 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=4294967295 comm="shutdown" exe="/bin/systemctl" key="shutdown_call"

type=EXECVE msg=audit(1626146892.715:736): argc=1 a0="shutdown"

type=CWD msg=audit(1626146892.715:736): cwd="/root"

解析:

comm="shutdown" ,命令参数是关机

exe="/bin/systemctl" ,实际执行者是systemctl

key="shutdown_call" ,key是shutdown_call

cwd="/root",执行进程的路径(因为是人为切换到该目录下执行的)

type=EXECVE msg=audit(1626146892.715:736): argc=1 a0="shutdown",执行的命令是shutdown。

故该关机审计是人为在/root目录执行shutdown关机

B)通过ws客户端关机后的审计结果

type=SYSCALL msg=audit(1626058718.076:61): arch=c000003e syscall=59 success=yes exit=0 a0=562fe643d738 a1=562fe6443d88 a2=562fe6445240 a3=0 items=2 ppid=1495 pid=1496 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="shutdown" exe="/bin/systemctl" key="shutdown_call"

type=EXECVE msg=audit(1626058718.076:61): argc=3 a0="shutdown" a1="-h" a2="now"

type=CWD msg=audit(1626058718.076:61): cwd="/userdata/H3C/Workspace/E1009"

解析:

comm="shutdown" ,命令参数是shutdown

exe="/bin/systemctl" ,实际执行者是systemctl

key="shutdown_call" ,key是shutdown_call

cwd="/userdata/H3C/Workspace/E1009",执行进程的路径

type=EXECVE msg=audit(1626058718.076:61): argc=3 a0="shutdown" a1="-h" a2="now"

执行的命令是shutdown -h now

故该关机审计是/userdata/H3C/Workspace/E1009下执行了shutdown -h now的关机

C)通过终端关机后的审计结果

#正常关机审计日志开始日志段1:查询服务状态

type=SYSCALL msg=audit(1626053451.193:483): arch=c000003e syscall=59 success=yes exit=0 a0=55d9e0583dd8 a1=55d9e0583d40 a2=55d9e0583d98 a3=1b6 items=2 ppid=4977 pid=4981 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="systemctl" exe="/bin/systemctl" key="shutdown_call"

type=EXECVE msg=audit(1626053451.193:483): argc=6 a0="systemctl" a1="-p" a2="LoadState" a3="--value" a4="show" a5="netplan.service"

type=CWD msg=audit(1626053451.193:483): cwd="/"

………(略过)

#正常关机审计日志开始日志段2:陆续停止服务

type=SERVICE_STOP msg=audit(1626053451.269:493): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=cron comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=SERVICE_STOP msg=audit(1626053451.269:494): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=udisks2 comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=SERVICE_STOP msg=audit(1626053451.273:495): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=rsyslog comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=SERVICE_STOP msg=audit(1626053451.273:496): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=polkit comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=SYSTEM_SHUTDOWN msg=audit(1626053451.785:518): pid=5017 uid=0 auid=4294967295 ses=4294967295 msg=' comm="systemd-update-utmp" exe="/lib/systemd/systemd-update-utmp" hostname=? addr=? terminal=? res=success'

type=SERVICE_STOP msg=audit(1626053451.789:519): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-random-seed comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=SERVICE_STOP msg=audit(1626053451.789:520): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-update-utmp comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=DAEMON_END msg=audit(1626053451.795:8248): op=terminate auid=0 pid=1 subj= res=success

#正常关机审计日志开始日志段3:审计本次关机事件

type=SYSTEM_SHUTDOWN msg=audit(1626053451.785:518): pid=5017 uid=0 auid=4294967295 ses=4294967295 msg=' comm="systemd-update-utmp" exe="/lib/systemd/systemd-update-utmp" hostname=? addr=? terminal=? res=success'

type=SERVICE_STOP msg=audit(1626053451.789:519): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-random-seed comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=SERVICE_STOP msg=audit(1626053451.789:520): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-update-utmp comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=DAEMON_END msg=audit(1626053451.795:8248): op=terminate auid=0 pid=1 subj= res=success

#正常关机审计日志结束

解析:

  1. Systemctl先在查询系统服务状态
  2. 接着systemd服务陆续关闭系统及其第三方服务
  3. 系统systemd-update-utmp审计本次关机事件

故该关机审计是,该日志没有显式表明第三方服务参与和触发源,且均是系统服务正常关停流程,自此获得系统正常关机流程。

D)通过/userdata/H3C目录下脚本重启终端审计结果

type=SYSCALL msg=audit(1625820856.452:9): arch=c000003e syscall=59 success=yes exit=0 a0=55df7e0c87a0 a1=55df7e0ca350 a2=55df7e0c5ed0 a3=55df7e0bd010 items=2 ppid=1421 pid=1498 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="reboot" exe="/bin/systemctl" key="shutdown_call"

type=EXECVE msg=audit(1625820856.452:9): argc=1 a0="reboot"

type=CWD msg=audit(1625820856.452:9): cwd="/userdata/H3C"

解析:

comm=" reboot " ,命令参数是reboot

exe="/bin/systemctl" ,实际执行者是systemctl

key="shutdown_call" ,key是shutdown_call

cwd="/userdata/H3C ",执行进程的路径

type=EXECVE msg=audit(1625820856.452:9): argc=1 a0="reboot"

执行的命令是reboot

故该关机审计是/userdata/H3C/下执行了reboot的引起关机(并启动)

E)不符合预期关机审计结果

该日志截取于11号,5台不符合预期关机中的其中一台

#关机审计日志开始1:查询系统服务状态

type=SYSCALL msg=audit(1625993030.468:434): arch=c000003e syscall=59 success=yes exit=0 a0=5643a3c19dd8 a1=5643a3c19d40 a2=5643a3c19d98 a3=1b6 items=2 ppid=3601 pid=3608 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="systemctl" exe="/bin/systemctl" key="shutdown_call"

type=EXECVE msg=audit(1625993030.468:434): argc=6 a0="systemctl" a1="-p" a2="LoadState" a3="--value" a4="show" a5="netplan.service"

type=CWD msg=audit(1625993030.468:434): cwd="/"

type=PATH msg=audit(1625993030.468:434): item=0 name="/bin/systemctl" inode=105 dev=08:06 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0

type=PATH msg=audit(1625993030.468:434): item=1 name="/lib64/ld-linux-x86-64.so.2" inode=3108 dev=08:06 mode=0100755 ouid=0 ogid=0 rdev=00:00 nametype=NORMAL cap_fp=0000000000000000 cap_fi=0000000000000000 cap_fe=0 cap_fver=0

type=PROCTITLE msg=audit(1625993030.468:434): proctitle=73797374656D63746C002D70004C6F61645374617465002D2D76616C75650073686F77006E6574706C616E2E73657276696365

#关机审计日志开始2:陆续关闭系统服务

type=SERVICE_STOP msg=audit(1625993030.532:440): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=cron comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=SERVICE_STOP msg=audit(1625993030.532:441): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=udisks2 comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=SERVICE_STOP msg=audit(1625993030.540:442): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=rsyslog comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

#关机审计日志开始3:审计本次关机事件

type=SYSTEM_SHUTDOWN msg=audit(1625993031.060:472): pid=3639 uid=0 auid=4294967295 ses=4294967295 msg=' comm="systemd-update-utmp" exe="/lib/systemd/systemd-update-utmp" hostname=? addr=? terminal=? res=success'

type=SERVICE_STOP msg=audit(1625993031.064:473): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-random-seed comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=SERVICE_STOP msg=audit(1625993031.068:474): pid=1 uid=0 auid=4294967295 ses=4294967295 msg='unit=systemd-update-utmp comm="systemd" exe="/lib/systemd/systemd" hostname=? addr=? terminal=? res=success'

type=DAEMON_END msg=audit(1625993031.069:8248): op=terminate auid=0 pid=1 subj= res=success

#关机审计日志结束

解析:

和通过终端关机键关机流程一样,有以下结论

  1. Systemctl先在查询系统服务状态
  2. 接着systemd服务陆续关闭系统及其第三方服务

3,系统systemd-update-utmp审计本次关机事件

故该关机审计是,该日志没有显式表明第三方服务参与和触发源,且均是系统服务正常关停流程,即评估只可能是系统正常关机流程。

结合上面五个案例,可以得出

  1. 如果是显式调用关机必有执行源,并且/bin/systemctl是真正的执行者;
  2. 不符合预期关机审计看出,是正常系统关机,由于确定不是终端按钮触发,肯定存在另外触发源

3,定位后期

当比对和排除软件层面的因素后,剩下的:

  1. 电源稳定性(可能性小)
  2. 终端硬件本身有问题(可能性小)
  3. 讲台中控环境,或者人为因素

结合问题规律,实际上只能往3方向分析,通过调用监控发现每次出现问题的时间点均有学生在打扫卫生,或者现场有人。通过反复琢磨讲台最终发现11号下午的不符合预期关机均是人为无意导致,同时通过调用监控在后续也发现了他因,见【问题原因】

【问题原因】

问题的原因有两个:

  1. 大部分教室的键盘配置有power键,按下后终端立刻关机,在现场调用监控可知,一方面是打扫卫生用毛巾擦桌子(或者其他行为)时无意触碰到该按钮,另一方面也是教员有意为之(教员并不知道维护人员系希望永不停机)

  1. 教员在下课后习惯性注销虚拟机(本意应该是关机),导致vdsession断开虚拟机,然后教员在客户端右上角点击关机。这个通过日志和监控也当场确认无疑。

【问题解决】

针对原因1:编写了一键配置禁用power键的脚本(见附件2),键盘不再对终端关机。

针对原因2:目前可以引导客户使用,尽量避免客户人为关机,针对终端可以每天设置定时任务开机。

同时可以通过客户端toolbar返回客户端关机的问题,和代表处唐宇沟通,提ALM电子流需求(实现可以通过策略取消返回本地客户端的功能)。

注意

局点平时会关闭显示器,如果自动开机,客户端自动连接云桌面后,此时未连接显示器,客户端将无法知悉显示器分辨率,会产生小窗口问题。

【问题小结】

事后来看,原因都是人为,并且都能通过调用监控查到。问题难在:

  1. 这个问题怎么分析日志都是正常关机,无法分析到明确触发源。即使当我们调用audit服务来审计关机源时,怎么定位都是系统服务执行的正常关机流程。
  2. 现场无法远程,只能搜集日志,以及言语沟通,而传递的信息中有的是不准确的,混淆了定位方向。比如客户认为不可能是人为,因为盒子是锁着的,电源也没断,讲台没有针对该终端关机功能(键盘上实际有)。方向的混淆,导致在现场甚至关注过电源稳定性。
  3. 并且该问题有两个触发源,即使原因1解释了大部分,有部分教室也无法解释清楚。
  4. 现场的教室由于部分键盘没有power键,逃过了法眼,导致没有过早抓到原因。

这个问题在现场,实际是通过缩小问题范围逐步定位的,事后诸葛亮来看,其实当11号下午出现集中时间点出现5台不符合预期关机,基本就应该确定有人为规律迹象,同时也应该调转方向往监控和讲台更进一步全面排查。即我们应该准确的抓住既有事实及其规律深入往下分析,减少弯路。

附录

1,audit审计服务部署脚本及其安装包

解压后的文件中有readme.txt,安装包和安装脚本,请参考部署

2,配置软绘,软解,禁用power键

解压后的文件中有readme.txt和安装脚本,请参考部署

3,部署audit服务

本文配置对象:所有非arm架构的SpaceOS终端

3.1 手动安装auditd审计服务

第一步:安装auditd包以及依赖,见audit,zip

dpkg -i xxx.deb

第二步:添加审计规则文件audit.rules(见audit,zip解压后),到/etc/audit/rules.d目录下

第三步:重启终端,确认auditd服务启动正常,audit.rules生效

如图,auditd服务启动生效

如图,添加审计规则生效

3.2 批量安装auditd审计服务

1,首先通过命令下发功能,上传audit.zip包(见附件1),并输入命令,然后选择指定终端或者终端分组下发即可

sudo unzip /userdata/H3C/SpaceAgent/RecvFiles/audit.zip

2,  接着依然通过命令下发功能,并输入命令,然后选择指定终端或者终端分组下发即可

sudo chmod +x /userdata/H3C/SpaceAgent/RecvFiles/install_audit.sh;sudo /userdata/H3C/SpaceAgent/RecvFiles/install_audit.sh

3,如果后续想卸载audit (注意,有个参数1)

sudo chmod +x /userdata/H3C/SpaceAgent/RecvFiles/install_audit.sh;sudo /userdata/H3C/SpaceAgent/RecvFiles/install_audit.sh 1

说明:

如果终端已经成功执行过一次该脚本,第二次将不会执行和重启

3.3 验证auditd规则是否生效

我们添加了两条审计规则,

1) shutdown/poweroff命令执行

2) reboot系统调用执行

审计日志在/var/log/audit/audit.log

3.3.1 审计系统poweroff

root@localhost:~$ ls -la /sbin/poweroff

lrwxrwxrwx 1 root root 14 11月 15  2019 /sbin/poweroff -> /bin/systemctl

poweroff与shutdown其实执行的都是/bin/systemctl,通过参数来分区

命令行执行poweroff ,audit.log有如下输出

可以看到执行的是/bin/systemctl 参数为poweroff,key为shutdown_call

3.3.2 审计系统reboot

是否能够有效的审计reboot调用,答案是不能(shutdown/poweroff对应的系统调用是reboot)

原因:目前auditd版本,filter对应的匹配过滤,filter可以为:task,exit,user,exclude;已经没有entry了,也就是内核auditd线程,只有在系统调用返回的时候才会通知用户态auditd服务,不会在执行调用时刻发起通知,执行reboot, 这个时候用户态auditd,往往收不到消息的;

为了进一步验证,写一个手动调用reboot API的程序,进行验证,以spaceos用户执行,因没有权限,系统调用返回-1,可以看到其实是可以审计的,也就是系统调用返回时刻通知用户

4,audit审计日志与规则

4.1 audit审计规则

可参考:audit.rules(7) - Linux man page (die.net)

本文audit.rules规则解读如下

#监控文件系统行为,下表示,监控/bin/systemctl文件修改、写、读、执行修为,并指定关键词为shutdown_call

-w /bin/systemctl -p rwxa -k shutdown_call

#监控系统调用行为,下表示,行为完成后总是记录审计

-a always,exit -F arch=b64 -S reboot -k reboot_call

4.1.1 监控文件系统行为

规则格式:-w 路径 -p 权限 -k 关键字

其中权限动作分为四种 (依靠文件、目录的权限属性来识别)

r  读取文件

w 写入文件

x 执行文件

a 修改文件属性

示例:

监控/etc/passwd文件的修改行为(写,权限修改)

-w /etc/passwd -p wa 

4.1.2定义系统调用规则:

规则格式:-a action,filter -S system_call -F field=value -k key_name

  1. action和filter明确一个事件被记录。
  2. action可以为always或者never,
  3. filter明确出对应的匹配过滤,filter可以为:task,exit(行为完成后审计),user,exclude。
  4. system_call明确出系统调用的名字,几个系统调用可以写在一个规则里,如-S xxx -S xxx。系统调用的名字可以在/usr/include/asm/unistd_64.h文件中找到。
  5. field=value 作为附加选项,修改规则以匹配特定架构、GroupID,ProcessID等的事件。具体有哪些字段

4.2 audit审计日志关键词解析

可参考:

  1. auditctl(8) - Linux man page (die.net),
  2. 7.6. Understanding Audit Log Files Red Hat Enterprise Linux 6 | Red Hat Customer Portal

默认Audit日志存放在/var/log/audit/andit.log中,可以通过auditctl命令来定义自己的audit规则,auditctl的使用方法参考:https://linux.die.net/man/8/auditctl

以下面三条audit log为例:

type=SYSCALLmsg=audit(1364481363.243:24287): arch=c000003e syscall=2 success=no exit=-13a0=7fffd19c5592 a1=0 a2=7fffd19c4b50 a3=a items=1 ppid=2686 pid=3538 auid=500uid=500 gid=500 euid=500 suid=500 fsuid=500 egid=500 sgid=500 fsgid=500tty=pts0 ses=1 comm="cat" exe="/bin/cat"subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023key="sshd_config"

type=CWD msg=audit(1364481363.243:24287): cwd="/home/shadowman"

type=PATHmsg=audit(1364481363.243:24287): item=0 name="/etc/ssh/sshd_config"inode=409248 dev=fd:00 mode=0100600 ouid=0 ogid=0 rdev=00:00obj=system_u:object_r:etc_t:s0

  1. type=SYSCALL这一行说明了audit的消息类型,audit消息类型可以对照https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Security_Guide/sec-Audit_Record_Types.html的表格进程查看,SYSCALL说明此次audit记录的是一次系统调用Kernel的记录
  2. msg=audit(1364481363.243:24287)这一行的格式是(time_stamp:ID),time_stamp是unix时间,可以将其转化为其他时间格式,可以使用站长工具进行转换:http://tool.chinaz.com/Tools/unixtime.aspx。相同的audit event可能会产生多条time_stamp和event ID相同的log
  3. msg后面跟了很多形式为“name=value”的键值对,这些键值对由kernel或者用户空间的进程产生。
  4. arch=c000003e标明CPU的类型,c000003e对应x86_64,使用ausearch查看audit日志时会自动将其解码
  5. syscall=2指出了发送给kernel的系统调用的类型,可以使用ausyscall --dump来显示所有的syscall的说明
  6. succeed=yes/no,说明此次syscall成功或失败
  7. exit=-13说明syscall的返回值是-13
  8. a0,a1,a2,a3指明了前4个参数,也是编码成16进制,通过ausearch命令可以解码查看
  9. items指出event中的path记录的数量
  10. ppid指明Parent Process ID,即父进程ID
  11. pid指明了进程ID
  12. auid指出audit user ID,即当时的登陆uid
  13. uid指出了对应进程的所有者ID
  14. gid对应进程的group ID
  15. euid对应进程的effective user ID
  16. suid对应set user ID
  17. fsuid对应file system user ID
  18. egid对应effective group ID
  19. sgid对应set group ID
  20. fsgid对应file system group ID
  21. tty指出对应进程是在哪个终端启动的
  22. ses指出了对应进程的session ID
  23. comm对应了进程执行的命令
  24. exe指出了进程的执行文件的路径
  25. subj指出进程执行时selinux上下文
  26. key是管理员定义的标明是哪条rule输出了这条audit日志
  27. 第二条日志中CWD指出了进程的执行目录(current working directory,当前工作目录),cwd字段指出了第一条日志中syscall的执行路径
  28. 第三条日中用来记录所有传递给syscall作为参数的路径,在这个audit事件中,仅有/etc/ssh/sshd_config作为参数进行传递,通过name字段指明
  29. inode指出了与文件或目录相对应的inode number,可以通过下面的命令查看inode对应的文件或目录:find/ -inum <inode number> -print
  30. dev=fd:00指出文件或目录对应的device ID,在例子中,对应/dev/fd/0这个设备
  31. mode=0100600对应文件或目录的权限,这里0100600被解析为-rw-------
  32. ouid对应文件的owner’s user ID
  33. ogid对应文件的owner’s group ID

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 Linux 服务器上的审计服务来跟踪和记录系统上发生的事件和活动。下面是一些步骤来使用审计服务: 1. 检查审计工具:首先,确保您的 Linux 系统上已安装并启用了审计工具。常见的审计工具包括 Auditd(用于 CentOS/RHEL 系统)和 Audit(用于 Ubuntu/Debian 系统)。您可以使用以下命令检查是否已安装: - 对于 CentOS/RHEL:`rpm -qa | grep audit` - 对于 Ubuntu/Debian:`dpkg -l | grep audit` 2. 配置审计规则:一旦确认安装了审计工具,您需要配置审计规则以指定要跟踪的事件类型。审计规则定义了应该在系统上监视哪些活动,例如文件访问、用户登录、进程创建等。您可以编辑 `/etc/audit/audit.rules` 文件来添加或修改规则。例如,要监视所有的文件访问事件,您可以添加以下规则: ``` -w /path/to/file -p rwa ``` 3. 启动审计服务:启动审计服务以开始记录事件。使用以下命令启动服务: - 对于 CentOS/RHEL:`systemctl start auditd` - 对于 Ubuntu/Debian:`service auditd start` 4. 查看审计日志:一旦启动了审计服务,系统将开始记录事件,并将它们写入审计日志文件。您可以使用以下命令查看审计日志: - 对于 CentOS/RHEL:`ausearch -f /path/to/file` - 对于 Ubuntu/Debian:`aureport -f -i` 5. 高级配置和分析:审计服务提供了许多高级配置选项和分析工具,帮助您更详细地跟踪系统活动。您可以了解更多关于审计工具的文档,并根据您的需求对其进行进一步配置和分析。 这些是使用 Linux 服务器上的审计服务的基本步骤。请注意,具体的步骤可能因您使用Linux 发行版和版本而有所不同。建议您参考相关文档或社区资源以获取更详细和特定于您环境的指导。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值