Linux审计主要用于查看系统改动的信息,如系统密码修改,用户的新建,主要用于保障系统的安全,下面简单介绍审计如何使用

1启动审计进程:

[tommy@xie-testlog]$ sudo service auditd start

2查看当前审计规则

[tommy@xie-testlog]$ sudo auditctl -l

[sudo] passwordfor tommy:

LIST_RULES:exit,always watch=/etc/passwd perm=rwxa

我这里已经新建了一条规则,默认是no rules

3新建临时规则

[tommy@xie-testlog]$ sudo auditctl -w /etc/passwd -p rxwa

参数说明

-w :审计监视的路径

-p:目录或者文件的权限 ,rxwa分别是读、执行、写、属性

在输入命令

[tommy@xie-testlog]$ sudo auditctl -l

就能看到添加的一条规则,这里是对/etc/passwd这个密码文件的监视,如果这个文件发生修改那么就会在审计日志中被记录下来

说明:sudo auditctl -w /etc/passwd -p rxwa这条命令只是新建一条临时规则,如果服务重启或者系统重启,那么这条命令会被清空,如果要让其成为永久的规则,必须修改audit.rules文件,如下

[tommy@xie-testlog]$ sudo vi /etc/audit/audit.rules

[sudo] passwordfor tommy:

# This filecontains the auditctl rules that are loaded

# whenever theaudit daemon is started via the initscripts.

# The rules aresimply the parameters that would be passed

# to auditctl.

# First rule -delete all

-D

# Increase thebuffers to survive stress events.

# Make thisbigger for busy systems

-b 320

# Feel free toadd below this line. See auditctl man page

-w /etc/passwd -p rwxa

上面红色的语句就是添加的规则

4下面来测试passwd文件改动的审计信息

新建一个用户和设置密码

[tommy@xie-testlog]$ sudo useradd lily

[tommy@xie-testlog]$ sudo passwd lily

输入用户密码:

再次输入密码:

然后通过ausearch工具查看审计日志,通过useradd筛选出刚才添加用户的审计信息

[tommy@xie-test log]$ sudo ausearch -f/etc/passwd | grep useradd

type=SYSCALLmsg=audit(1504005888.886:16996): arch=c000003e syscall=2 success=yes exit=4a0=7fceac18869a a1=80000 a2=1b6 a3=0 items=3 ppid=27342 pid=27343 auid=503uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2416comm="useradd" exe="/usr/sbin/useradd" key=(null)

type=SYSCALLmsg=audit(1504005888.887:16997): arch=c000003e syscall=2 success=yes exit=5a0=7fceb3434ce0 a1=2 a2=1b6 a3=0 items=3 ppid=27342 pid=27343 auid=503 uid=0gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2416 comm="useradd" exe="/usr/sbin/useradd"key=(null)

type=SYSCALLmsg=audit(1504005888.899:16998): arch=c000003e syscall=2 success=yes exit=9a0=7fceac18869a a1=80000 a2=1b6 a3=0 items=3 ppid=27342 pid=27343 auid=503uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2416comm="useradd" exe="/usr/sbin/useradd" key=(null)

type=SYSCALLmsg=audit(1504005888.900:17000): arch=c000003e syscall=2 success=yes exit=10a0=7fceac18869a a1=80000 a2=1b6 a3=0 items=3 ppid=27342 pid=27343 auid=503uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts1 ses=2416comm="useradd" exe="/usr/sbin/useradd" key=(null)

type=SYSCALLmsg=audit(1504005889.008:17004): arch=c000003e syscall=82 success=yes exit=0a0=7fff8135ec40 a1=7fceb3434ce0 a2=7fff8135eb00 a3=0 items=13 ppid=27342pid=27343 auid=503 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0tty=pts1 ses=2416 comm="useradd" exe="/usr/sbin/useradd"key=(null)

参数说明:

time :审计时间。

•name :审计对象

•cwd :当前路径

•syscall :相关的系统调用

•auid :审计用户ID

•uid和 gid :访问文件的用户ID和用户组ID

•comm :用户访问文件的命令

•exe :上面命令的可执行文件路径

通过aureport查看生成的审计报告

[tommy@xie-testlog]$ sudo aureport

Summary Report

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

