介绍

Linux系统从内核2.6版本开始正式支持文件访问级别的日志记录功能,eg:记录系统调用和文件访问等。管理员可以通过查阅文件的访问日志来评估系统可能存在的安全漏洞等,这个功能叫做Linux审计系统(Linux Auditing System)

组成

linux 审计系统由多个组件组成,常见的组件和工具
auditd.service : 审计系统的守护进程,负责将内核产生的日志写入磁盘,这些日志是由应用程序和系统活动触发生成的
auditcl : 控制内核审计系统的各种接口,生成日志的变量以及决定跟踪事件的规则
aureport:从审计日志中提取内容并生成个性报告。该报告易于被脚本读取,从而使其他应用程序可以利用报告进行工作
ausearch:查看日志的工具,可以使用不同的规则查询搜索日志

配置审计服务

配置文件
/etc/audisp/audispd.conf 后台守护进程配置文件,主要对守护进程进行规范。eg:对事件调度队列长度、队列溢出等行为进行配置。
/etc/audit/auditd.conf audit的功能是将审计系统产生的记录写入文件中
/etc/audit/audit.rules 这个文件中写入的是具体的审计规则,将在系统启动时被加载

  1. [root@lhuan ~]# cat /etc/audisp/audispd.conf
  2. #
  3. # This file controls the configuration of the audit event
  4. # dispatcher daemon, audispd.
  5. #
  6. q_depth = 250
  7. overflow_action = SYSLOG
  8. priority_boost = 4
  9. max_restarts = 10
  10. name_format = HOSTNAME
  11. #name = mydomain
  12. plugin_dir = /etc/audisp/plugins.d/
  13. [root@lhuan ~]# cat /etc/audit/auditd.conf
  14. #
  15. # This file controls the configuration of the audit daemon
  16. #
  17. #日志配置选项,配置日志文件的位置、格式等
  18. local_events = yes
  19. write_logs = yes
  20. log_file = /var/log/audit/audit.log
  21. log_group = root
  22. log_format = RAW
  23. #写入日志文件时的行为,写入规则、日志文件最大容量等
  24. flush = INCREMENTAL_ASYNC
  25. freq = 50
  26. max_log_file = 8
  27. num_logs = 5
  28. priority_boost = 4
  29. disp_qos = lossy
  30. dispatcher = /sbin/audispd
  31. name_format = NONE
  32. ##name = mydomain
  33. max_log_file_action = ROTATE
  34. space_left = 75
  35. space_left_action = SYSLOG
  36. verify_email = yes
  37. action_mail_acct = root
  38. admin_space_left = 50
  39. admin_space_left_action = SUSPEND
  40. disk_full_action = SUSPEND
  41. disk_error_action = SUSPEND
  42. use_libwrap = yes
  43. ##tcp_listen_port = 60
  44. tcp_listen_queue = 5
  45. tcp_max_per_addr = 1
  46. ##tcp_client_ports = 1024-65535
  47. tcp_client_max_idle = 0
  48. enable_krb5 = no
  49. krb5_principal = auditd
  50. ##krb5_key_file = /etc/audit/audit.key
  51. distribute_network = no
  52. [root@lhuan ~]# cat /etc/audit/audit.rules
  53. ## This file is automatically generated from /etc/audit/rules.d
  54. -D
  55. -b 8192
  56. -f 1

配置规则

默认情况下审计系统没有添加规则。
审计系统只会对系统的关键性事件进行记录,eg:用户登录事件、要改变记录的事件就需要为审计系统添加规则。
添加规则方式:
1.使用命令audictl 这种方法添加规则会立即生效
2.将审计规则写入文件/etc/audit/audit.relus 这个方法只有重新启动系统或者重启服务auditd.service,审计规则才会生效

audictl命令

audictl命令可以用来为审计系统添加审计规则,常见的选项如下

参数 说明
e 表示临时禁用或启动审计功能,0表示临时禁用,1表示启用,2表示锁定审核配置
F 建立规则域,可用的域有名称、操作、值。
审计系统有许多规则域
a 将规则追加到链表
S 表示系统调用号和名字
w 表示加入一个文件系统对象的监视器
D/d 删除所有/当前指定的规则和监视器
s 查看当前状态
k 表示审计规则上 的关键字,关键字作为该选项的参数
p 设置需要监视的文件权限
l 查看规则列表

