审计日志-字段分析
- type:audit消息类型,消息类型有100多种(具体查看请点击:audit消息类型)
比较常见有SYSCALL:代表这条记录是向内核的系统调用触发产生的. - msg:消息的ID, 它有两个部分组成, 分号之前的是Unix的时间戳,分号之后的是真正的event ID(同一个应用程序的相同system call拥有相同的event ID, 同一个应用的不同system call则不同。)
- arch: 调用system call的CPU构架
- syscall:system call的类型(可使用
ausyscall --dump
来显示所有的系统调用) - success:system call是成功或者失败
- comm: 出现在任务列表中,应用程序的名称。
- exe: 二进制程序的解析路径。
- ses: 用户登录的session ID.
- auid: audit ID, 针对某一用户,一个进程会被分配一个audit ID, 该audit ID会被传递给子进程,尽管在系统中用户切换,该audit ID将始终保持一致。 这样我们可以针对对某一用户进行trace。
- a0 to a3: 系统调用的前四个参数的数字化,可以通过ausearch解码查看
- items: 传递到应用程序的字符串数量
- ppid:父进程的PID
- pid:该进程的PID
- uid: user ID。
- gid: group ID。
- euid, suid, fsuid: Effective user ID, set user ID, and file system user ID.
- egid, sgid, fsgid: Effective group ID, set group ID, and file system group ID.
- tty: 应用程序开启的终端,这种情况下pseudo-terminal used in an SSH session.
附录1:auditctl -h
[auditadm@localhost ~]$ auditctl -h
usage: auditctl [options]
-a <l,a> Append rule to end of <l>ist with <a>ction
-A <l,a> Add rule at beginning of <l>ist with <a>ction
-b <backlog> Set max number of outstanding audit buffers
allowed Default=64
-c Continue through errors in rules
-C f=f Compare collected fields if available:
Field name, operator(=,!=), field name
-d <l,a> Delete rule from <l>ist with <a>ction
l=task,exit,user,exclude
a=never,always
-D Delete all rules and watches
-e [0..2] Set enabled flag
-f [0..2] Set failure flag
0=silent 1=printk 2=panic
-F f=v Build rule: field name, operator(=,!=,<,>,<=,
>=,&,&=) value
-h Help
-i Ignore errors when reading rules from file
-k <key> Set filter key on audit rule
-l List rules
-m text Send a user-space message
-p [r|w|x|a] Set permissions filter on watch
r=read, w=write, x=execute, a=attribute
-q <mount,subtree> make subtree part of mount point's dir watches
-r <rate> Set limit in messages/sec (0=none)
-R <file> read rules from file
-s Report status
-S syscall Build rule: syscall name or number
--signal <signal> Send the specified signal to the daemon -t Trim directory watches
-v Version
-w <path> Insert watch at <path>
-W <path> Remove watch at <path>
--loginuid-immutable Make loginuids unchangeable once set
--backlog\_wait\_time Set the kernel backlog_wait_time
--reset-lost Reset the lost record counter
附录2:systemcall 类型
网上查询的,好多说是看这个文件https://github.com/torvalds/linux/blob/master/arch/sh/include/asm/unistd.h
# 不同系统间存在差距
# 下文只做简单举例,编号代表 类型值
$ ausyscall --dump
Using aarch64 syscall table:
0 io_setup
1 io_destroy
2 io_submit
3 io_cancel
4 io_getevents
5 setxattr
6 lsetxattr
7 fsetxattr
8 getxattr
9 lgetxattr
10 fgetxattr
11 listxattr
12 llistxattr
13 flistxattr
14 removexattr
15 lremovexattr
16 fremovexattr
17 getcwd
18 lookup_dcookie
19 eventfd2
20 epoll_create1
21 epoll_ctl
22 epoll_pwait
23 dup
24 dup3
25 fcntl
26 inotify_init1
27 inotify_add_watch
28 inotify_rm_watch
29 ioctl
30 ioprio_set
31 ioprio_get
32 flock
33 mknodat
34 mkdirat
35 unlinkat
36 symlinkat
37 linkat
38 renameat
39 umount2
40 mount
41 pivot_root
42 nfsservctl
43 statfs
44 fstatfs
45 truncate
46 ftruncate
47 fallocate
48 faccessat
49 chdir
50 fchdir
51 chroot
52 fchmod
53 fchmodat
54 fchownat
55 fchown
56 openat
57 close
58 vhangup
59 pipe2
60 quotactl
61 getdents
62 lseek
63 read
64 write
65 readv
66 writev
67 pread
68 pwrite
69 preadv
70 pwritev
71 sendfile
72 pselect6
73 ppoll
74 signalfd4
75 vmsplice
76 splice
77 tee
78 readlinkat
79 newfstatat
80 newfstat
81 sync
82 fsync
83 fdatasync
84 sync_file_range
85 timerfd_create
86 timerfd_settime
87 timerfd_gettime
88 utimensat
89 acct
90 capget
91 capset
92 personality
93 exit
94 exit_group
95 waitid
96 set_tid_address
97 unshare
98 futex
99 set_robust_list
100 get_robust_list
101 nanosleep
102 getitimer
103 setitimer
104 kexec_load
105 init_module
106 delete_module
107 timer_create
108 timer_gettime
109 timer_getoverrun
110 timer_settime
111 timer_delete
112 clock_settime
113 clock_gettime
114 clock_getres
115 clock_nanosleep
116 syslog
117 ptrace
118 sched_setparam
119 sched_setscheduler
120 sched_getscheduler
121 sched_getparam
122 sched_setaffinity
123 sched_getaffinity
124 sched_yield
125 sched_get_priority_max
126 sched_get_priority_min
127 sched_rr_get_interval
128 restart_syscall
129 kill
130 tkill
131 tgkill
132 sigaltstack
133 rt_sigsuspend
134 rt_sigaction
135 rt_sigprocmask
136 rt_sigpending
137 rt_sigtimedwait
138 rt_sigqueueinfo
139 rt_sigreturn
140 setpriority
141 getpriority
142 reboot
143 setregid
144 setgid
145 setreuid
146 setuid
147 setresuid
148 getresuid
149 setresgid
150 getresgid
151 setfsuid
152 setfsgid
153 times
154 setpgid
155 getpgid
156 getsid
157 setsid
158 getgroups
159 setgroups
160 uname
161 sethostname
162 setdomainname
163 getrlimit
164 setrlimit
165 getrusage
166 umask
167 prctl
168 getcpu
169 gettimeofday
170 settimeofday
171 adjtimex
172 getpid
173 getppid
174 getuid
175 geteuid
176 getgid
177 getegid
178 gettid
179 sysinfo
180 mq_open
181 mq_unlink
182 mq_timedsend
183 mq_timedreceive
184 mq_notify
185 mq_getsetattr
186 msgget
187 msgctl
188 msgrcv
189 msgsnd
190 semget
191 semctl
192 semtimedop
193 semop
194 shmget
195 shmctl
196 shmat
197 shmdt
198 socket
199 socketpair
200 bind
201 listen
202 accept
203 connect
204 getsockname
205 getpeername
206 sendto
207 recvfrom
208 setsockopt
209 getsockopt
210 shutdown
211 sendmsg
212 recvmsg
213 readahead
214 brk
215 munmap
**自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。**
**深知大多数Linux运维工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
**因此收集整理了一份《2024年Linux运维全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。**
![img](https://img-blog.csdnimg.cn/img_convert/3ba66c604b2d69fa7ce28e48319564e5.png)
![img](https://img-blog.csdnimg.cn/img_convert/c1fd8f6310cbf5f2a0dda9b81867b302.png)
![img](https://img-blog.csdnimg.cn/img_convert/38e013fce9eb92dce993b044c7d6e57e.png)
![img](https://img-blog.csdnimg.cn/img_convert/0c813a24cfd10f2c86413600ceefc81f.png)
![img](https://img-blog.csdnimg.cn/img_convert/104d385639c5a40bbb464a56a5048589.png)
**既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Linux运维知识点,真正体系化!**
**由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**
**如果你觉得这些内容对你有帮助,可以添加VX:vip1024b (备注Linux运维获取)**
![img](https://img-blog.csdnimg.cn/img_convert/ff9780eb972e8deb82dbf1083095131a.jpeg)
### 最后的话
最近很多小伙伴找我要Linux学习资料,于是我翻箱倒柜,整理了一些优质资源,涵盖视频、电子书、PPT等共享给大家!
### 资料预览
给大家整理的视频资料:
![](https://img-blog.csdnimg.cn/img_convert/f44635787d85a61b535d6cff36eccd30.png)
给大家整理的电子书资料:
![](https://img-blog.csdnimg.cn/img_convert/4ee9c4f7ad82601e45f230eaff18b62f.png)
**如果本文对你有帮助,欢迎点赞、收藏、转发给朋友,让我有持续创作的动力!**
[**一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)
**AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**
让我有持续创作的动力!**
[**一个人可以走的很快,但一群人才能走的更远。如果你从事以下工作或对以下感兴趣,欢迎戳这里加入程序员的圈子,让我们一起学习成长!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)
**AI人工智能、Android移动开发、AIGC大模型、C C#、Go语言、Java、Linux运维、云计算、MySQL、PMP、网络安全、Python爬虫、UE5、UI设计、Unity3D、Web前端开发、产品经理、车载开发、大数据、鸿蒙、计算机网络、嵌入式物联网、软件测试、数据结构与算法、音视频开发、Flutter、IOS开发、PHP开发、.NET、安卓逆向、云计算**