使用原始用户名登录所有root活动


11

当禁用root登录(SSH)但用户可以运行sudo -isu -成为root 用户时,最好的方法是跟踪谁在日志中充当root用户?我也想用原始用户名跟随每个命令。RHEL 6或任何Linux rsyslog等

Answers:


7

最健壮的方法似乎已经过审核:

http://blog.ptsecurity.com/2010/11/requirement-10-track-and-monitor-all.html

Audited基本上会拦截所有系统调用,并对照您的规则集检查它们。因此,在您的/etc/audit/audit.rules文件中,您将具有以下内容:

# This file contains the auditctl rules that are loaded
# whenever the audit daemon is started via the initscripts.
# The rules are simply the parameters that would be passed
# to auditctl.

# First rule - delete all
-D

# Increase the buffers to survive stress events.
# Make this bigger for busy systems
-b 320

# Feel free to add below this line. See auditctl man page
-a always,exit -F euid=0 -F perm=wxa -k ROOT_ACTION

最后一条规则是唯一的非默认规则。

这种方法的主要缺点(以及我在寻找替代方法时发现此问题的原因)是原始日志文件非常隐秘,仅在对原始日志文件运行查询程序之后才有用: ausearch

该规则的示例查询为:

ausearch -ts today -k ROOT_ACTION -f audit_me | aureport -i -f

一个常识性的解决方案可能是创建一个cron,该cron将查询您的原始审核日志,然后将它们发送到您的日志记录解决方案中。


如果您正在寻找可替代auditd并为您完成原始事件相关性的内容,请查看:github.com/slackhq/go-audit
freb

3

在Red Hat发行版上,您通常使用 /var/log/secure日志来识别谁sudo在Fedora / CentOS / RHEL系统上进行登录或使用。

例子

须藤的例子
$ sudo -Es

记录结果:

Sep 1 19:32:51 greeneggs sudo:saml:TTY = pts / 2; PWD = / home / saml; USER = root; COMMAND = / bin / bash

su例子
$ su -

记录结果:

9月1日19:34:49 greeneggs su:pam_unix(su-l:session):由saml为用户root打开的会话(uid = 1000)


3

如果您有合作用户,则可以设置rootsh将root用户键入的所有内容记录到syslog中。

http://linux.die.net/man/1/rootsh

rootsh rpms在EPEL中可用。

RHEL6上的sudo版本还能够为每个sudo会话将stdout记录到文件中。查看sudo_plugins手册页。

这些方法都不是完全防弹的。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.