工作中我们常常遇到,有的员工不安于被分配的权限,老是想sudo echo "ziji" /usr/bin/visudo NOPASSWD:ALL来进行提权,造成误删了数据库某条重要的数据,或者执行了一条命令对线上生产造成了严重的影响,部门老大又苦于找不到造成这种现象的操作者,CTO对你们部门直接扣除绩效,这样你们集体成了背锅侠。。。为了记录员工做的违规操作行为,所以就有了以下的方案。
我们今天要学习的是:sudo日志审计,专门对使用sudo命令的系统用户记录其执行的命令相关信息,所谓日志审计,就是记录所有系统及相关用户行为的信息,并且可以自动分析,处理,展示(包括文本或着录像)
一)生产环境日志审计解决方案:
通过环境变量命令及syslog服务进行全部日志审计(信息太大,不推荐)
sudo配合syslog服务,进行日志审计(信息较少,效果不错)
在bash解释器程序里嵌入一个监视器,让所有被审计的系统用户使用修改过的增加了监视器的特殊bash程序作为解释程序。
齐治的堡垒机:商业产品
二)配置sudo日志审计
说明:所谓sudo命令日志审计,并不记录普通用户的普通操作,而是记录,那些执行sudo命令的用户的操作。
1、安装sudo命令,rsyslog服务
1 [root@s-28 /]# rpm -qa|grep sudo #要是没安装执行yum install sudo -y
2 sudo-1.8.19p2-13.el7.x86_64
3 [root@s-28 /]# rpm -qa|grep rsyslog #要是没安装执行yum install rsyslog -y
4 rsyslog-8.24.0-16.el7.x86_64
5 [root@s-28 /]#
2、配置服务
2.1配置系统日志/etc/rsyslog.conf,增加配置local.debug到/etc/rsyslog.conf中
1 [root@s-28 /]# cat /var/log/ #查看日志文件是否存在没有就创建mkdir -p /var/log 2 cat: /var/log/: Is a directory 3 [root@s-28 /]# cat /etc/redhat-release 4 CentOS Linux release 7.5.1804 (Core) 5 [root@s-28 /]# uname -r 6 3.10.0-862.el7.x86_64 7 [root@s-28 /]# tail -1 /etc/rsyslog.conf #没有就执行echo "local.debug /var/log/sudo.log">>/etc/rsyslog.conf 8 local.debug /var/log/sudo.log 9 [root@s-28 /]#
2.2配置/etc/sudoers,增加配置 “Defaults logfile=/var/log/sudo.log” 到/etc/sudoers中,注意:不包含引号。
1 [root@s-28 /]# echo "Defaults logfile=/var/log/sudo.log">>/etc/sudoers 2 [root@s-28 /]# tail -1 /etc/sudoers 3 Defaults logfile=/var/log/sudo.log 4 [root@s-28 /]# visudo -c 5 /etc/sudoers: parsed OK 6 [root@s-28 /]#
3、重启syslog内核日志记录器(简单来说就是重启服务了)
1 [root@s-28 /]# systemctl restart rsyslog 2 [root@s-28 /]#
说到审计,有时候需要自定义审计规则,想了解的请参考下文哦:
CentOS 7上编写自定义系统审计规则