我正在招聘一名自由职业服务器管理员(他比我更有经验 - 这就是我雇用他们的原因)来处理我运行 CentOS 的 VPS 的一些工作。他们需要对服务器具有 root 级访问权限,因为他们需要安装服务器守护程序等。
在这种情况下,最佳做法是什么:如何确定承包商是否安装了 root 工具包或做了其他令人讨厌的事情?我所做的是为用户创建一个新帐户,将新帐户添加到组“wheel”,然后使用 visudo 使组 wheel 能够运行所有命令。
我还应该采取其他措施吗?我承认,通过移交 sudo 权限,承包商几乎可以做任何他们想做的事情,最终我需要信任他们;我想我至少要确保我有他们所做的一切的记录,以防万一。
谢谢
答案1
一个选择是使用系统配置工具,比如 puppet,这样他们就可以明确地概述要对服务器执行的操作。当然,这需要有人在应用之前检查他们的工作。
另一个选择是设置网络syslog
服务。通过将记录的消息转发到他们无法控制的另一台服务器,您至少可以保证日志的完整性。确保系统记录登录/注销,理想情况下,限制对 sudo 的访问,以便所有 root 命令都可以由特定用户执行。同样,此服务器需要仅对尽可能少的人具有 root 访问权限。
答案2
技术方案:对服务器进行映像处理,以便事后可以比较所做的更改。请将此副本远离他们。
政治解决方案:让他们签署工作说明并雇用您可以信赖的承包商。
答案3
您所要求的在正常情况下很难实现。您已经指出他们比您知道的更多,因此当他们拥有与您同等的权限时,监视他们几乎是不可能的。(他们真的需要完全权限吗?也许不需要。)
如果这些人不是你信任的人,你真的不应该与他们合作。正如 matt.j.alexander 正确指出的那样,这不是一个技术问题。
正是出于这个原因,高质量的系统管理员非常关心自己的声誉。我保持警惕干净的因为我的工作需要大量的信任。如果我失去了这种个人信任,这将是一个严重的职业问题。
答案4
我通常会为用户提供一个以 screen 作为 shell 的帐户,并为其添加一个 .screenrc 文件来记录用户所做的一切。这样,我就可以通过使用 tail -f 实时监控用户,并记录用户的所有操作。