shell/ssh/tty 会话记录器

shell/ssh/tty 会话记录器

祝你有个愉快的一天。

我知道我的问题在这里有一些变化,但我向你保证它们有点不同。

我们使用管理员连接到的终端服务器,然后与其他服务器建立 ssh 连接。我们需要审核他们的操作,这就是为什么我使用经过修改的 ssh 守护程序将会话记录到脚本格式的文件中。我一直在使用那个补丁http://www.kdvelectronics.eu/ssh-logging/ssh-logging.html。但它也有一些缺点。首先,该补丁已经有一段时间没有更新了,我设法修改它以适用于 ssh-4.7,但 openssh 在第 5 版中发生了严重变化。其次,几乎每个人都使用 GNU Screen,它的控制字符使会话日志有点难以理解。

然后我尝试了 ttyrpld,但是它需要内核模块,而且过了一段时间后它就停止记录了。

之后是pam_tty_audit,虽然安装和使用都很方便,但是该项目并没有真正解决我的问题。

我真正需要的是只记录用户输入的东西,不能被覆盖,而且不需要火箭科学知识来安装和支持。

答案1

我相信你已经看过了,但是这个问题对会话日志有很多建议 -屏幕日志记录可能是最适合您情况的建议。可能需要稍微改变业务实践以满足日志记录要求,因为似乎没有终端日志记录软件能够完全满足(通常不同的)需求。

答案2

查看 SSHLoghttps://github.com/sshlog/agent/

我是该开源项目的贡献者。

在这种情况下,您需要将其配置为记录每个用户的终端会话。例如:

events:
  - event: stream_terminal
    triggers: ['connection_established', 'connection_close', 'terminal_update']
    filters:
      ignore_existing_logins: True
    actions:
      - action: log_all_sessions
        plugin: sessionlog_action
        log_directory: '/var/log/sshlog/sessions/'
        timestamp_frequency_seconds: 6

这会为你提供每个 SSH 会话的日志文件。它看起来类似这样:

[[ sshlog connection_established user: jdoe at 2023-04-11T21:07:58.986000Z ]]

[[ sshlog time: 2023-04-11T21:07:59.394366Z ]]
jdoe@serverb: ~jdoe@serverb:~$ 
[[ sshlog time: 2023-04-11T21:09:26.189697Z ]]
jdoe@serverb: ~jdoe@serverb:~$ 
jdoe@serverb: ~jdoe@serverb:~$ 
jdoe@serverb: ~jdoe@serverb:~$ ls
 Desktop  Downloads   Documents
jdoe@serverb: ~jdoe@serverb:~$ 
[[ sshlog connection_close user: jdoe at 2023-04-11T21:09:49.219000Z ]]

相关内容