Range of time inlogs: 2017年08月29日 19:23:12.160 - 2017年08月29日 19:50:57.654

Selected time forreport: 2017年08月29日 19:23:12 - 2017年08月29日 19:50:57.654

Number ofchanges in configuration: 3

Number ofchanges to accounts, groups, or roles: 6

Number oflogins: 0

Number of failedlogins: 0

Number ofauthentications: 3

Number of failedauthentications: 1

Number of users:3

Number ofterminals: 5

Number of hostnames: 1

Number ofexecutables: 9

Number of files:6

Number of AVC's:0

Number of MACevents: 0

Number of failedsyscalls: 0

Number ofanomaly events: 0

Number ofresponses to anomaly events: 0

Number of cryptoevents: 0

Number of keys:0

Number ofprocess IDs: 47

Number ofevents: 505

这里看到了错误的认证fail authentications是1,因为我在刚才使用sudo命令的时候提示输入用户密码输入错了一次,所以被记录了下来

注意:auditd的审计日志是在/var/log/audit/audit.log这里,如果设置的rules较多,日志会很大,所以要定期删除日志,在删除日志的时候注意要重启auditd服务

对auditd.conf文件的分析

这里说明一下几个关键的参数:

log_file:审计日志文件的位置

num_logs:审计日志文件的数量

max_log_file:审计日志文件的容量

max_log_file_action:当审计日志文件超过容量大小时候的操作,这里是rotate,会循环原来的日志文件

对audit.log日志文件的分析

msg=audit后面那串数字冒号前面的是linux系统的时间,我们需要用工具把它转换为我们熟悉的时间格式,这里使用这个网站的工具,输入这个时间就能看到

网址:tool.chinaz.com/Tools/unixtime.aspx

输入后可以看到相应的时间

addr:就是进行上述操作(sshd)的主机地址

2018-05-22补充说明

查看audit.log的时候发觉日志很多,能找到对应操作如useradd操作,但是却碰到一个难题,并不知道这个操作对应是哪个IP的,探讨了一天,下面以/etc/passwd这个文件的审计为例子,在此对这个问题进行分析:

为了方便观察,我用工具把/var/log/audit.log这个文件先拷出来,然后用notepad++把审计日志打开,因为在一开始我使用了useradd lily 和passwd等操作,我首先输入comm快速定位到有useradd或者passwd操作命令记录的日志位置

可以看到我画红线的部分,已经定位到useradd这个增加用户的操作记录,然后在这条记录的左手面,可以找到“ppid”这个字

眼,注意,这个是父进程,非常关键,这个就是对应那个ip登录的重要信息,如下图

可以看到我画红线的ppid是15111

然后我们根据这个15111,再在文件中查看15111这个数字,知道找到有详细的IP出现的位置,有惊喜发现!

可以看到我找到了user id=15111,ip为192.168.10.43这个IP主机,这个user id和刚才的ppid是对应的,所以就说明是

192.168.10.43这个IP的主机进行了刚才的useradd操作!

---------------------
版权声明:本文为CSDN博主「丢你刘某」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_26614295/article/details/77675912

经测试 如果监控/root/a.txt ,必须使用/root/a.txt为路径 才能监控上

