具体来说,我用鱼壳 。 我真的想在我的生产服务器上使用它,并将其设置为root帐户的默认shell,但我想知道是否有任何特定的安全问题,因为它是一个shell,我应该知道之前这样做。 我猜测它不会比服务器上的任何其他应用程序更具安全风险,因为它只在login发生之后运行,不过某种方式将其用作生产服务器上的默认根shell 感觉不太安全。
我的主要问题是:在安装一个非标准的shell并将其设置为root用户的缺省shell比安装任何其他应用程序时有任何额外的安全风险吗?
编辑:目前的答案不解决这个问题,也许是因为我不清楚。 让我试着更准确地解释为什么我觉得答案是不完整的。
当然,当您安装任何新软件时,存在安全漏洞的风险。 某些软件,根据使用情况,需要比其他更多的谨慎 – 例如,安装一个networking服务器引入了一个新的攻击媒介的性质,因此,我们会更加谨慎安装一个不太常见的网页浏览器比一个图像转换工具。 我想知道是否应该更仔细地仔细检查一下贝壳,如果是的话,为什么。
另外,我想知道是否将root用户设置为默认的非标准shell会带来额外的安全隐患。 到目前为止,我的做法,即使在我的家用机器上,已经为我自己的用户默认运行鱼壳,但是根本不能运行它。 这是否值得担忧,如果是的话,为什么呢?
到目前为止,答案已经表明我不应该这样做,但在我看来并没有令人满意地解决这个问题。 实际上没有人只使用服务器上的默认软件,大量额外的程序安装在上面,没有太多的安全问题,那么为什么一个shell,特别是一些更加谨慎的东西呢? 理想情况下,我想顶部看到一个例子的情况下,安装一些非标准的shell作为默认的根将导致一个妥协,否则会发生,如果壳是其他types的程序(例如,一个图像转换程序)。
shell是一个关键的系统组件,在将非标准的或者没有广泛部署的shell用于面向生产和/或面向Internet的服务器时,我会感到非常不舒服。
重点是(几乎)每个shell都具有或多或less强大的脚本/编程能力,再加上吞噬和扩展,可能会导致非常意想不到的副作用(例如:参见shellshok)。
而且,掌握一个单一的,有据可查的shell(比如bash)已经相当困难,更别说使用多个不同的shell了。
我应该改变我的默认shell
您的问题和声明会有所不同,因为您正在更改生产服务器上的根目录的shell。 根据我的经验,我会build议答案是否定的。
安全影响
有风险。 你已经引入了一个新的行为,可能会分叉一个shell。 不适用于bash的漏洞可能适用于您的自定义shell。 你将不得不研究这个。 希望鱼是至less支持你的操作系统发行版,你不是手动安装它。
运营影响
更改根目录的默认shell是很麻烦的。 您应该设置testing系统,并引发需要单用户模式和本地/远程DR / BAKUP计划未考虑的任何其他故障情况的问题。 您可能会发现您的shell更换没有问题,但您将不得不考虑所有失败scenerios。
如果我正在走这条路,我会向我的操作系统支持提供者提出这个想法,如果我觉得我真的需要这样做的话,那么首先得到他们的想法和经验。 我是极简主义者,经验告诉我要尽可能保持简单和标准,特别是在有收入或SLA影响的环境中。