开始;我不完全确定这是否是解决此问题的正确交换站点,但我找不到更好的站点 - 所以我无论如何都会在这里提问。
最近我开始思考ssh的安全性。我有一个Ubuntu虚拟机(或任何其他 Linux 发行版)在服务器上运行,我可以通过 ssh 连接到该服务器。为了开始保护远程计算机,我开始使用公钥/私钥用于身份验证。
更进一步,我想到了禁用 root 登录- 它有一个 24 个字符长的生成密码。
我现在的问题是:
- 我是否需要使用这样的密码禁用 root 登录?
- 这足以保证我的远程计算机的安全吗?如果不;
- 我还应该采取哪些其他步骤来保护我的远程计算机?
答案1
这足以保证我的远程计算机的安全吗?
这是错误的问题。没有绝对的安全,安全总是相对的。
它“足够安全”吗?也许吧,但为什么不增加更多的安全性,即使它“足够安全”。
我还应该采取哪些其他步骤来保护我的远程计算机?
完全禁用密码登录,那么您无需关心即使 24 个随机字符作为密码可能没问题,但它仍然比基于密钥的身份验证安全性低得多。
使用非标准端口。虽然这对有针对性的攻击没有帮助,但它将消除 >99% 的随机/自动攻击。即使您的密码很好并且攻击不会造成任何“真正的伤害”,它也会向您的日志文件发送垃圾邮件,并且您可能会错过真正的问题。
使用端口敲门。
使用
fail2ban
。这将使攻击变得更加困难,但由于攻击通常来自具有多个IP的僵尸网络,因此影响仍然有限。将用户权限限制在必要的最低限度。
如果可能,请使用防火墙按 IP(范围)限制连接。
考虑:您的服务器的安全性不仅仅是
ssh
。任何暴露在互联网上的服务都可能受到攻击,因此可以采取一些措施:- 让每个服务由不同的非特权用户运行
- 使用容器/虚拟机来分离进程。
- 使用防火墙仅允许访问您的服务所需的端口
- 随时保持所有软件最新。
- 请遵循您所使用的软件的安全公告。
查看Security SE 上的类似问题和解答了解更多信息。