linux auditd审计的简单使用和理解的更多相关文章

  1. linux下git的简单运用

    linux下git的简单运用 windows下也有git,是git公司出的bash,基本上模拟了linux下命令行.许多常用的命令和linux下操作一样.也就是说,windows下的git命令操作和l ...

  2. Linux 内核 链表 的简单模拟(1)

    第零章:扯扯淡 出一个有意思的题目:用一个宏定义FIND求一个结构体struct里某个变量相对struc的编移量,如 struct student { int a; //FIND(struct stu ...

  3. Linux系统目录结构以及简单说明

    Linux系统目录结构以及简单说明 linux目录图: / root --- 启动Linux时使用的一些核心文件.如操作系统内核.引导程序Grub等. home --- 存储普通用户的个人文件 ftp ...

  4. Linux中vim的简单配置

    本文主要分享Linux中vim的简单配置 ★配置文件的位置     在目录/etc.下面,有个名为vimrc的文件,这就是系统中公共的vim配置文件,对所有用户都开放.而在每个用户的主目录下,都可以自 ...

  5. Linux 内核 链表 的简单模拟(2)

    接上一篇Linux 内核 链表 的简单模拟(1) 第五章:Linux内核链表的遍历 /** * list_for_each - iterate over a list * @pos: the & ...

  6. javascript编写一个简单的编译器(理解抽象语法树AST)

    javascript编写一个简单的编译器(理解抽象语法树AST) 编译器 是一种接收一段代码,然后把它转成一些其他一种机制.我们现在来做一个在一张纸上画出一条线,那么我们画出一条线需要定义的条件如下: ...

  7. Redis之在Linux上安装和简单的使用

    我只是一个搬运工 Redis之在Linux上安装和简单的使用https://blog.csdn.net/qq_20989105/article/details/76390367 一.安装gcc 1.R ...

  8. Linux下MySQL的简单操作

    Linux下MySQL的简单操作 更改mysql数据库root的密码 首次进入数据库是不用密码的: [root@localhost ~]# /usr/local/mysql/bin/mysql -ur ...

  9. Unity3d-通过简单示例来理解Time.deltaTime

    转载文章: Unity3d-通过简单示例来理解Time.deltaTime 2018年04月21日 18:04:14 Black_Window 阅读数:926 标签: UnityTime 更多 个人分 ...

随机推荐

  1. Java 开发最容易写的 10 个bug

    原文链接:10 个让人头疼的 bug 那个谁,今天又写 bug 了,没错,他说的好像就是我...... 作为 Java 开发,我们在写代码的过程中难免会产生各种奇思妙想的 bug ,有些 bug 就挺 ...

  2. 微服务+异步工作流+ Serverless,Netflix 决定弃用稳定运行 7 年的旧平台

    作者 | Frank San Miguel 策划 | 田晓旭 2021 年,Netflix 会将大部分的工作负载从 Reloaded 转移到 Cosmos 平台.Cosmos 是一个计算平台,它将微服 ...

  3. sqlite3 c++使用以及提高速率(一万条每秒左右)

    参考来源: sqlite3的C语言使用(三):https://www.leavesongs.com/C/sqlite3_3.html sqlite插入和查询效率提高方法及测试结果: http://bl ...

  4. Cartography Tools(制图工具)

    制图工具 1.制图优化 # Process: 分散标记 arcpy.DisperseMarkers_cartography("", "", "EXPA ...

  5. Bloom Filter算法

    Bloom Filter算法详解 什么是布隆过滤器 布隆过滤器(Bloom Filter)是 1970 年由布隆提出的.它实际上是一个很长的二进制向量和一系列随机映射函数 (下面详细说),实际上你也可 ...

  6. 分库分表利器之Sharding Sphere(深度好文,看过的人都说好)

    Sharding-Sphere Sharding-JDBC 最早是当当网内部使用的一款分库分表框架,到2017年的时候才开始对外开源,这几年在大量社区贡献者的不断迭代下,功能也逐渐完善,现已更名为 S ...

  7. RBAC 权限管理模型

    一.RBAC模型--基于角色的访问控制 什么是RBAC RBAC(Role-Based Access Control)基于角色的访问控制.这是从传统的权限模型的基础之上,改进而来并且相当成熟的权限模型 ...

  8. 软工博客之关于CSDN的移动端软件测评

    关于CSDN的移动端软件测评 项目 内容 这个作业属于哪个课程 2020春季计算机学院软件工程(罗杰 任健) 这个作业的要求在哪里 软件测评作业 我在这个课程的目标 不求变强,只求做好,成为一颗有用的 ...

  9. 小白自制Linux开发板 九. 修改开机Logo

    许久不见啊,今天我们继续来修改我们的系统. 通过前面的几篇文章我们已经能轻松驾驭我们的开发板了,但是现在都是追求个性化的时代,我们在开发板上打上了自己的Logo,那我们是否可以改变开机启动的Logo呢 ...

  10. 数组模拟双链表,你get到了吗?

    数组模拟双链表 通过前面的学习我们知道单链表是单个指针指向操作,那么通过类比我们可以把指针设定为两个,并且让它们分别指向前后数据,这就是"双向链表".使用这种链表,不仅可以从前往后 ...