Leo*_*Leo 13 security shell logging
我希望输入的每个命令都转到日志服务器。已经配置了将所有日志发送到日志服务器的 syslog-ng。
我对任何和所有方法都感兴趣。我希望对流氓用户和安全性进行一些讨论,但第一个主要目标是简单地记录会话。所有会话都通过 ssh,但也应记录控制台连接命令。我希望任何 shell 都能发生这种情况,但主要的 shell 是 bash。(同样,我知道流氓用户可以创建自己的外壳......)
Jul*_*ano 29
这不是你处理问题的方式。一旦您授予用户 shell 访问权限,您就委托该用户执行他/她有权执行的任何操作。忘记命令日志吧,在任何 Unix 系统中执行命令的方法太多了。
例如,用户可以启动一个邮件客户端(例如,唯一记录的命令是pine
),在那里他选择“撰写”来启动 VI,然后从 VI 中他通过 启动他想要的任何命令:!cmd
。这个命令没有记录在任何地方,从系统的角度来看,它就像 VI 调用的任何帮助应用程序,如 grep 或 sort。shell 记录的唯一命令是pine
.
似乎您真正想要的称为auditing。启用审计子系统并使用审计包中的auditctl
命令和auditd
守护程序来控制记录的内容。更多信息在auditctl(8)手册页中。
请注意,记录每个进程实例化也可能不是最佳的。例如,一个简单./configure
的软件包(使用 autotools 创建)以创建数千个进程实例而著称。这将使审计日志充满大量噪音,以至于以后很难对其进行分析。
Sam*_*cke 13
安装acct
包(包名因发行版而异,也称为进程记账)并使用lastcomm <username>
:
[mithrandir]-[/home/sernin]-[1951] % lastcomm sernin
tr sernin pts/2 0.00 secs Fri Nov 12 12:02
zsh F sernin pts/2 0.00 secs Fri Nov 12 12:02
tr sernin pts/2 0.02 secs Fri Nov 12 12:02
zsh F sernin pts/2 0.00 secs Fri Nov 12 12:02
fortune sernin pts/2 0.00 secs Fri Nov 12 12:02
xmodmap sernin pts/2 0.00 secs Fri Nov 12 12:02
xrdb sernin pts/2 0.00 secs Fri Nov 12 12:02
sh sernin pts/2 0.00 secs Fri Nov 12 12:02
cpp sernin pts/2 0.00 secs Fri Nov 12 12:02
Run Code Online (Sandbox Code Playgroud)
您还可以按 tty 或命令名称进行搜索。像往常一样,man lastcomm
了解更多信息。
mar*_*ark 11
如果您愿意进行一点 C 编程,您可以编写一个包含 execve 的库,将日志记录到 syslog,然后 dlopen 是包含真正的 execve 系统调用的库。然后在 /etc/environment 中,将 LD_PRELOAD 设置为您创建的库的路径。
在此处输入循环时要小心,因此您可能只想记录某些二进制文件的 exec,或者将其他二进制文件(如 syslog)排除在日志之外。
归档时间: |
|
查看次数: |
18677 次 |
最近记录: |