Ubuntu 上的 Sudo 访问

Ubuntu 上的 Sudo 访问

我对 Linux 和系统管理员领域都很陌生,所以我正在寻找一些建议和一些答案。我设置了一个运行 Ubuntu 12.04 的 EC2 实例,并通过密钥对进行 SSH 连接。

首先,我通读了Ubuntu 用户管理页面但它让我有几个问题。我在页面上注意到了这一点

Sudo 允许授权用户使用自己的密码暂时提升其权限,而不必知道属于 root 帐户的密码。

当我运行 sudo 命令时,使用 SSH 访问服务器后不会提示我输入密码。我读到不要将数据库访问密码(例如 PHP 和 MySQL)存储在纯文本文件中,而是使用 .cnf 文件并将权限设置为 600。如果有人设法进入我的服务器,他们所要做的就是输入密码,sudo vi /path/to/cnf然后他们就可以查看密码。这样做的目的是假设我有 sudo 的密码吗?

  1. 考虑到默认情况下我没有密码,我是否应该为 sudo 添加密码?

  2. 考虑到我使用 UFW 来限制对端口 22 的访问并且使用密钥对,那么如果有人能够通过 SSH 进入我的服务器,风险有多大?

  3. 因为我使用 EC2 设置了我的 Ubuntu 服务器,所以我看到的所有关于添加/更改密码的资料都说默认情况下使用设置时设置的密码。我实际上没有设置任何东西。一切都是通过 AWS 预先配置的。这是个问题吗?

答案1

对于能够使用 SSH 的人来说,风险有多大

风险确实很小。 看看这个问题您可以采取一些措施来尽量减少暴力破解尝试的影响。

我应该添加密码吗?

您的帐户有一个密码,但是 sudo 已通过以下配置设置配置为不提示您。參考 如果您通过密钥进行所有身份验证,则此设置在大多数情况下都适用。NOPASSWD如果您希望得到提示,可以从此文件中删除。

# ubuntu user is default user in cloud-images.
# It needs passwordless sudo functionality.
ubuntu ALL=(ALL) NOPASSWD:ALL

答案2

首先是一些常规安全提示:

  • 使用 Key 登录 - 你在这方面做得很好
  • 使用大密钥 - 例如生成一个 4k rsa 密钥(可能当前的是 1k 或 2k
  • 使用强密码作为密钥 - 你应该这样做。如果我能得到你未受保护的无密码密钥……一切都没有意义
  • 将 ssh 移至更高的端口 - 例如 12322 - 这将有助于探测服务。并且不要忘记在安全组中打开端口
  • 监控服务器的运行情况 - fail2ban 是一款非常棒的工具
  • 禁用密码登录(其他回复中有说明)
  • 实现 AllowUsers/AllowGroups 以仅允许特定用户(并且 root 不是其中之一) - 再加上积极的 fail2ban 配置,这几乎是一个杀手。

现在问题是:

对于能够使用 SSH 的人来说,风险有多大

没什么,只要设置一些安全措施即可

我应该添加密码吗?

是的,这很好,但并不是严格强制使用类似的东西

sudo 密码 ubuntu

会让你在不知情的情况下更改密码。

NOPASSWD 表示任何命令都可以在无需密码的情况下执行。是的,我经常使用它,但只在我随身携带的机器上(例如笔记本电脑)。建议在设置已知(复杂)密码后将其删除。

相关内容