AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 2930
Accepted
jldugger
jldugger
Asked: 2009-05-02 17:31:43 +0800 CST2009-05-02 17:31:43 +0800 CST 2009-05-02 17:31:43 +0800 CST

我们应该禁用root用户吗?

  • 772

我们是否应该删除 root 密码、禁用远程登录并基本上要求管理员使用 sudo 来执行管理操作?

替代文字

linux security login authentication root
  • 8 8 个回答
  • 17210 Views

8 个回答

  • Voted
  1. Best Answer
    C. K. Young
    2009-05-02T17:57:27+08:002009-05-02T17:57:27+08:00

    我所有的服务器都禁用了 root 帐户(sp_pwdp设置为*)。这是要求sudo所有 root 访问。[1] 这样做的目的是审核所有超级用户的活动,以便人们可以看到对系统做了什么。

    对于更核心的选项,您可以sudo写入日志文件(而不是syslog),并使文件仅追加(chattr在 Linux 或chflagsBSD 上使用)。这样,之后没有人可以编辑审计。

    [1] 我还有一个不运行 root shell 或从 root 进程执行 shell 转义的策略。(sudo sh -c '...'不过,它可以用于执行管道或重定向。)

    • 17
  2. Mihai Limbăşan
    2009-05-03T13:32:02+08:002009-05-03T13:32:02+08:00

    我强烈建议不要禁用 root 用户。禁用或限制 root 登录(通过 securetty和通过 sshd_config和通过 PAM以及通过你有什么)如果你的系统允许,限制 root 的权限或拆分 root 角色(类似于RSBAC的做法。)不要通过删除密码来禁用root帐户,否则将无法通过. 在 fsck 报告严重错误的情况下,我知道的所有 initscripts 都会使用它——这意味着如果根文件系统损坏,您将被锁定在系统之外。suloginsulogin

    澄清一下:通过“通过删除密码来禁用 root 帐户”,我的意思是各种机制最终以 ! 或 /etc/shadow 的密码字段中的 * 或类似内容。我的意思不是“更改 root 登录机制,以免提示您输入密码”。

    • 16
  3. Gert M
    2009-05-02T21:55:49+08:002009-05-02T21:55:49+08:00

    我在所有服务器上都启用了 root 帐户。所有管理员都有自己的用户,并且必须通过该用户登录。从那里他们切换到root。(root ssh 被禁用)

    保持低管理员数量。只有在该服务器上真正需要 root 访问权限的人才有密码。

    我不是 sudo 的粉丝。只为 root shell 执行“sudo bash”太容易了。我知道这可以被禁用,但为什么要打扰?只需限制可以执行管理员任务并相互交谈的用户。我们确实有一项政策,不允许 root 终端在无人看管的情况下打开。所以它是登录,su,做工作,注销。

    注意:我在一家相当小的公司(50 多名员工)工作,我们只有 2 个兼职管理员(1 个 windows/1 个 linux)。当您拥有更多数量级的用户时,这种做事方式可能不是最好的。我个人仍然不会使用 sudo。还有其他方法可以记录根活动。

    • 3
  4. pablasso
    2009-05-30T10:07:50+08:002009-05-30T10:07:50+08:00

    我只是禁用了 root 的 SSH 访问,并要求用户(通常只是开发人员)使用 ssh 密钥。字典攻击太多了,更改 SSH 端口对我们来说不是一个选项。

    这样您就不必相信任何人有能力编写一个好的密码。一旦进入,只有管理员拥有 sudo 的权限。

    • 3
  5. Benoit
    2009-05-30T09:34:47+08:002009-05-30T09:34:47+08:00

    禁用root密码是一个错误的“好主意”。在你需要它的那一天,你将真的需要它。(根据您的配置,您可能需要它以单用户模式登录为例)

    禁用 root 远程登录可能是相关的,但前提是您能够在本地登录。

    是的,sudo 应该安装在您的每一台服务器上。它很有用且易于配置。你为什么不想使用它?

    • 2
  6. Mike
    2014-10-10T21:10:31+08:002014-10-10T21:10:31+08:00

    我知道这个线程真的很老,但链接文章逻辑存在一些重大缺陷,我感觉“咆哮” - sudo 允许列入白名单和列入黑名单。不仅仅是链接文章中指定的黑色 - 这跳过了 AAA(身份验证、授权和审计)的概念 - su 和 sudo 允许分级身份验证和问责制。

    场景 1 管理员不小心将一些流氓代码引入系统,以 root 身份登录该代码具有完全访问权限,管理员可能永远不知道发生了什么。至少对于分级登录(例如 su/sudo),如果恶意代码尝试使用提升的权限,系统会提示管理员进行身份验证......如果它没有提升,那么它仅限于用户权限,这应该会导致最小的损害。

    场景 2 流氓管理员想要获取信息/进行更改。他们连接到控制台(物理控制台访问、HP iLo/类似或 vGuest 控制台访问),以 root 身份登录并做任何他们想做的事情。除非有用于获得控制台访问权限的指定帐户/访问卡,否则可能没有太多的审计线索。

    1. 确保他们真的是他们所说的那样。身份盗窃不是问题,身份验证才是问题。
    2. 检查他们的授权,只给他们当时需要的东西。分级授权允许他们在需要时提升。
    3. 审核所有内容,做好记录,让您知道谁、做了什么、何时何地。最好也是为什么
    • 2
  7. carlito
    2009-05-24T15:53:46+08:002009-05-24T15:53:46+08:00

    您应该要求每个人都对每个根命令使用 sudo 作为策略。从来没有理由运行“sudo bash”或类似的东西,这只是为了方便,由于无知,或掩盖自己的踪迹。

    如果您直接禁用对 root 帐户的登录,则会削弱您在出现严重问题时修复系统的能力。

    如果您无法说服您的管理员以自己的身份登录并为以 root 身份运行的每个命令运行 sudo,并且不能将其拆分为 shell,那么您将遇到没有技术解决方案的严重问题。

    • 1
  8. imz -- Ivan Zakharyaschev
    2011-05-21T21:03:40+08:002011-05-21T21:03:40+08:00

    Owl secure distribuion 的作者(和 Solar 设计师)有一个相反的、经过仔细论证的观点;例如,请参阅答案https://unix.stackexchange.com/questions/8581/which-is-the-safest-way-to-get-root-privileges-sudo-su-or-login/8660#8660陈述他们的主张。他们的观点也解决了审核超级用户操作(谁做了什么)的问题(基本上,解决方案是拥有多个不同名称的 root 用户)。

    • 1

相关问题

  • 在 SOHO 环境中实施的最佳 VPN 技术是什么?[关闭]

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve