Linux审计⼯具audit
审计
基于事先配置的规则⽣成⽇志,记录可能发⽣在系统上的事件。会发现并记录违反安全策略的⼈及其⾏为,但是不会提供额外的安全保护
可以记录⽇期与事件及结果,触发事件的⽤户,所有认证都可以被记录,如ssh等,还可记录数据⽂件的修改⾏为。⽐如监控⽂件访问,监控系统调⽤,记录⽤户运⾏的命令,审计可以监控⽹络访问⾏为
auarch⼯具,可以根据条件过滤审计⽇志
后背僵硬aureport⼯具,可以⽣成审计报告
[root@guowei ~]# aureport -a #报告关于访问向量缓冲(access vector cache,AVC)的消息
AVC Report
========================================================
# date time comm subj syscall class permission obj event
========================================================
1. 2019年04⽉11⽇ 00:47:24 accounts-daemon system_u:system_r:accountsd_t:s0 83 dir write system_u:object_r:admin_home_t:s0 denied 27 ...
[root@guowei ~]# aureport -c | tail -1 #报告关于配置修改的消息
244. 2019年04⽉19⽇ 11:21:55 NETFILTER_CFG -1 yes 824
[root@guowei ~]# aureport -cr #报告关于crypto事件的消息
Crypto Report
===================================
# date time auid type success event
===================================
<no events of interest were found>
[root@guowei ~]# aureport -e | head -6 #报告关于事件的消息
Event Report
===================================
# date time event type auid success
===================================
1. 2019年04⽉11⽇ 00:47:23 223 DAEMON_START -1 yes
[root@guowei ~]# aureport -f | head -6 #报告关于⽂件的消息
File Report
===============================================
# date time file syscall success exe auid event
===============================================
1. 2019年04⽉11⽇ 00:47:24 root 83 no /usr/libexec/accounts-daemon -1 27
[root@guowei ~]# aureport -h | head -6 #报告关于主机的消息
Host Report
===================================
# date time host syscall auid event
===================================
1. 2019年04⽉11⽇ 00:47:23 ? 0 -1 7
[root@guowei ~]# aureport -l | head -6 #报告关于登录的消息
Login Report
============================================
# date time auid host term exe success event
============================================
1. 2019年04⽉11⽇ 00:57:20 -1 ? ? /usr/libexec/gdm-ssion-worker yes 169
[root@guowei ~]# aureport -m | head -6 #报告关于账户修改的消息
Account Modifications Report
=================================================
# date time auid addr term exe acct success event
=================================================
1. 2019年04⽉11⽇ 00:57:17 -1 ? ? /usr/sbin/uradd guowei yes 156
[root@guowei ~]# aureport -p | head -6 #报告关于进程的消息
Process ID Report
======================================
# date time pid exe syscall auid event
======================================
1. 2019年04⽉11⽇ 00:47:23 761 ? 0 -1 223
血小板高是什么情况[root@guowei ~]# aureport -s | head -6 #报告关于系统调⽤的消息
Syscall Report
=======================================
# date time syscall pid comm auid event
=======================================
1. 2019年04⽉11⽇ 00:47:24 83 805 accounts-daemon -1 27
[root@guowei ~]# aureport --i
#可以显⽰很多选项
....
-
r,--respon Respon to anomaly report
-s,--syscall Syscall report
--success only success events in report
--summary sorted totals for main object in report
-t,--log Log time range report
-te,--end [end date] [end time] ending date & time for reports
-tm,--terminal TerMinal name report
-ts,--start [start date] [start time] starting data & time for reports
--tty Report about tty keystrokes
...
[root@guowei ~]# aureport --success
Success Summary Report
======================
Range of time in logs: 2019年04⽉11⽇ 00:47:23.540 - 2019年04⽉19⽇ 11:44:33.154 Selected time for report: 2019年04⽉11⽇ 00:47:23 - 2019年04⽉19⽇ 11:44:33.154 ...
部署audit ⼀般默认安装
主配置⽂件:/etc/f //默认审计守护进程配置⽂件
# This file controls the configuration of the audit daemon
#
local_events = yes
write_logs = yes
log_file = /var/log/audit/audit.log #审计⽇志的完整路径
log_group = root
log_format = RAW
#写⽇志时要使⽤的格式。RAW-数据从内核搜索到的格式写到⽇志;NOLOG-不会写⼊⽇志;
dispatcher指定-数据发送到审计调度程序中
flush = INCREMENTAL_ASYNC
#多长时间向⽇志⽂件中写⼀次数据 NONE-不⽤做特殊努⼒刷新⽇志 INCREMENTTAL-⽤freq选项的值确定多久刷新⼀次,
DATA-审计数据和⽇志⽂件⼀直是同步 SYNC-则每次写到⽇志⽂件时,数据和元数据是同步的地五会穴
freq = 50 #flush设置为INCREMETNAL,审计守护进程在写到⽇志⽂件中前从内核中接收的记录数。
max_log_file = 8 #以兆字节表⽰的最⼤⽇志⽂件容量
num_logs = 5
priority_boost = 4 #审计采⽤多少优先级推进守护进程为⾮负 0代表没有变化
disp_qos = lossy
#控制调度程序与审计守护进程之间的通信类型。有效值为lossy(若缓冲区已满缓冲区为128千字节,则发送给调度程序的引⼊事件会被丢弃)和lossless(写到磁盘之dispatcher = /sbin/audispd #当启动这个守护进程时,由审计守护进程⾃动启动程序
name_format = NONE
##name = mydomain
max_log_file_action = ROTATE
#值为IGNORE(忽略)、SYSLOG(达到容量,会写⼀条警告)、SUSPEND(容量满不写信息)、ROTATE和KEEP_LOGS(循环⽇志⽂件)
设置为ROTATE时要保存的⽇志⽂件数⽬(0~99),如果设置为⼩于2,则不会循环⽇志
space_left = 75 #以兆字节表⽰的磁盘空间数量
space_left_action = SYSLOG
#磁盘空间量达到space_left中的值时,采取这个动作有效值为IGNORE、SYSLOG、EMAIL、SUSPEND、SINGLE(单⽤户)和 HALT(系统关闭)
日式筷子action_mail_acct = root #负责维护审计守护进程和⽇志的管理员的电⼦邮件地址
admin_space_left = 50
admin_space_left_action = SUSPEND
#含有这个审计⽂件的分区已满,则采取这个动作。可能值为IGNORE、SYSLOG、SUSPEND、SINGLE和HALT
disk_full_action = SUSPEND
disk_error_action = SUSPEND #写审计⽇志或循环⽇志⽂件时检测到错误时采取的动作
u_libwrap = yes
##tcp_listen_port =
tcp_listen_queue = 5
tcp_max_per_addr = 1
##tcp_client_ports = 1024-65535
tcp_client_max_idle = 0
enable_krb5 = no
krb5_principal = auditd
##krb5_key_file = /etc/audit/audit.key
distribute_network = no
⽇志⽂件 :7 log_file = /var/log/audit/audit.log
[root@rver51 ~]# yum -y install audit
[root@rver51 ~]# systemctl start autid
[root@rver51 ~]# systemctl enable autid
[root@rver51 ~]# systemctl status autid
● auditd.rvice - Security Auditing Service
为什么会长老年斑
Loaded: loaded (/usr/lib/systemd/system/auditd.rvice; enabled; vendor pret: enabled)
Active: active (running) since 三 2019-01-02 08:59:57 CST; 8h ago
...
相关命令
宁波天一阁
auditctl 控制审计系统并设置规则决定哪些⾏为会被记录⽇志
[root@rver51 ~]# auditctl -s //查询状态
enabled 1
failure 1
铁板烧牛肉pid 637
rate_limit 0
backlog_limit 8192
lost 0
backlog 0
loginuid_immutable 0 unlocked
[root@rver51 ~]# auditctl -l //查看规则
No rules
[root@rver51 ~]# auditctl -D //删除所有规则
No rules
[root@rver51 ~]#
定义规则
临时 auditctl -w 路径(需要审计的⽂件或⽬录) -p 权限(r,w,x,a-⽂件或⽬录的属性发⽣变化) [ -k 规则的名字 ]
永久 将上述命令写⼊到 /etc/audit/rules.d/audit.rules
auarch -k 规则名 -i 搜索规则 (-i交互式)
[root@rver51 ~]# auditctl -w /etc/passwd -p rwa -k passwd_change
[root@rver51 ~]# auditctl -l
-w /etc/passwd -p rwa -k passwd_change
[root@rver51 ~]# vim /etc/audit/rules.d/audit.rules
...
-w /etc/passwd -p wa -k passwd_change
[root@rver51 ~]# uradd lisi
[root@rver51 ~]# echo 123456 | passwd --stdin lisi
[root@rver51 ~]# auarch -k passwd_change -i
......
type=PROCTITLE msg=audit(2019年04⽉19⽇ 09:50:48.042:296) : proctitle=auarch -k passwd-change -i
type=PATH msg=audit(2019年04⽉19⽇ 09:50:48.042:296) : item=0 name=/etc/passwd inode=16786914 dev=fd:00 mode=file,644 ouid=root ogid=root rdev=00:0 type=CWD msg=audit(2019年04⽉19⽇ 09:50:48.042:296) : cwd=/root
type=SYSCALL msg=audit(2019年04⽉19⽇ 09:50:48.042:296) : arch=x86_64 syscall=open success=yes exit=4 a0=0x7ff826aeb432 a1=O_RDONLY|O_CLOEXE
审计⽇志
type为类型
msg为(time_stamp:ID),时间是date + %s
arch=c000003e,代表x86_64(16进制)龙属什么五行
success=yes/no 时间是否成功
a0-a3是程序调⽤时前四个参数,16进制编码
ppid⽗进程ID,如bash,pid进程ID,如“cat”命令
auid是审核⽤户的id , su - test ,依然可以追踪su前的账户
uid ,gid⽤户和组 euid有效⽤户ID,suid设置⽤户ID,fsuid⽂件系统⽤户ID egid有效组ID,sgid设置组ID,fsgid⽂件系统组ID
tty:从哪个终端执⾏的命令
comm="chrony-helper" ⽤户在命令⾏执⾏的指令
exe="/usr/bin/bash" 实际程序的路径
key="passwd-change" 管理员定义的策略关键字
type=CWD ⽤来记录当前⼯作⽬录 cwd="/"
type=PATH ouid=0 对象所有者ID ogid=0 对象所属组ID
[root@rver51 ~]# tailf /var/log/audit/audit.log
......
type=SYSCALL msg=audit(1555638675.990:301): arch=c000003e syscall=2 success=yes exit=3 a0=7fc679b45432 a1=80000 a2=1b6 a3=24 items=1 ppid=3483 type=CWD msg=audit(1555639261.885:369): cwd="/"
type=PATH msg=audit(1555639261.885:369): item=0 name="/etc/passwd" inode=16786914 dev=fd:00 mode=0100644 ouid=0 ogid=0 rdev=00:00 obj=system_u: type=PROCTITLE msg=audit(1555639261.885:369): proctitle=2F7573722F6C69622F706F6C6B69742D312F706F6C6B697464002D2D6E6F2D6465627567