audit可以配置规则,这个规则主要是给内核模块下发的,内核audit模块会按照这个规则获取审计信息,发送给auditd来记录日志。

规则类型可分为:

1、控制规则:控制audit系统的规则;

2、文件系统规则:也可以认为是文件监控,可以监控一个特定文件或者一个路径。

3、系统调用规则:可以记录特定程序的系统调用。

audit规则可以通过auditctl,在命令行里输入,这些设置的规则为临时的,当系统重启后就不存在了。可以通过配置/etc/audit/audit.rules文件,当每次audit服务启动后,都会从这个文件来加载规则。

auditctl,这个命令可以配置audit规则,audit根据这些规则来决定哪些事件会被记录。The auditctl program is used to control the behavior, get status, and add or delete rules into the 2.6 kernel's audit system.

控制规则:

-b  设置在内核中audit缓冲空间的最大值。

-f   这个选项来决定内核如何处理critical erros:0=silent 1=printk 2=panic.默认值为1。

-e  设置使能标志,设置为0,为关闭了audit,设置为1,则开启audit;当设置为2时,表示锁定,一般在设置完其他规则后最后设置,防止其他人修改规则;任何修改规则的行为都会被拒绝,并且记录审计日志,只有当重启系统后,这个使能标志才可以被修改。

-s 查询audit内核状态。如:

linux-xdYUnA:/var/log/audit # auditctl -s
enabled
failure
pid
rate_limit
backlog_limit
lost
backlog

-l  列出所有当前配置的规则。

-D 删除所有当前加载的规则。

定义文件系统规则:

auditctl -w path_to_file -p permissions -k key_name

path_to_file 为要做审计的文件或路径;

permissions为要记录的许可:rwx 文件或路径的读写执行,a 修改文件或路径的属性。

r — read access to a file or a directory.
w — write access to a file or a directory.
x — execute access to a file or a directory.
a — change in the file's or directory's attribute.

key_name 为一个可选字符串,明确哪些规则产生的这些日志。过滤时可以使用。

如下举例:

定义规则,记录所有对/etc/passwd文件的写入以及属性修改,可以输入如下命令:

~]# auditctl -w /etc/passwd -p wa -k passwd_changes

记录所有对/etc/selinux/目录的写入以及属性修改,可以输入如下命令:

~]# auditctl -w /etc/selinux/ -p wa -k selinux_changes

记录所有执行了/sbin/insmod命令,向内核插入模块的行为,输入如下命令:

~]# auditctl -w /sbin/insmod -p x -k module_insertion

定义系统调用规则:

auditctl -a action,filter -S system_call -F field=value -k key_name

action和filter 明确一个事件被记录。action可以为always或者never,filter明确出对应的匹配过滤,filter可以为:task,exit,user,exclude。

system_call 明确出系统调用的名字,几个系统调用可以写在一个规则里,如-S xxx -S xxx。系统调用的名字可以在/usr/include/asm/unistd_64.h文件中找到。

field=value 作为附加选项,修改规则以匹配特定架构、GroupID,ProcessID等的事件。具体有哪些字段,可以参考man linux  https://linux.die.net/man/8/auditctl

例如:

定义一个规则,当每次使用系统调用adjtimex或者settimeofday时,并且为64位架构,记录审计日志,命令可以输入如下:

~]# auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change

一个文件被user ID为1000或者更大的用户删除,或重命名,记录审计,命令如下:

~]# auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid>= -F auid!= -k delete

注意,-F auid!=4294967295 这个是为了排除login UID没有被设置的用户。

也可以通过系统调用规则,来定义文件系统规则,如下的系统调用规则,与-w /etc/shadow -p wa的文件系统规则等同:

~]# auditctl -a always,exit -F path=/etc/shadow -F perm=wa

