我有一个命名帐户用于登录 Linux 主机。Tomcat 在名为“tomcat”的服务帐户下运行
我定期需要执行管理功能,例如修改配置为
-rw-------. 1 tomcat tomcat 1671 Mar 25 20:50 tomcat-users.xml
我想审核变更。我应该
- 授予指定用户 sudo 编辑文件的权利
- 授予指定用户 su 到 tomcat 帐户的权限并进行任何必要的更改(通过 sudo 或向管理员提供 tomcat 密码)
- 添加权限以允许 tomcat 组的成员编辑文件,并将 tomcat 作为辅助组添加到命名用户。
使用 sudo 可能会引发潜在的配置错误,从而让指定用户获得超出我预期的访问权限,并允许他们使用 sudo -i 并绕过审核。更改文件权限会扩大可以读取文件的范围,这似乎很危险。
我确实在寻找上面未涉及的风险和优势/劣势,以帮助决定采取的方法,而不仅仅是意见和“我这样做”。
答案1
获得可信赖的审计跟踪的唯一有效方法是采用最小特权策略,即默认拒绝访问。
如果您选择sudo
访问权限,您当然可以限制用户可以做什么和不能做什么;但您还需要注意可能适用的警告。
在这种情况下,您的要求是授予一组用户编辑特定文件的访问权限。
最佳实践规定每个用户都有一个个人帐户。无需让这些用户属于任何组,因为这已经涵盖了sudo
。
假设你的用户属于该operators
组,则sudorule
看起来如下:
Cmnd_Alias TOMCAT_COMMANDS = sudoedit /path/to/tomcat-users.xml
Host_Alias TOMCAT_HOSTS = foo.example.com, bar.example.com
Defaults log_host
Defaults log_output
Defaults syslog_badpri=alert
Defaults syslog_goodpri=notice
Defaults:%operators editor=/usr/bin/rvim
%operators TOMCAT_HOSTS = (tomcat)PASSWD: TOMCAT_COMMANDS
这确保他们无法逃避编辑器,因为他们被迫使用rvim
,并提供了一些合理的默认值来记录他们的活动。您可以进一步强化策略sudo
,并可以为其添加更多功能。这是一个例子。
完成类似操作的另一种方法是控制该文件的版本更改,并使用配置管理系统进行管理。
对于这类系统来说,RBAC 是一个广泛的话题,因为它是审计。您需要收集和分析生成的日志。