我知道允许通过 SSH 以 root 身份访问服务器是个坏主意(即允许通过 SSH 以 root 身份登录)。但另一方面呢?从以 root 身份登录的客户端计算机启动 SSH 连接有什么缺点吗?因此,类似这样的做法:
root@localhost$ ssh [email protected]
这会给客户端机器(本例中为本地主机)带来任何安全隐患吗?
更多背景信息:在我家网络的本地机器上(无法通过互联网访问),我有一个小型服务,它从机器本身收集信息,并通过 SSH 从远程服务器收集一些有限的信息。由于服务本身在本地机器上收集信息,因此它以 root 身份运行。在远程服务器上,它使用非 root 登录,只能访问它设置为收集的信息。现在我想知道,如果服务在与远程服务器建立 SSH 连接时放弃 root 权限(例如通过 runuser),是否有任何好处,或者这根本无关紧要,本地服务器也可以在本地机器上以 root 身份启动 SSH 连接。
谢谢!
答案1
信息收集过程root
可以将文件写入某个目录,root
然后非服务帐户可以将其复制到其他地方。这可能需要rename(2)
或等效操作,以便服务帐户不会复制半写文件(或者可能需要传输部分收集的数据?)。好处:
- 正如 @EEAA 指出的那样,SSH 客户端漏洞并没有得到解决
root
。 - 如果服务帐户文件传输相关代码出现问题,服务帐户无法清除
/etc/passwd
所有或任何内容。当然,它可能会杀死自己的主目录,但这是一个比访问什么要小得多的问题。(或者,无论一个笨手笨脚的管理员以服务帐户的身份做什么,还是拥有完全根访问权限...那是我刚才的生产数据库吗...)/var
root
- 了解如何设置和使用服务帐户可能会有所帮助。