Linux 用户行为日志记录
工作中我们常常遇到,有的员工不安于被分配的权限,老是想sudo echo "ziji" /usr/bin/visudo NOPASSWD:ALL来进行提权,造成误删了数据库某条重要的数据,或者执行了一条命令对线上生产造成了严重的影响,部门老大又苦于找不到造成这种现象的操作者,CTO对你们部门直接扣除绩效,这样你们集体成了背锅侠。。。为了记录员工做的违规操作行为,所以就有了以下的方案。
我们今天要学习的是:sudo日志审计,专门对使用sudo命令的系统用户记录其执行的命令相关信息。
说明:所谓sudo命令日志审计,并不记录普通用户的普通操作,而是记录,那些执行sudo命令的用户的操作。
1、安装sudo命令,rsyslog服务
2、配置/etc/sudoers
增加配置 “Defaults logfile=/var/log/sudo.log” 到/etc/sudoers中,注意:不包含引号。
3、配置系统日志/etc/rsyslog.conf
增加配置local.debug到/etc/rsyslog.conf中
4、重启syslog内核日志记录器
[root@lrz ~]# /etc/init.d/rsyslog restart Shutting down system logger: [ OK ] Starting system logger: [ OK ]
此时,会自动建立一个/var/log/sudo.log文件(日志中配置的名字)并且文件权限为600,所有者和组均为root(如果看不到日志文件,就退出重新登录看看)。
[root@king ~]# ls -l /var/log/sudo.log -rw-------. 1 root root 0 Dec 3 14:50 /var/log/sudo.log
5、测试sudo 日志审计结果
根据前文讲解的建立用户oldboy拥有sudo 权限,同时使用root用户登录查看/var/log/sudo.log
[xiaorui@lrz ~]$ sudo useradd zzy [sudo] password for xiaorui: [xiaorui@lrz ~]$ sudo userdel zzy [xiaorui@lrz ~]$ cd /home [xiaorui@lrz home]$ ls xiaorui zzy [xiaorui@lrz home]$ sudo userdel -r zzy userdel: user 'zzy' does not exist [xiaorui@lrz home]$ rm -rf zzy/ rm: 无法删除"zzy": 权限不够 [xiaorui@lrz home]$ sudo rm -rf zzy/ [xiaorui@lrz home]$ ls xiaorui
查看日志统计结果:
[root@lrz ~]# tail -20 /var/log/sudo.log Dec 3 14:53:03 : xiaorui : TTY=pts/0 ; PWD=/home/xiaorui ; USER=root ; COMMAND=/usr/sbin/useradd zzy Dec 3 14:53:14 : xiaorui : TTY=pts/0 ; PWD=/home/xiaorui ; USER=root ; COMMAND=/usr/sbin/userdel zzy Dec 3 14:53:36 : xiaorui : TTY=pts/0 ; PWD=/home ; USER=root ; COMMAND=/usr/sbin/userdel -r zzy Dec 3 14:53:53 : xiaorui : TTY=pts/0 ; PWD=/home ; USER=root ; COMMAND=/bin/rm -rf zzy/ Dec 3 14:54:03 : xiaorui : TTY=pts/0 ; PWD=/home ; USER=root ; COMMAND=/bin/su -
生产环境日志审计解决方案:
所谓日志审计,就是记录所有系统及相关用户行为的信息,并且可以自动分析,处理,展示(包括文本或着录像)
方法1:通过环境变量命令及syslog服务进行全部日志审计(信息太大,不推荐)
方法2:sudo配合syslog服务,进行日志审计(信息较少,效果不错)
方法3:在bash解释器程序里嵌入一个监视器,让所有被审计的系统用户使用修改过的增加了监视器的特殊bash程序作为解释程序。
方法4:齐治的堡垒机:商业产品
日志集中管理(了解):
1、rsync+inotify或定时任务+rsync,推到日志管理服务器上,10.0.0.7_20151203.sudo.log
2、rsyslog服务来处理
[root@lrz ~]# echo "10.0.2.164 logserver">>/etc/hosts [root@lrz ~]# echo "*.info @logserver">>/etc/rsyslog.conf
3、日志收集解决工具:scribe,flume,stom,logstashLInux
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
2018-05-14 在SpringBoot中对SpringSecurity的基本使用
2018-05-14 聊聊 Spring Boot 2.0 的 WebFlux
2018-05-14 使用 Spring Boot 2.0 + WebFlux 实现 RESTful API
2018-05-14 Spring Boot 不使用默认的 parent,改用自己的项目的 parent
2018-05-14 Springboot 版本+ jdk 版本 + Maven 版本的匹配
2018-05-14 Spring Boot 学习17--改变JDK编译版本
2018-05-14 Spring Boot 配置大全