```

查看当前状态

[root@lhuan ~]# auditctl -s enabled 1 failure 1 pid 605 rate_limit 0 backlog_limit 8192 lost 0 backlog 0 loginuid_immutable 0 unlocked

配置审计规则文件audit.rules

先将审计规则写入文件 /etc/audit/audit.rules ,然后由系统自动生成可靠的audit.rules
<a name="4n693"></a>
## 分析审计日志
1.列出在指定时间范围内的事件统计

[root@lhuan ~]# aureport -ts 8:00 -te 10:00

Summary Report

Range of time in logs: 10/15/2020 07:36:02.468 - 01/01/1970 08:00:00.000 Selected time for report: 10/15/2020 08:00:00 - 10/15/2020 10:00:00 Number of changes in configuration: 0 Number of changes to accounts, groups, or roles: 0 Number of logins: 0 Number of failed logins: 694 Number of authentications: 0 Number of failed authentications: 1364 Number of users: 2 Number of terminals: 3 Number of host names: 31 Number of executables: 2 Number of commands: 0 Number of files: 0 Number of AVC’s: 0 Number of MAC events: 0 Number of failed syscalls: 0 Number of anomaly events: 0 Number of responses to anomaly events: 0 Number of crypto events: 6931 Number of integrity events: 0 Number of virt events: 0 Number of keys: 0 Number of process IDs: 1513 Number of events: 9844

2.生成所有关于可行性文件的报告

[root@lhuan ~]# aureport -x | less

Executable Report

date time exe term host auid event

====================================

  1. 10/15/2020 07:36:02 /usr/sbin/sshd ? ? -1 6293825
  2. 10/15/2020 07:36:02 /usr/sbin/sshd ? ? -1 6293826
  3. 10/15/2020 07:36:02 /usr/sbin/sshd ssh 154.209.79.254 -1 6293827
  4. 10/15/2020 07:36:03 /usr/sbin/sshd ? ? -1 6293828
  5. 10/15/2020 07:36:03 /usr/sbin/sshd ? ? -1 6293829
  6. 10/15/2020 07:36:03 /usr/sbin/sshd ? ? -1 6293830
  7. 10/15/2020 07:36:03 /usr/sbin/sshd ? 154.209.79.254 -1 6293831
  8. 10/15/2020 07:36:03 /usr/sbin/sshd ? 154.209.79.254 -1 6293832
  9. 10/15/2020 07:36:04 /usr/sbin/sshd ssh 154.209.79.254 -1 6293833
  10. 10/15/2020 07:36:06 /usr/sbin/sshd ssh 154.209.79.254 -1 6293834
  11. 10/15/2020 07:36:06 /usr/sbin/sshd ? ? -1 6293835
  12. 10/15/2020 07:36:06 /usr/sbin/sshd ? 154.209.79.254 -1 6293836
  13. 10/15/2020 07:36:06 /usr/sbin/sshd ? ? -1 6293837
  14. 10/15/2020 07:36:06 /usr/sbin/sshd ? ? -1 6293838
  15. 10/15/2020 07:36:06 /usr/sbin/sshd ? ? -1 6293839
  16. 10/15/2020 07:36:06 /usr/sbin/sshd ssh 154.209.79.254 -1 6293840
  17. 10/15/2020 07:36:08 /usr/sbin/sshd ? ? -1 6293841
  18. 10/15/2020 07:36:08 /usr/sbin/sshd ? ? -1 6293842
  19. 10/15/2020 07:36:08 /usr/sbin/sshd ? ? -1 6293843
  20. 10/15/2020 07:36:08 /usr/sbin/sshd ? 179.127.107.89 -1 6293844
  21. 10/15/2020 07:36:08 /usr/sbin/sshd ? 179.127.107.89 -1 6293845
  22. 10/15/2020 07:36:08 /usr/sbin/sshd ? ? -1 6293846
  23. 10/15/2020 07:36:08 /usr/sbin/sshd ? ? -1 6293847
  24. 10/15/2020 07:36:08 /usr/sbin/sshd ? ? -1 6293848
  25. 10/15/2020 07:36:08 /usr/sbin/sshd ? 154.209.79.254 -1 6293849
  26. 10/15/2020 07:36:08 /usr/sbin/sshd ? 154.209.79.254 -1 6293850
  27. 10/15/2020 07:36:10 /usr/sbin/sshd ssh 179.127.107.89 -1 6293851
  28. 10/15/2020 07:36:10 /usr/sbin/sshd ssh 154.209.79.254 -1 6293852
  29. 10/15/2020 07:36:11 /usr/sbin/sshd ssh 179.127.107.89 -1 6293853
  30. 10/15/2020 07:36:12 /usr/sbin/sshd ? ? -1 6293854 :
3.生成可执行文件的摘要报告

[root@lhuan ~]# aureport -x —summary

Executable Summary Report

total file

110445 /usr/sbin/sshd 5280 /usr/sbin/crond 2 /usr/lib/systemd/systemd 1 /usr/sbin/vsftpd

4.生成所有用户失败事件的摘要

[root@lhuan ~]# aureport -u —failed —summary -i

Failed User Summary Report

total auid

25397 unset 1 root

5.生成用户登录事件的摘要

[root@lhuan ~]# aureport -u —failed —summary -i

Failed User Summary Report

total auid

25397 unset 1 root

6.生成所有文件访问失败的摘要

[root@lhuan ~]# aureport -f —failed —summary -i

Failed File Summary Report

total file

7.生成所有账号修改的摘要

[root@lhuan ~]# aureport -m

Account Modifications Report

date time auid addr term exe acct success event

=================================================

8.查询所有用户登录的摘要

[root@lhuan ~]# aureport -l

Login Report

date time auid host term exe success event

============================================

  1. 10/15/2020 07:36:02 root 154.209.79.254 ssh /usr/sbin/sshd no 6293827
  2. 10/15/2020 07:36:06 root 154.209.79.254 ssh /usr/sbin/sshd no 6293840
  3. 10/15/2020 07:36:12 (unknown) 179.127.107.89 ssh /usr/sbin/sshd no 6293859
  4. 10/15/2020 07:36:14 root 154.209.79.254 ssh /usr/sbin/sshd no 6293866
  5. 10/15/2020 07:36:27 root 154.209.79.254 ssh /usr/sbin/sshd no 6293879
9.生成所有查询的审计文件的报告和所包含的时间范围

[root@lhuan ~]# aureport -t

Log Time Range Report

/var/log/audit/audit.log.4: 10/15/2020 07:36:02.468 - 10/15/2020 12:12:17.383 /var/log/audit/audit.log.3: 10/15/2020 12:12:17.383 - 10/15/2020 16:00:20.694 /var/log/audit/audit.log.2: 10/15/2020 16:00:24.320 - 10/15/2020 18:48:20.347 /var/log/audit/audit.log.1: 10/15/2020 18:48:20.347 - 10/15/2020 21:26:03.038 /var/log/audit/audit.log: 10/15/2020 21:26:03.039 - 10/15/2020 22:04:05.017

```