就 SSH 而言,保护我的 EC2 服务器的最佳方法是什么?

就 SSH 而言,保护我的 EC2 服务器的最佳方法是什么?

我有一个 Amazon ec2 实例,好奇我是否应该更改用户名(默认是ubuntu)?

由于您需要一个公共 SSH 密钥才能访问服务器,我认为您不需要,但事实仍然存在 - 我应该更改该服务器的用户名吗?

答案1

除非您已在服务器上禁用用户/密码身份验证,否则我建议更改它。从安全角度来看,拥有一个身份验证组件将使它更容易。

设置 SSH 密钥认证

User@Host:~$ ssh-keygen -t rsa -b 4096

生成密钥后,您需要执行以下操作:

User@Host:~$ ssh-copy-id <username>@<host>

然后,您将需要在禁用密码验证之前验证密钥是否有效。

User@Host:~$ ssh <username>@<host>

系统应提示您输入创建密钥时设置的密码。如果您输入了密码并连接到服务器,您现在可以禁用密码验证。

/etc/ssh/sshd_config通过更改以下行来修改您的:

ChallengeResponseAuthentication no
PasswordAuthentication no
UsePAM no

此后你需要重新加载 SSH 服务器

User@Host:~$ /etc/init.d/ssh reload

答案2

如前所述,从安全角度来看,从“默认”转移几乎总是一个好主意。将用户名从 ubuntu 更改为其他用户名可能会阻止未经授权的访问。但是,每个系统都有一个“root”帐户,以此为例,您可以为您的机器/用户提供其他安全措施。

  1. 确保 root 登录已被禁用。
  2. 防止计算机上的用户使用密码登录。(这在目标用户名已知的情况下尤其重要)
  3. 安装一种禁止暴力登录尝试的方法(失败2ban是一个不错的选择)
  4. 更改您的服务器端口号。
  5. 白名单比黑名单好。如果你能告诉你的 SSH 服务器哪些 IP 可以连接,你就能大大减少攻击。(这可能很复杂,而且将来会造成问题,所以如果你走到这一步,请阅读并做好准备)

相关内容