如果我更改了Linux服务器上的root密码,如果他们为root用户创build了一个SSH authorized_key,还能访问root吗?

我甚至不确定我是否问得对。 任何时候有人提到改变root密码,他们提到改变/etc/passwd ,或者只是使用passwd命令,但是我从来没有听说过必须在authorized_keys文件中改变它。 我在哪里可以find这种情况,以及如何安全地删除一个条目或者在不引起破坏的情况下更改这个条目? 谢谢!

是。 您需要删除用户的公用SSH密钥才能完全删除访问权限。 如果你只是试图删除一个用户的访问权限,这有点棘手。 希望你已经使用了独立的私钥,否则你将不得不重新创build文件并将公钥分发给授权用户。

要删除条目,您需要编辑authorized_keys文件。 如果这是您Linux用户的root用户,则可以在/root/.ssh/authorized_keysfind该文件。 您需要删除包含您要删除的用户的公钥的行。 不幸的是,没有简单的方法可以知道没有该用户公钥的副本的情况。

是; 正因为这个原因,允许人们以“根”的身份入侵,这被认为是不好的做法。 你的机器可能应该禁用root的ssh,并使用诸如“sudo”之类的东西来提供对谁可以做根的访问控制,这样你就不需要发出root密码或者任何等同的东西。

离职者的帐户可以简单地被禁用,你可以保证他们不能回来(除非他们已经离开了一些后门,这是你不能做任何事情)。

我们使用ldap目录存储用户,组和ssh密钥,然后按组限制“sudo”访问。

如果有人拥有root用户,除非您在访问之前进行的备份重新安装和恢复,否则确定他们无法恢复是非常困难的,或许是不可能的。 需要注意的是:首先是一个老技巧: /etc/passwd带有UID 0的任何额外用户。例如:

 root:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh ..etc... something-innocuous:0:42:foo:/:/bin/sh ..etc.. 

这个额外的用户将拥有一个单独的密码,并且一旦他们login,就会立即生效。

如果你安装了sudo ,运行visudo ,并检查有什么不寻常的地方。

您应该检查/etc/pam.conf/etc/pam.d (可能在其他地方?)以确保没有任何configurationPAM允许从特定IP或类似服务器向root进行无密码login。

你应该检查以root身份运行的额外进程,这可能会为特定的远程或本地用户提供一个root shell; 那个进程的可执行文件不再需要在磁盘上存在,或者不需要像启动进程时那样。

最后,如果你仍然认为这是不可能的:search挂载选项不包含setuid / setgid二进制文件的nosuid任何挂载点(使用类似于find -perm /6000东西)或者root可能运行的二进制文件改性。 哪些可能最近被修改/添加? 任何一位。 时间戳是微不足道的改变。

一个rootkit可能已经完成了上面的任何组合,并且可能已经修补了内核(也许在内存中,不用重启)来阻止你检测它的能力(从ps / netstat中移除东西等)

祝你好运。 🙂

如果您使用SSH密钥,则可能需要考虑完全禁用密码。

如果没有密码的话,SSH是无法攻破的,但是这两个就像是一个“或者”,所以如果你能破解,你就会被黑客入侵。

您可以通过在sshd_config文件中设置PermitRootLogin no来禁用通过ssh的rootlogin。 如果你有服务器交换数据或远程执行命令作为根(例如备份一些系统),那么你可能不想这样做。 如果是这样,凯尔克罗宁的答案是要走的路。

对于使用ssh的授权密钥来说,非常值得思考。

假设我可以在系统ZZ上生根,并将我的公钥添加到root的authorized_key。 现在,我的私钥更加有价值,因为现在它不仅可以让某人闯入我的所有账户,而且还允许在ZZ上有根。 当然,任何让ZZ根系的系统也是根植于自己的。

请注意,如果我将我的私钥放在其他人可以根的系统上,那么这些用户也可以在ZZ上获得root权限,因为他们可以轻而易举地获得我的私钥。

等等

等等

等等

这是一个非常危险的安全放松。 人们往往对自己的私钥放在哪里,因为它使得ssh变得容易得多。

我同意sudo没有root ssh,但是如果你这样做的话,你可能需要添加一些没有NIS / LDAP / NFS / etcnetworking依赖的特殊用户,这样你就可以在有networking的时候login了。 通常情况下,root可以在其​​他用户不能login的时候login,因为root用户的这些外部需求往往会减less。