运行 SSH 服务器时的安全注意事项

运行 SSH 服务器时的安全注意事项

我正在尝试设置一个可以从家庭网络访问的 SSH 服务器仅有的,而不是互联网。

它运行的是 Ubuntu Linux。

我已经安装了该ssh软件包,我可以启动/停止 SSH 服务器,然后继续从位于同一网络上的另一台机器登录到计算机。

然而,在继续进行之前,我应该采取哪些安全措施?显然,设置安全密码是最佳选择。

我也很担心:如果有人知道服务器的 IP,他们能连接到它吗?我该如何禁用不是来自的连接192.168.*.*

答案1

您可以使用 UFW(简单防火墙)仅为某些 IP 地址打开端口 22(SSH)。

它可能类似于:

$ sudo ufw allow from 192.168.0.0/24 to any port 22 proto tcp

192.168.0.0/24位表示 IP 地址范围192.168.0.*- 即192.168.0.1包括192.168.0.255至。

有关详细信息,请参阅UFW 文档

答案2

然而,在继续进行之前,我应该采取哪些安全措施?显然,设置安全密码是最佳选择。

密钥比密码更安全,尤其是受密码保护的情况下。

其他内容(大多数在配置文件中设置):

总是一个好主意的事情:

  • 不允许 root 直接登录(您可以随时susudo之后登录)

  • 禁用您不需要的任何功能,/etc/ssh/sshd_config例如转发等。

  • sshd不需要的时候就不要运行。

防止 Internet 访问您的sshd

  • 如果可能的话,请在路由器的防火墙上阻止端口 22。使用iptables规则或ufw按照 @Greg Hendershott 的建议进一步执行此操作。

  • /etc/hosts_allow控制哪些 IP 可以访问服务器,并且您可以包含拒绝 IP 范围的行。

如果您稍后将其暴露在互联网上:

  • 如果可能的话,将端口从 22 更改为其他端口。这不会增加任何实际安全性,但会减少随机攻击。

  • 禁用 SSH 横幅,或将其更改为无法识别您身份的内容(您想在登录完成后执行此操作)。

  • 安装类似的东西fail2ban可以自动阻止连续多次登录失败的 IP。

  • 仅接受 SSHv2,如果我没记错的话,以前的版本有漏洞。我认为这是默认设置的。

相关内容