Kousha Asked: 2010-02-28 20:10:00 +0800 CST2010-02-28 20:10:00 +0800 CST 2010-02-28 20:10:00 +0800 CST 远程根登录 772 我知道您为保护服务器所做的第一件事就是禁止远程 root 登录。 密码很弱;人们如何看待只允许通过 ssh 密钥或其他无密码方法进行 root 登录。 哪些方法是最好的?最好不要冒险吗?是否使用辅助帐户进行 ssh-ing 并使用su -真的增加了任何安全性? serverfault.com 上的人如何访问远程服务器上的根目录? linux security login ssh root 4 个回答 Voted Jim Dennis 2010-02-28T22:48:11+08:002010-02-28T22:48:11+08:00 在大多数情况下,实际上禁用远程 root 登录几乎没有什么好处。它略微有助于执行管理员通过自己的帐户登录并在su必要时进行 root 的策略(或sudo可能与sudosh...一起使用,具体取决于您的策略)。 创建极长且繁琐的 root 密码(只要您还没有使用古老的 DES+12 位盐哈希作为密码就有效)在执行此类策略方面同样有效。 我熟悉的一个站点有一个系统,其中为每个主机随机生成唯一密码,存储在数据库中,然后推送到系统。管理员需要使用ssh他们的普通帐户,并且sudo对于大多数操作。但是,他们可以通过基于 SSL 的内部 Web 服务访问 root 密码(这进一步需要他们的 RSA SecurID 令牌和 PIN)。获取根密码需要输入理由(通常是指向 Remedy(TM) 票号的链接)并在定期审核的地方进行访问。直接使用 root 密码的几个可接受的原因之一是在系统fsck在引导过程中停止的情况下......和sulogin需要真正的 root 密码才能手动运行文件系统检查和修复过程。(有一些关于替代方法的讨论 --- 这对于 Linux 来说相对容易,但是当您尝试扩展您的过程以解决许多遗留的 HP-UX、AIX 和较旧的 SunOS 和 Solaris 系统时变得更加困难在那种环境下仍在生产中)。 在某些极端情况下,需要 root 密码 --- 或者至少是最好的替代方案。保持它可用,同时使其对您可以预期的各种威胁具有足够的鲁棒性通常是您的最佳策略。 我知道的另一个网站有一个相当优雅的去中心化账户管理方法。他们有 user-* 和 sudo-* 包(想想 RPM),它们使用正常的包管理程序和自动化基础设施安装到系统中。在他们的情况下, sudo-* 包依赖于相应的 user-* 包。这很好,因为它允许您拥有具有本地化帐户的机器集群(所有帐户都是管理员、开发人员、支持人员或“无头”帐户),并消除了对 LDAP/NIS 或其他网络身份和身份验证服务的依赖。(这减少了系统之间的耦合,使它们更加健壮)。 有人认为我喜欢这种方法是因为它提供了灵活性。任何sudo有权访问的人都可以发出命令来添加普通用户或其他sudo用户帐户。因此,如果我正在处理票证,任何已经可以访问系统的人都可以轻松地给我访问权限。当一张将我添加到某个中央数据库中的某个访问控制列表的票证通过一些集中的批准过程并最终将更改传播回相关系统时,没有任何延迟。系统上的任何授权sudo人员都可以授予我访问权限,然后将我删除。(是的,如果我是邪恶的,他们游戏我sudo我可以恶意修改内容以保留访问权限……事实上,作为普通用户,我可以做一些事情来保留访问权限。然而,这并不是他们担心的威胁。我的访问仍然仅限于总体上相对较少数量的系统;因此,与我见过的大多数类似方案相比,被盗帐户的影响仍然有限。 Alex 2010-02-28T20:19:54+08:002010-02-28T20:19:54+08:00 如果您禁用远程 root 访问权限,则可以防止远程攻击者直接获得 root 权限——他们必须破坏另一个帐户,获得对机器的访问权限,然后尝试获得对 root 的访问权限。这是一个额外的步骤。 通常,root 被禁用以进行远程访问。苏工作得很好。如果某些东西真的坏了,总是可以直接访问盒子来修复它。 如果您想更严格 - 只需完全禁用 root,这就是 sudo 的用途。同样,通过这种方法,您仍然可以通过切换到单用户模式来获得 root 访问权限 - 就像 Ubuntu。虽然,根据他们的文档,我相信他们为此使用了修补过的 init。 此外,您可以设置 idle 以启动空闲用户,以防他们的终端保持打开状态,并且 PC 也打开。您可以强制所有用户使用密钥,但密钥管理可能很困难。 一个单一的直通日志主机作为防风玻璃类型的系统也强制增加了一层保护和审计跟踪。 mdpc 2010-02-28T22:25:37+08:002010-02-28T22:25:37+08:00 我建议您将系统设置为仅在控制台上允许 root 访问。 否则,使用 sudo 和密码选项,允许选定的用户访问 priv'd 命令。顺便说一句,如果您愿意,可以将 sudo 设计为将用户帐户限制为某些命令。Sudo,在系统日志中留下一个“标记”,表明它被使用过。sudo 比 su 好,因为 root 密码不会被泄露。因此,您可以更改 root 密码,并且使用 sudo 的用户不会更明智。 允许使用 sudo 访问 priv'd 命令应伴随强制定期密码更改,其频率取决于环境。 drfrog 2010-02-28T20:16:21+08:002010-02-28T20:16:21+08:00 永远不允许root 将系统设置为仅允许通过密钥访问,无需密码 然后为允许通过 root 帐户进行更改的用户设置 sudo
在大多数情况下,实际上禁用远程 root 登录几乎没有什么好处。它略微有助于执行管理员通过自己的帐户登录并在
su
必要时进行 root 的策略(或sudo
可能与sudosh
...一起使用,具体取决于您的策略)。创建极长且繁琐的 root 密码(只要您还没有使用古老的 DES+12 位盐哈希作为密码就有效)在执行此类策略方面同样有效。
我熟悉的一个站点有一个系统,其中为每个主机随机生成唯一密码,存储在数据库中,然后推送到系统。管理员需要使用
ssh
他们的普通帐户,并且sudo
对于大多数操作。但是,他们可以通过基于 SSL 的内部 Web 服务访问 root 密码(这进一步需要他们的 RSA SecurID 令牌和 PIN)。获取根密码需要输入理由(通常是指向 Remedy(TM) 票号的链接)并在定期审核的地方进行访问。直接使用 root 密码的几个可接受的原因之一是在系统fsck
在引导过程中停止的情况下......和sulogin
需要真正的 root 密码才能手动运行文件系统检查和修复过程。(有一些关于替代方法的讨论 --- 这对于 Linux 来说相对容易,但是当您尝试扩展您的过程以解决许多遗留的 HP-UX、AIX 和较旧的 SunOS 和 Solaris 系统时变得更加困难在那种环境下仍在生产中)。在某些极端情况下,需要 root 密码 --- 或者至少是最好的替代方案。保持它可用,同时使其对您可以预期的各种威胁具有足够的鲁棒性通常是您的最佳策略。
我知道的另一个网站有一个相当优雅的去中心化账户管理方法。他们有 user-* 和 sudo-* 包(想想 RPM),它们使用正常的包管理程序和自动化基础设施安装到系统中。在他们的情况下, sudo-* 包依赖于相应的 user-* 包。这很好,因为它允许您拥有具有本地化帐户的机器集群(所有帐户都是管理员、开发人员、支持人员或“无头”帐户),并消除了对 LDAP/NIS 或其他网络身份和身份验证服务的依赖。(这减少了系统之间的耦合,使它们更加健壮)。
有人认为我喜欢这种方法是因为它提供了灵活性。任何
sudo
有权访问的人都可以发出命令来添加普通用户或其他sudo
用户帐户。因此,如果我正在处理票证,任何已经可以访问系统的人都可以轻松地给我访问权限。当一张将我添加到某个中央数据库中的某个访问控制列表的票证通过一些集中的批准过程并最终将更改传播回相关系统时,没有任何延迟。系统上的任何授权sudo
人员都可以授予我访问权限,然后将我删除。(是的,如果我是邪恶的,他们游戏我sudo
我可以恶意修改内容以保留访问权限……事实上,作为普通用户,我可以做一些事情来保留访问权限。然而,这并不是他们担心的威胁。我的访问仍然仅限于总体上相对较少数量的系统;因此,与我见过的大多数类似方案相比,被盗帐户的影响仍然有限。如果您禁用远程 root 访问权限,则可以防止远程攻击者直接获得 root 权限——他们必须破坏另一个帐户,获得对机器的访问权限,然后尝试获得对 root 的访问权限。这是一个额外的步骤。
通常,root 被禁用以进行远程访问。苏工作得很好。如果某些东西真的坏了,总是可以直接访问盒子来修复它。
如果您想更严格 - 只需完全禁用 root,这就是 sudo 的用途。同样,通过这种方法,您仍然可以通过切换到单用户模式来获得 root 访问权限 - 就像 Ubuntu。虽然,根据他们的文档,我相信他们为此使用了修补过的 init。
此外,您可以设置 idle 以启动空闲用户,以防他们的终端保持打开状态,并且 PC 也打开。您可以强制所有用户使用密钥,但密钥管理可能很困难。
一个单一的直通日志主机作为防风玻璃类型的系统也强制增加了一层保护和审计跟踪。
我建议您将系统设置为仅在控制台上允许 root 访问。
否则,使用 sudo 和密码选项,允许选定的用户访问 priv'd 命令。顺便说一句,如果您愿意,可以将 sudo 设计为将用户帐户限制为某些命令。Sudo,在系统日志中留下一个“标记”,表明它被使用过。sudo 比 su 好,因为 root 密码不会被泄露。因此,您可以更改 root 密码,并且使用 sudo 的用户不会更明智。
允许使用 sudo 访问 priv'd 命令应伴随强制定期密码更改,其频率取决于环境。
永远不允许root
将系统设置为仅允许通过密钥访问,无需密码
然后为允许通过 root 帐户进行更改的用户设置 sudo