远程 Linux 管理顾问 - 最佳实践

And*_*ess 19 root

我们正在印度聘请一名顾问作为我们的 Linux 管理员。我们不太了解他,他需要 Root 访问我们所有的服务器才能完成他的工作(包括安全审计)。

为此类工作启用远程顾问以保护我们免受任何恶意活动的最佳做法是什么?

提前致谢。

Jou*_*eek 55

不要。此外,从我所看到的公司处理此问题的典型方式来看,您面临着无能恶意的危险。

我想说,印度可能有很棒的系统管理员,但许多公司做事的方式很糟糕。

如果你去一家车身修理厂,你也可能会看到他们的裁员很大,而且他们中的许多人不太可能对他们的员工进行适当的审查。我已经说过了三个,其中一个我工作了,并没有他们所做的任何技术的访谈。

因此,如果您必须远程雇用某人,看在上帝的份上,请亲自采访他并确保他了解他的工作。系统管理太重要了,不能盲目地交给某人

现在我已经处理了它的“无能”部分,

管理是一个相当宽泛的词组。拥有 root 访问权限的人可以做任何事情。现在,我个人认为为管理员创建一个帐户,并让他能够通过 sudo 提升自己的能力是一个更好的主意(如果你有很多服务器,你的配置管理系统应该处理)。也就是说,即使这依赖于一定程度的信任。有很多关于心怀不满的系统管理员可以造成的绝对破坏的故事。更改所有密码?当然你最终可以进入,但这不是微不足道的,而且它可能比你节省的花费更多。

所以,考虑一个本地。如果没有,请考虑您自己审核直接雇用的人

  • 我很难让特权访问 ** 离我一扇门的那个人**,更不用说 12 个时区以外的人了。我不敢相信任何人都会认为这是一种选择。 (35认同)
  • 如果你去实体店,你甚至不知道谁真正拥有这些 root 凭据,你不能保证今天在你的系统上工作的人与明天将在他们身上工作的人是同一个人,你不能保证这些人不会通过电子邮件将你的根级密码清楚地发送给对方(我已经见过太多次了),等等。 (7认同)
  • 没有人应该以 root 身份登录现代 Linux 发行版。root 帐户甚至不应该有密码。相反,应该有拥有 `su` 权限的用户将自己提升为 root。当有人说他们需要“root 访问权限”时,这就是他们应该要求的。如果这个人说他需要“root 密码”,那么他无论如何都无法胜任这项工作。 (2认同)
  • @MontyHarder 说得很有道理,这不是你第一次说的;`sudo` 和 `su` 是两个完全不同的东西。谢谢澄清。 (2认同)

EEA*_*EAA 33

正如已经提到的,不要这样做。

您能够保护自己的唯一方法是执行以下操作:

  1. 坚持让顾问使用您选择的配置管理系统。
  2. 顾问将为您需要完成的操作编写配置管理清单。
  3. 顾问将在测试系统上测试清单。
  4. 准备就绪后,顾问会将配置提交到代码存储库。
  5. 所有更改都由您的员工与第一个完全没有关系的另一位顾问进行审核,并且无法与他们联系。
  6. 一旦更改被签署,它们就会由您或您的员工应用于服务器。最初的顾问不应访问您的任何系统。

应该清楚,这是一个非常笨拙且效率低下的过程,但如果您坚持接受不受信任的个人的工作,这是处理事情的一种方式。

不过,正如我所建议的,你最好聘请一个知名的、值得信赖的人。


HBr*_*ijn 10

为此类工作启用远程顾问以保护我们免受任何恶意活动的最佳做法是什么?

从法律角度:事前尽职调查,严惩违约。

您从招聘内部员工(和/或服务提供商)时也适用的通常的良好招聘做法开始,包括对提供的简历进行事实检查、索取教育成绩单和认证编号、检查并致电他们的推荐人、面试,甚至背景调查或安全检查等。

然后应用胡萝卜:支付合理的价值,提供有吸引力的工作,出色的同事,良好的工作条件和福利等。(如果你支付花生,你就会得到猴子。

关键:违反你的雇佣/服务合同条款,我们会让我们的律师对你感到厌烦,让你破产!

不幸的是,当跨越国界和时区时,上述两者都变得越来越困难。

一旦你决定雇用某人:

  • 明确的指令和政策,人们应该知道他们应该做什么和不可以做什么。
  • 最小访问原则适用,使人们难以(意外或故意)做他们不应该做的事情。对于典型的系统管理员来说,这通常仍然意味着完全访问权限,但例如安全审计员不应该需要完全管理员访问权限,而可以简单地请求现有管理员代表他运行一个脚本来收集他提交报告所需的详细信息。这样的脚本可以很容易地预先检查。
  • 信任但要验证。只需让现有员工检查新加入者的工作,并一如既往地收集审计信息。
  • 等等等等

这个问题详细说明了我通常要求我的客户做些什么来为我建立远程访问,这对您来说也可能是一个起点。

  • *“如果你支付花生,你就会得到猴子”*或大象。虽然仔细想想,我不确定这比猴子好还是坏。 (3认同)

Cra*_*lis 7

我想到了一种保护自己的系统方法,我没有看到提到过。

将您的 Linux 实例作为 VM 托管在虚拟化管理程序(VMware、Xenserver、Hyper-V 等)上。

不要授予远程管理员对管理程序的管理访问权限。远程管理员只能获得对 VM 本身的 root 访问权限。

实施基于管理程序的备份系统(Unitrends、Veeam、vSphere Data Protection 等)

请务必每天至少保留每个 Linux VM 的一个快照,并在您认为有必要的情况下尽可能回溯。

不要授予远程管理员对备份存储库的写访问权限。

如果您执行这些操作,您将拥有远程管理员无法控制的每个 Linux 实例的备份快照。如果远程管理员做了一些奇怪的事情,无论是有意还是无意,您总是可以在出现故障之前安装一个备份,以评估发生了什么,并可能恢复到干净的状态。

这无法抵御管理程序侧信道攻击,该攻击可能是从攻击者具有 root 访问权限的 VM 内安装的。

如果您的备份没有及时回溯,这将无法保护您。

您需要完全信任控制您的虚拟机管理程序和备份基础架构的任何人。

如果您在云(AWS、Azure 等)中执行此操作,实施细节会有所不同,但一般概念是相同的。

从本质上讲,除了只雇用您信任的人之外,还要在不是业务合作伙伴的各方之间划分责任。

  • 不完全。您只管理管理程序和备份。诚然,这不是什么。但这也不一定是相同的技能组合或管理负担。很有可能,如果您正在进行虚拟化(我们是),那么无论如何您都有一个或多个不同的人负责单个 VM 上发生的任何事情。 (3认同)