linux audit审计(5)--audit规则配置的更多相关文章

  1. linux audit审计(6)--audit永久生效的规则配置

    定义reboot系统后,仍然生效的审计规则,有两种办法: 1.直接写入/etc/audit/audit.rules文件中,在service文件中需要加入ExecStartPost=-/sbin/aud ...

  2. [转] Linux下防火墙iptables用法规则详及其防火墙配置

    from: http://www.cnblogs.com/yi-meng/p/3213925.html 备注: 排版还不错,建议看以上的链接. iptables规则 规则--顾名思义就是规矩和原则,和 ...

  3. Linux下防火墙iptables用法规则详及其防火墙配置

    转:http://www.linuxidc.com/Linux/2012-08/67952.htm iptables规则 规则--顾名思义就是规矩和原则,和现实生活中的事情是一样的,国有国法,家有家规 ...

  4. linux audit审计(3)--audit服务配置

    audit守护进程可以通过/etc/audit/auditd.conf文件进行配置,默认的auditd配置文件可以满足大多数环境的要求. local_events = yes write_logs = ...

  5. linux的审计功能(audit)

    为了满足这样的需求:记录文件变化.记录用户对文件的读写,甚至记录系统调用,文件变化通知.什么是auditThe Linux Audit Subsystem is a system to Collect ...

  6. linux audit审计(8)--开启audit对系统性能的影响

    我们使用测试性能的工具,unixbench,它有一下几项测试项目: Execl Throughput 每秒钟执行 execl 系统调用的次数 Pipe Throughput 一秒钟内一个进程向一个管道 ...

  7. linux audit审计(4)--audit的日志切分,以及与rsyslog的切分协同使用

    audit的规则配置稍微不当,就会短时间内产生大量日志,所以这个规则配置一定要当心.当audit日志写满后,可以看到如下场景: -r-------- 1 root root 8388609 Mar 3 ...

  8. Oracle Audit 审计功能的认识与使用

    1.Audit的概念 Audit是监视和记录用户对数据库进行的操作,以供DBA进行问题分析.利用Audit功能,可以完成以下任务: 监视和收集特定数据库活动的数据.例如管理员能够审计哪些表被更新,在某 ...

  9. ORACLE AUDIT 审计

    转自 http://blog.csdn.net/dnnyyq/article/details/4525980 1.什么是审计 审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计 ...

  10. MySQL审计工具Audit Plugin安装使用

    本实验的审计插件均是安装在 mysql-community-server-5.7.9 的服务器上. 插件安装(社区版) 插件下载地址: https://bintray.com/mcafee/mysql ...

随机推荐

  1. UVA10410-Tree Reconstruction(BFS序和DFS序的性质)

    Problem UVA10410-Tree Reconstruction Accept:708  Submit:4330 Time Limit: 3000 mSec Problem Descripti ...

  2. shzr要填的各种坑

    shzr要填的各种坑 如果大家看到我学了什么算法没写总结,或者做了什么题没写题解,欢迎让我填坑. 计划要写的: [ ] 点分治 [ ] 整体二分 [ ] CDQ分治 [ ] Min-Max容斥 [√] ...

  3. Leetcode:0027

    Leetcode:0027 题目:给定一个数组 nums 和一个值 val,你需要原地移除所有数值等于 val 的元素,返回移除后数组的新长度.不要使用额外的数组空间,你必须在原地修改输入数组并在使用 ...

  4. 02 python初学 (数字运算 逻辑运算)

    运算: 5/2 -> 2.5 5//2 -> 2  取整 5%2 -> 1  取余 2**10 -> 1024 指数运算 逻辑运算符: and : 条件1 and 条件2 no ...

  5. apache反向代理出现502调整

    1.问题描述:项目上线后,会在接口调用时客户端出现502异常,而服务端则对该此请求作出处理. 2.问题原因:经过排查后得知是由于请求并发量大,造成超过请求超时间,但是apache中队列已经加载到请求信 ...

  6. 输出1-100 , 奇数偶数分别添加标识(for循环语句嵌套if-else语句)

    package com.summer.cn; /** * @author Summer * 输出1-100 , 奇数偶数分别添加标识 */ public class Test041518 { publ ...

  7. P3200 [HNOI2009]有趣的数列--洛谷luogu

    ---恢复内容开始--- 题目描述 我们称一个长度为2n的数列是有趣的,当且仅当该数列满足以下三个条件: (1)它是从1到2n共2n个整数的一个排列{ai}: (2)所有的奇数项满足a1<a3& ...

  8. leetcode:Single Number

    public int SingleNumber(int[] nums) { if(nums==null||nums.Length%2==0) return 0; int ret=nums[0]; fo ...

  9. 深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 3

    备注: 因为文章太长,所以将它分为三部分,本文是第三部分. 第一部分:深入浅出经典面试题:从浏览器中输入URL到页面加载发生了什么 - Part 1 第二部分:深入浅出经典面试题:从浏览器中输入URL ...

  10. .NET Core Community 第二个千星项目诞生:Util

    本文所有打赏将全数捐赠于 NCC(NCC 的资金目前由 倾竹大人 负责管理),请注明捐赠于 NCC.捐赠情况将由倾竹大人另行公示. 项目简介 作为一款旨在提升小型团队开发输出能力.提高团队效率.降低项 ...