Linux 用户行为轨迹监控

逸兴
逸兴
逸兴
57
文章
25
评论
2019-09-0413:39:05Linux 用户行为轨迹监控已关闭评论2 1102字阅读3分40秒
摘要

history 可以保存历史命令, 执行时间, 但是 执行命令时的屏幕打印的信息无法获取, 不能直观再现操作现场情景。这时就可以使用script 命令, 来记录终端会话轨迹, 保存下来, 进行回放。(一些跳板机或者堡垒机都可以实现这些,并且更友好。)

1.0 script是什么?

script是一个linux 命令,在rhel 7 (rhel 6 中好像也有)系统中都已经集成了。它可以将一个会话的内容(你输入了什么,屏幕又打印了什么)保存到文件中,还是文本格式,可以很方便的查看。
同时还可以使用scriptreplay命令,将保存的文件,通过回放的方式展示出来。
这里只探索script 的使用方式, script 怎么实现的, 则不做讨论。

2.0 script使用

既然是一个系统命令,那用起来就很方便了,同时script又是基于会话进行记录屏幕内容的。所以通常将script写在/etc/profile中,这样每个用户登录时,都会触发记录。当然了,也可以指定用户记录。 如下:

base_dir="/var/log/scripts/`date +%Y`/`date +%m`/`date +%d`/$USER"

if [ $UID -ge 0 ]; then
test -d $base_dir || /usr/bin/mkdir -p $base_dir
exec /usr/bin/script -t 2&>$base_dir/$USER-$UID-`date +%H:%M:%S`.date -a -f -q $base_dir/$USER-$UID-`date +%H:%M:%S`.log
fi

可以看到这里指定了两个文件,*.data 和 *.log ,其中.log 是保存屏幕内容的,.data 用来记录时间戳,这些都是文本文件,可以直接查看。
这些路径可以自己定义,为了方便查看,我做成了这种结构:

Linux 用户行为轨迹监控

script 还有些其他参数,可以找些资料了解下。这个数据存储的目录结构可以根据实际情况,进行定义。因为我这里登录的账号和频率较高,所以才以用户为最小单位。

2.1 记录指定用户会话

回到上面的配置,每个用户登录都会加载 /etc/profile 文件,它其实就是一个shell脚本,我这里通过一个if 判断,来指定uid 大于等于的账号,触发script,也就是所有用户都会记录会话。

如果对指定用户就可以通过这种方式,进行设置,很方便。

同时这里记录的数据,如果数据量增大或者担心被破坏,可以同步的将这些内容,发送到远端服务器,还可以写脚本自动清理 例如:30天前的文件。

3.0 scriptreplay 回放操作记录

回放也和简单, 直接使用 scriptreplay , 依次传入两个文件, 时间戳和数据文件(顺序不要错)。
scriptreplay root-0-10\:03\:57.date root-0-10\:03\:57.log

4.0 此处有坑

参考“环境变量失效问题 https://www.mcabana.com/archives/85.html




https://www.hugbg.com/archives/50.html
逸兴
  • 本文由 发表于 2019-09-0413:39:05
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
自动更新SSL证书 默认分类

自动更新SSL证书

现在免费的SSL证书只有三个月有效期,有一个博客和图床都用的ssl证书到期需要重新签发,挺麻烦的。原本想着写个脚本通过阿里云的 OpenAPI 进行证书的签发和部署,但是偶然发现了 ACME 这个项目...
推导式、生成式与生成器 基础语法

推导式、生成式与生成器

推导式 概述 Python中的推导式是一种快速、简洁的数据结构创建方式,不需要手动创建数据结构中的每一个元素,类似于给出一个规律,python会根据这个规律自动填充数据结构。支持有列表推导式、字典推导...
CVE-2024-38077 Windows RDL漏洞检测修复方法(末尾) 默认分类

CVE-2024-38077 Windows RDL漏洞检测修复方法(末尾)

一、漏洞详情 Windows Server是由微软开发的操作系统系列,专为服务器环境设计,用于管理网络、数据存储和应用程序的运行。它为企业和组织提供了稳定、可靠的服务器平台,支持各种规模的网络基础设施...
Django DRF禁用URL末尾斜杆(:) 点点滴滴

Django DRF禁用URL末尾斜杆(:)

一、关于URL末尾斜杆 比如http://127.0.0.1:8000/api/v1/register 和 http://127.0.0.1:8000/api/v1/register/, 这两个是同一...