在我的组织中,我们要在彻底混沌之后实施用户pipe理标准。 我们(组织)和客户能够访问root用户的地方,他们做了改变,使服务器失效。 但是,我们有责任玩这个configuration文件。
为了解决将来的任何问题,我们devise了一个模型,无论是否是最佳实践,都会有所帮助。
第1步 – 使用sudo访问root用户和非root用户
我们希望以下列方式拥有用户 –
第2步 – 非root用户访问服务的权限有限
这些将是个人用户只能访问一个服务。
我们可以有更多的用户来处理不同的服务。 没有其他用户可以访问不同的服务,除了分配的服务。
第3步 – 在日志文件中审计每个用户的命令
对于审计,我寻找了几个解决scheme,其中大多数涉及开始一个命令,如脚本 ,在开始工作之前。 我希望在任何时候都能运行而不需要任何人工干预。 即使服务器重新启动。
请让我知道这是我们可以做的事情,还是有更好的方法来pipe理它们。
虽然这个想法听起来不错,但是你正在制定这个想法的方式表明,在生产层面实施你的想法所需的知识较less。 你所要求的是一个关于基本的用户/组事实和SELinux等附加机制的Linux速成课程。 Imho我认为你应该找一个人来完成这项工作。
更新:
1.)组织责任
由于责任不清,这种情况引起了人们的注意。 谁真的需要一个root帐户? pipe理员和只有pipe理员。 其余的是服务。 所以永远不要在一个普通的基础上(不包括支持)共享root / sudo账户。
2.)非root / sudo用户可以启动和停止某些服务,如果pipe理员允许他这样做的话:
2a。)可以使用setUID , setGUID将某些文件执行为非root / sudo用户
2b)你可以在用户空间运行用户服务。 在/home/client手动安装Nginx和Mysql,就完成了!
3.)说到审计这个,我想history对于一开始就足够了。 用户没有特权,并处于信任链中。
正如评论所说,selinux和auditd,也psacct看到用户运行的进程,甚至可能甚至puppet或东西来执行configuration。 如果发生未经授权的更改,则木偶会将configuration更改回官方正常状态。