工作中我们常常遇到,有的员工不安于被分配的权限,老是想sudo echo "ziji" /usr/bin/visudo NOPASSWD:ALL来进行提权,造成误删了数据库某条重要的数据,或者执行了一条命令对线上生产造成了严重的影响,部门老大又苦于找不到造成这种现象的操作者,CTO对你们部门直接扣除绩效,这样你们集体成了背锅侠。。。为了记录员工做的违规操作行为,所以就有了以下的方案。
  我们今天要学习的是:sudo日志审计,专门对使用sudo命令的系统用户记录其执行的命令相关信息,所谓日志审计,就是记录所有系统及相关用户行为的信息,并且可以自动分析,处理,展示(包括文本或着录像)

一)生产环境日志审计解决方案:  

通过环境变量命令及syslog服务进行全部日志审计(信息太大,不推荐)

sudo配合syslog服务,进行日志审计(信息较少,效果不错)

在bash解释器程序里嵌入一个监视器,让所有被审计的系统用户使用修改过的增加了监视器的特殊bash程序作为解释程序。

齐治的堡垒机:商业产品

二)配置sudo日志审计

说明:所谓sudo命令日志审计,并不记录普通用户的普通操作,而是记录,那些执行sudo命令的用户的操作。

1、安装sudo命令,rsyslog服务

 [root@s- /]# rpm -qa|grep sudo    #要是没安装执行yum install sudo -y
sudo-1.8.19p2-.el7.x86_64
[root@s- /]# rpm -qa|grep rsyslog #要是没安装执行yum install rsyslog -y
rsyslog-8.24.-.el7.x86_64
[root@s- /]#

2、配置服务

2.1配置系统日志/etc/rsyslog.conf,增加配置local.debug到/etc/rsyslog.conf中

 [root@s- /]# cat /var/log/    #查看日志文件是否存在没有就创建mkdir -p /var/log
cat: /var/log/: Is a directory
[root@s- /]# cat /etc/redhat-release
CentOS Linux release 7.5. (Core)
[root@s- /]# uname -r
3.10.-.el7.x86_64
[root@s- /]# tail - /etc/rsyslog.conf #没有就执行echo "local.debug /var/log/sudo.log">>/etc/rsyslog.conf
local.debug /var/log/sudo.log
[root@s- /]#

2.2配置/etc/sudoers,增加配置 “Defaults        logfile=/var/log/sudo.log” 到/etc/sudoers中,注意:不包含引号。

 [root@s- /]# echo "Defaults logfile=/var/log/sudo.log">>/etc/sudoers
[root@s- /]# tail - /etc/sudoers
Defaults logfile=/var/log/sudo.log
[root@s- /]# visudo -c
/etc/sudoers: parsed OK
[root@s- /]#

3、重启syslog内核日志记录器(简单来说就是重启服务了)

 [root@s- /]# systemctl restart rsyslog
[root@s- /]#

说到审计,有时候需要自定义审计规则,想了解的请参考下文哦:

CentOS 7上编写自定义系统审计规则

