用户pipe理与cronjob

在我的组织中,我们要在彻底混沌之后实施用户pipe理标准。 我们(组织)和客户能够访问root用户的地方,他们做了改变,使服务器失效。 但是,我们有责任玩这个configuration文件。

为了解决将来的任何问题,我们devise了一个模型,无论是否是最佳实践,都会有所帮助。

第1步 – 使用sudo访问root用户和非root用户

我们希望以下列方式拥有用户 –

  • Root用户 – >要么为了安全目的禁用SShlogin,要么仅通过SSH密钥和释义访问。 根帐户只能由我的团队中的一位成员访问。
  • 两个非root用户 – >一个用于我的团队,另一个用于客户端。

第2步 – 非root用户访问服务的权限有限

这些将是个人用户只能访问一个服务。

  • 完全访问服务器 – Apache或Nginx
  • 完全访问MySQL

我们可以有更多的用户来处理不同的服务。 没有其他用户可以访问不同的服务,除了分配的服务。

第3步 – 在日志文件中审计每个用户的命令

  • 我们要运行一个cronjob,logging每个用户在服务器上执行的每一个命令。
  • 我们需要这个来确定谁做了什么改变和何时。

对于审计,我寻找了几个解决scheme,其中大多数涉及开始一个命令,如脚本 ,在开始工作之前。 我希望在任何时候都能运行而不需要任何人工干预。 即使服务器重新启动。

请让我知道这是我们可以做的事情,还是有更好的方法来pipe理它们。

虽然这个想法听起来不错,但是你正在制定这个想法的方式表明,在生产层面实施你的想法所需的知识较less。 你所要求的是一个关于基本的用户/组事实和SELinux等附加机制的Linux速成课程。 Imho我认为你应该找一个人来完成这项工作。

更新:

1.)组织责任

由于责任不清,这种情况引起了人们的注意。 谁真的需要一个root帐户? pipe理员和只有pipe理员。 其余的是服务。 所以永远不要在一个普通的基础上(不包括支持)共享root / sudo账户。

2.)非root / sudo用户可以启动和停止某些服务,如果pipe理员允许他这样做的话:

2a。)可以使用setUIDsetGUID将某些文件执行为非root / sudo用户

2b)你可以在用户空间运行用户服务。 在/home/client手动安装Nginx和Mysql,就完成了!

3.)说到审计这个,我想history对于一开始就足够了。 用户没有特权,并处于信任链中。

正如评论所说,selinux和auditd,也psacct看到用户运行的进程,甚至可能甚至puppet或东西来执行configuration。 如果发生未经授权的更改,则木偶会将configuration更改回官方正常状态。