linux系统无原生操作录像功能,但可通过script、ttyrec或asciinema等工具录制终端会话并回放;需结合sudo日志、rsyslog审计,并强化录像文件权限与完整性保护。

Linux系统本身不自带操作录像功能,但可通过组合工具实现命令执行过程的完整记录与回放,核心思路是捕获终端输入输出流(stdin/stdout/stderr)并保存为可重播格式。
使用script命令录制基础会话
script 是最轻量、原生支持的录屏工具,它将当前终端所有交互内容(含命令、输出、控制字符)记录为类型为“typescript”的文本文件。
- 开始录制:
script -t 2>timing.log session.log(-t 生成时间戳日志,便于后续同步回放) - 执行任意命令(如
ls -la、cat /etc/passwd),所有输出实时写入session.log - 输入
exit或按Ctrl+D结束录制 - 回放:用
scriptreplay timing.log session.log即可逐帧还原终端画面(需保持原始终端尺寸)
增强审计:结合sudo日志与syslog统一归集
仅录终端不够——真实审计需明确“谁在何时以何身份执行了什么”。应联动系统级日志:
- 确保
/etc/sudoers启用Defaults logfile="/var/log/sudo.log",记录每次提权操作的用户、时间、命令 - 配置 rsyslog 将 authpriv.* 转发至中央日志服务器,例如:
authpriv.* @log-server:514 - 录制文件(如
session.log)命名建议含用户名、时间、主机名(例:audit_john_20240520_1423_server01.log),便于与 sudo 日志交叉索引
生产环境推荐:ttyrec + ttyplay 或 asciinema
原生 script 在复杂交互(如 vim、top)中可能失真;ttyrec 和 asciinema 更健壮:
-
ttyrec:录制二进制会话流,兼容性好,体积小
安装:apt install ttyrec(Debian/Ubuntu)或yum install ttyrec(RHEL/CentOS)
录制:ttyrec /var/log/audit/user_jane_$(date +%s).tty
回放:ttyplay /var/log/audit/user_jane_1716210200.tty -
asciinema:生成 JSON 格式,支持 Web 播放、搜索命令、分享链接,适合协作审计
安装:curl -sL https://www.php.cn/link/95569a10706dbb75839b8200a084dc1b/install | sh
录制:asciinema rec -c "/bin/bash" /var/log/audit/asciicast_jane.json
回放:asciinema play /var/log/audit/asciicast_jane.json或上传至 asciinema.org
权限与安全加固要点
录像本身不能成为审计盲区,必须防篡改、限访问:
- 录制目录(如
/var/log/audit/)设为700,属主为 root,禁止普通用户写入或删除 - 启用文件完整性监控(如 aide 或 tripwire),定期校验录像文件哈希值
- 避免在 root shell 中直接运行录制命令;推荐用
sudo -u audituser script ...以最小权限运行 - 对敏感操作(如修改防火墙、删库),可配合
auditd规则做双重捕获:-a always,exit -F arch=b64 -S execve -F uid!=1000 -k privileged_cmd