Linux 用户行为日志记录的更多相关文章

  1. 微软企业库5.0 学习之路——第九步、使用PolicyInjection模块进行AOP—PART4——建立自定义Call Handler实现用户操作日志记录

    在前面的Part3中, 我介绍Policy Injection模块中内置的Call Handler的使用方法,今天则继续介绍Call Handler——Custom Call Handler,通过建立 ...

  2. 基于SqlSugar的开发框架循序渐进介绍(8)-- 在基类函数封装实现用户操作日志记录

    在我们对数据进行重要修改调整的时候,往往需要跟踪记录好用户操作日志.一般来说,如对重要表记录的插入.修改.删除都需要记录下来,由于用户操作日志会带来一定的额外消耗,因此我们通过配置的方式来决定记录那些 ...

  3. Linux用户登录日志查询

    # 1 utmp.wtmp.btmp文件 Linux用户登录信息放在三个文件中: 1 /var/run/utmp:记录当前正在登录系统的用户信息,默认由who和w记录当前登录用户的信息,uptime记 ...

  4. Linux用户行为日志审计

    http://my.oschina.net/xiangpang/blog/532999 http://my.oschina.net/chaichuan/blog/508494 http://my.os ...

  5. Linux中的日志分析及管理

    日志文件对于诊断和解决系统中的问题很有帮助,因为在Linux系统中运行的程序通常会把系统消息和错误消息写入相应的日志文件,这样系统一旦出现问题就会“有据可查”.此外,当主机遭受攻击时,日志文件还可以帮 ...

  6. Linux文件系统与日志!

    1.inode 和 block 概述 文件储存在硬盘上,硬盘的最小储存单位叫“扇区”(sector),每个扇区储存 512 字节. 操作系统读取硬盘的时候,不会一个个扇区的读取,这样效率太低,而是一次 ...

  7. 按时按登录IP记录Linux所有用户操作日志的方法(附脚本)

    PS:Linux用户操作记录一般通过命令history来查看历史记录,但是如果因为某人误操作了删除了重要的数据,这种情况下history命令就不会有什么作用了.以下方法可以实现通过记录登陆IP地址和所 ...

  8. 按时按登录IP记录Linux所有用户操作日志的方法

    背景:Linux用户操作记录一般通过命令history来查看历史记录,但是如果因为某人误操作了删除了重要的数据,这种情况下history命令就不会有什么作用了.以下方法可以实现通过记录登陆IP地址和所 ...

  9. linux下怎么查看ssh的用户登录日志

    linux下登录日志在下面的目录里: cd /var/log 查看ssh用户的登录日志: less secure linux日志管理: 1. 日志简介 日志对于安全来说,非常重要,他记录了系统每天发生 ...

随机推荐

  1. SQL语句创建数据库以及一些查询练习

    --创建 MyCompany数据库 use master execute sp_configure 'show advanced options',1 --开启权限 reconfigure execu ...

  2. C 碎片六 函数

    一.程序编译执行过程 程序的编译执行过程分为4个阶段:预处理阶段.编译阶段.汇编阶段.连接阶段 1. 预处理阶段:预处理器(cpp)处理以头文件.宏.条件编译(字符#开头)等内容的替换.此阶段不进行语 ...

  3. 基于FCM的消息推送功能

    需求背景 我方项目需要支持客户端消息推送,iOS终端可以借由苹果本身的apns很方便的实现,但是对于Android来说,必须集成第三方的SDK来处理.考虑到项目需要以及成本,我们选择使用谷歌的FCM框 ...

  4. 认识与入门 MarkDown (转Te_Lee)

    Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用.看到这里请不要被「标记」.「语言」所迷惑,Markdown 的语法十分简单.常用的标记符号也不 ...

  5. SpringBoot的快速构建

    1.http://start.spring.io2.Spring Tool Suite3.IntelliJ IDEA4.Spring Boot CLI5.Maven手工构建

  6. IIS 处理高并发

    1. 调整IIS 7应用程序池队列长度 由原来的默认1000改为65535. IIS Manager > ApplicationPools > Advanced Settings Queu ...

  7. python使用浮点类型float计算后,数值不对_20180827

    在练习时,输入如下代码: 结果不准确. 原因:https://blog.csdn.net/bitcarmanlee/article/details/51179572 浮点数一个普遍的问题就是在计算机的 ...

  8. 使用CSS设置Chrome打印背景色

    以下内容适用于Chrome浏览器 打印背景色可以通过在打印预览页面勾选背景图形实现 如果需要在用户不勾选的情况下依然能够打印背景色,可以通过css实现,如,table隔行设置背景色: .data-ta ...

  9. 如何在SAP Server Side JavaScript里消费destination

    在SAP云平台里打开SAP HANA Web-Based Development Workbench进行服务器端JavaScript的开发. 创建一个新的package: 创建一个新的applicat ...

  10. this.value = this.placeholder || this.getAttribute('placeholder')

    this.value = this.placeholder || this.getAttribute('placeholder') 鉴于不同的浏览器对为止属性的实现方式有所不用,这里同时使用了HTML ...