【发布时间】:2020-08-16 20:36:27
【问题描述】:
我正在尝试记录用户在我们服务器上运行的所有命令,然后将它们发送到一个集中式日志服务器。
为此,我创建了一个 rsyslog 记录器,它使用 history 命令将所有内容写入一个文件 (/var/log/commands.log)。然后我使用 filebeat 将日志发送到日志服务器。我的问题是有人能够unset HISTFILE 这将停止记录。我不太担心有人在做echo "" > .bash_history,因为我会立即将日志发送到另一台服务器。
它不应该是万无一失的,因为一切都可以被智取,但我仍然想改进它。是否可以为 HISTFILE 的更改创建审计监视?或者创建某种监听器,每当用户取消设置 HISTFILE 时,它会立即将其设置回来并提醒我?我应该创建一些每 5 秒设置一次 HISTFILE 的守护进程吗?
非常感谢!
顺便说一句,我知道可以使用 auditd 记录命令,但它记录了系统也运行的命令,这使一切变得混乱。
【问题讨论】:
-
感谢回复,会不会阻止用户做
unset HISTFILE? -
我需要所有用户都不能
unset HISTFILE,或者,能够知道何时有人运行unset HISTFILE -
HISTFILE 是一个环境变量,它只是指向~.bash_history。如何为变量设置只读?
-
已解决,谢谢!
标签: linux bash unix ssh centos