场景

安全最重要的一步是内部安全,如何监控用户的行为是一个永恒不变的话题。
audit可以详细监控用户的行为,详细到查看或修改了某个文件。这些都可以在日志中查看到。

安装

小贴士:
CentOS默认已经安装

yum -y install audit*

开启audit服务

service auditd start		#开启
service auditd stop #关闭
service auditd restart #重启

配置文件

vim /etc/audit/auditd.conf
log_file = /var/log/audit/audit.log		#日志保存文件
max_log_file = 6 #单个日志文件最大占用空间(MB)
max_log_file_action = ROTATE #日志文件达到最大空间的动作: ROTATE为将旧日志文件重命名,再新建日志文件继续写入
freq = 20 #每隔20条记录写入日志中(flush = INCREMENTAL时有效)

添加规则

1.临时有效
auditctl -w /bin/rm -p x -k removefile
-w #指定所要监控的文件或命令
-p #监控属性(如x执行)
-k #指定关键词(方便在日志中查询)
-D #清除规则(临时,不会清除配置文件规则)
2.永久生效

小贴士:
/etc/audit/rules.d/audit.rules为规则配置文件
/etc/audit/audit.rules根据/etc/audit/rules.d/audit.rules里的规则自动生成
所以我们编辑/etc/audit/rules.d/audit.rules就好了

vim vim /etc/audit/rules.d/audit.rules
-w /bin/rm -p x -k removefile #添加这一句
service auditd restart #重启服务

查看规则

auditctl -l

查看日志

小贴士:
实验过程中记得把配置文件/etc/audit/auditd.conf中freq设置为1,不然很可能查看不到结果。

方式1-直接查看
cat /var/log/audit/audit.log

例如:运行命令rm -rf /root/123
发现可以详细的看到谁在什么时候对谁干了些什么

字段解释
type=PATH							#类型
msg=audit(1558846158.888:141) #时间戳和事件id(同一事件则id相同)
方式2-ausearch

一般查日志的方式很不方便,所以audit给出了非常友好的日志查看命令。

ausearch
-i #显示信息更清晰,比如显示日期而不是时间戳
-k #指定关键词(auditctl -k指定的关键词)
-c commond #只显示与指令相关日志(如-c rm)

例如:运行命令ausearch -i
可以看到不同事件用----分割开;
显示了日期而不是时间戳;
显示了用户名而不是uid。

Linux安全审计之audit安装与使用的更多相关文章

  1. centOS Linux下用yum安装mysql

    centOS Linux下用yum安装mysql      第一篇:安装和配置MySQL   第一步:安装MySQL   [root@192 local]# yum -y install mysql- ...

  2. Hyper-V上运行的Linux虚拟机验证是否安装了集成服务

    Hyper-V上运行的Linux虚拟机验证是否安装了集成服务 ps aux|grep "hv"root       311  0.0  0.0      0     0 ?     ...

  3. Linux Hadoop2.7.3 安装(单机模式) 一

    Linux Hadoop2.7.3 安装(单机模式) 一 Linux Hadoop2.7.3 安装(单机模式) 二 java环境安装 http://www.cnblogs.com/zeze/p/590 ...

  4. 【Oracle 集群】11G RAC 知识图文详细教程之RAC在LINUX上使用NFS安装前准备(六)

    RAC在LINUX上使用NFS安装前准备(六) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇 ...

  5. Linux下命令行安装weblogic10.3.6

    Linux下命令行安装weblogic10.3.6 一.安装前准备工作: 1.创建用户useradd weblogic;创建用户成功linux系统会自动创建一个和用户名相同的分组,并将该用户分到改组中 ...

  6. Linux下MongoDB服务安装

    Linux下MongoDB服务安装 MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.MongoDB是一个介于关系数据库和非关系数据 ...

  7. Linux Hadoop2.7.3 安装(单机模式) 二

    Linux Hadoop2.7.3 安装(单机模式) 一 Linux Hadoop2.7.3 安装(单机模式) 二 YARN是Hadoop 2.0中的资源管理系统,它的基本设计思想是将MRv1中的Jo ...

  8. .Net Core Linux centos7行—hyper-v安装linux系统和.net core sdk

    下载linux系统,选择安装centos7 下载地址:https://www.centos.org/download/ 安装centos7 hyper-v选择新建虚拟机 根据向导一路next,虚拟机代 ...

  9. Linux CentOS6.5下安装Oracle ASM

    Oracle版本:Oracle 11g 1.确定自己的Linux版本: [root@localhost ~]#uname -r 2.6.32-431.el6.x86_64 2.6.32-431.el6 ...

  10. Windows下的Memcache安装 linux下的Memcache安装

    linux下的Memcache安装: 1. 下载 memcache的linux版本,注意 memcached 用 libevent 来作事件驱动,所以要先安装有 libevent. 官方网址:http ...

