远程root登录

Kou*_*sha 8 security linux ssh login root

我知道您为保护服务器所做的第一件事就是禁止远程 root 登录。

密码非常脆弱;人们认为只允许通过 ssh 密钥或其他无密码方法进行 root 登录。

哪些方法最好?只是不冒险是不是更好?使用辅助帐户进行 ssh-ing 并使用su -真的增加了任何安全性吗?

serverfault.com 上的人如何访问远程服务器上的 root 用户?

Jim*_*nis 9

在大多数情况下,实际上禁用远程 root 登录几乎没有什么好处。它在一定程度上有助于执行管理员通过他们自己的帐户登录并su根据需要 root(或sudo可能与sudosh...一起使用,具体取决于您的策略)的策略。

创建极长且繁琐的 root 密码(只要您不再使用古老的 DES+12 位盐哈希作为密码就有效)在执行此类策略方面同样有效。

我熟悉的一个站点有一个系统,其中为每个主机随机生成唯一的密码,存储在数据库中,然后推送到系统。管理员需要使用ssh他们的普通帐户,并sudo进行大多数操作。但是,他们可以通过基于 SSL 的内部 Web 服务访问 root 密码(这进一步需要他们的 RSA SecurID 令牌和 PIN)。获取 root 密码需要输入理由(通常是指向 Remedy(TM) 票号的链接)和定期审核的访问。直接使用 root 密码的少数可接受的原因之一是在fsck引导过程中系统停止的情况下......sulogin需要一个真正的 root 密码才能手动运行文件系统检查和修复过程。(有一些对此的替代方法的讨论 --- 这对于 Linux 来说相对容易,但是当您尝试扩展您的过程以解决许多传统的 HP-UX、AIX 和较旧的 SunOS 和 Solaris 系统时变得更加困难在那个环境中仍在生产中)。

在某些极端情况下需要 root 密码——或者至少是最好的替代方案。保持它可用,同时使其对您可以预期的各种威胁足够强大通常是您的最佳策略。

我知道的另一个网站有一种相当优雅的分散账户管理方法。他们有 user-* 和 sudo-* 包(想想 RPM),它们使用正常的包管理程序和自动化基础设施安装到系统中。在他们的情况下, sudo-* 包依赖于相应的 user-* 包。这很好,因为它允许您拥有具有本地化帐户(所有帐户都是管理员、开发人员、支持人员或“无头”帐户)的机器集群,并消除了对 LDAP/NIS 或其他联网身份和身份验证服务的依赖。(这减少了系统之间的耦合,使它们更加健壮)。

我喜欢这种方法的一个原因是它提供了灵活性。任何具有sudo访问权限的人都可以发出命令来添加普通用户或其他sudo用户帐户。因此,如果我正在处理票证,任何已经有权访问系统的人都可以轻松地授予我访问权限。当将我添加到某个中央数据库中的某个访问控制列表的票证通过某个集中的批准过程并最终将更改传播回相关系统时,没有任何延迟。sudo系统上的任何授权用户都可以授予我访问权限,然后将我删除。(是的,如果我是邪恶的,而他们玩弄我sudo我可以恶意修改内容以保留访问权限……事实上,我可以像普通用户一样做一些事情来保留访问权限,以免被删除。然而,这并不是他们担心的威胁。我的访问仍然仅限于相对较少的系统;因此,与我见过的大多数类似计划相比,被盗帐户的影响仍然更加有限。


小智 1

绝不允许root

将系统设置为仅允许通过密钥访问而无需密码

然后为允许通过 root 帐户进行更改的用户设置 sudo