随机推荐

  1. dotnet C# 如果在构造函数抛出异常 是否可以拿到对象赋值的变量

    如果使用某个变量去获取某个类型的对象创建,但是在这个类型的构造函数调用时抛出异常,请问此变量是否可以拿到对应的对象 如下面代码 private void F1() { Foo foo = null; ...

  2. dotnet CBB 为什么决定推送 Tag 才能打包

    通过推送 Tag 才打 NuGet 包的方法的作用不仅仅是让打包方便,让打包这个动作可以完全在本地执行,无需关注其他系统的使用步骤.更重要的是可以强制每个可能被安装的 NuGet 包版本都能有一个和他 ...

  3. RT-Thread 时钟管理

    一.时钟节拍 任何操作系统都需要提供一个时钟节拍,以供系统处理所有和时间有关的事件,如线程的延时.线程的时间片轮转调度以及定时器超时等.时钟节拍是特定的周期性中断,这个中断可以看做是系统心跳,中断之间 ...

  4. 2024-04-27:用go语言,在一个下标从 1 开始的 8 x 8 棋盘上,有三个棋子,分别是白色车、白色象和黑色皇后。 给定这三个棋子的位置,请计算出要捕获黑色皇后所需的最少移动次数。 需要注意

    2024-04-27:用go语言,在一个下标从 1 开始的 8 x 8 棋盘上,有三个棋子,分别是白色车.白色象和黑色皇后. 给定这三个棋子的位置,请计算出要捕获黑色皇后所需的最少移动次数. 需要注意 ...

  5. Java中HTTP下载文件——并解决跨域

    1.常用的需要设置的MIME类型 任何文件(二进制文件) application/octet-stream .doc application/msword .dot application/mswor ...

  6. SAP集成技术(六)技术、标准和协议

    本文链接:https://www.cnblogs.com/hhelibeb/p/17849837.html 内容摘录自<SAP Interface Management Guide>. W ...

  7. linux-centos7.6-gpt-uefi安装

    目录 linux-centos7.6-gpt-uefi安装 一.需要 二.环境 三.vm新建虚拟机系统环境 四.开始安装 linux-centos7.6-gpt-uefi安装 一.需要 安装的系统适用 ...

  8. Threading Programming Guide:One

    苹果支持的产生线程的方式 Operation Object 使用OperationQueue,具体可以参考:Concurrency Programming Guide GCD 使用诸如dispatch ...

  9. WEB服务与NGINX(18)- nginx rewrite功能详解

    目录 1. nginx的rewrite功能详解 1.1 rewrite功能概述 1.2 rewrite模块的常用指令 1.2.1 if指令 1.2.2 set指令 1.2.3 break指令 1.2. ...

  10. go高并发之路——go语言如何解决并发问题

    一.选择GO的原因 作为一个后端开发,日常工作中接触最多的两门语言就是PHP和GO了.无可否认,PHP确实是最好的语言(手动狗头哈哈),写起来真的很舒爽,没有任何心智负担,字符串和整型压根就不用区分, ...