为什么要更改默认 ssh 端口?

为什么要更改默认 ssh 端口?

我注意到很多管理员更改了默认 ssh 端口。这样做有什么合理的理由吗?

答案1

最可能的原因是让人们更难随机尝试暴力破解他们能找到的任何 SSH 登录。我的面向互联网的计算机使用默认的 SSH 端口,并且我的日志过去充满了这样的内容(摘自实际的日志文件):

sshd[16359]: Invalid user test from 92.241.180.96
sshd[16428]: Invalid user oracle from 92.241.180.96
sshd[16496]: Invalid user backup from 92.241.180.96
sshd[16556]: Invalid user ftpuser from 92.241.180.96
sshd[16612]: Invalid user nagios from 92.241.180.96
sshd[16649]: Invalid user student from 92.241.180.96
sshd[16689]: Invalid user tomcat from 92.241.180.96
sshd[16713]: Invalid user test1 from 92.241.180.96
sshd[16742]: Invalid user test from 92.241.180.96
sshd[16746]: Invalid user cyrus from 92.241.180.96
sshd[16774]: Invalid user temp from 92.241.180.96
sshd[16790]: Invalid user postgres from 92.241.180.96
sshd[16806]: Invalid user samba from 92.241.180.96

这几天我用拒绝主机阻止多次验证失败的 IP,但切换端口可能也同样容易;实际上,所有此类暴力攻击都不会费心扫描您的 sshd 是否正在侦听另一个端口,它们只会假设您没有运行某个端口并继续前进

答案2

不,这是一个默默无闻的安全战术。

如果您的 sshd 设置不足以应对仅尝试端口 22 的愚蠢脚本小子,那么无论如何您都会遇到问题。

更理性的反应是:

  • 确保您的用户使用难以猜测/暴力破解的良好密码
  • 禁用密码身份验证(至少对于重要帐户)并仅使用公钥身份验证
  • 注意 ssh 安全问题和升级

有些人可能还会对 sshd 写入系统日志的噪音感到烦恼,例如:

Jan 02 21:24:24 example.org sshd[28396]: Invalid user guest from 212.129.23.128
Jan 02 21:24:24 example.org sshd[28396]: input_userauth_request: invalid user guest [preauth]
Jan 02 21:24:24 example.org sshd[28396]: error: Received disconnect from 212.129.23.128: 3: com.jcraft.jsch.JSchException: Auth fail [preauth]
Jan 02 21:24:24 example.org sshd[28398]: Invalid user ubnt from 212.129.23.128
Jan 02 21:24:24 example.org sshd[28398]: input_userauth_request: invalid user ubnt [preauth]
Jan 02 21:24:24 example.org sshd[28398]: error: Received disconnect from 212.129.23.128: 3: com.jcraft.jsch.JSchException: Auth fail [preauth

然后,您可能会想要隐藏 sshd 端口或使用自动阻止解决方案(例如 DenyHosts、Fail2ban 或 BlockHosts)以增加信噪比再次。

但确实存在更好的替代方案。例如,您可以配置 syslog 守护进程,以便仅将 sshd 日志噪声写入 - 比如说 -/var/log/sshd-attempts.log并将信号(即剩余的 sshd 日志消息)写入/var/log/messages等。

应仔细考虑自动阻止工具的部署,因为增加安全相关系统的复杂性意味着也会增加风险开发。事实上,多年来,有几个拒绝服务漏洞为每个报告拒绝主机,失败2禁止块主机

答案3

更改SSH端口主要是安全剧院。它给你一种已经做了某事的模糊感觉。您已将 SSH 端口隐藏在门垫下。

如果您在互联网上运行 SSH 服务器,您会在日志中看到大量失败的登录尝试,这些尝试来自正在寻找愚蠢的弱密码的机器人,弱键以及服务器旧版本中的已知漏洞。失败的尝试无非就是:失败的尝试。就评估你的脆弱程度而言,它们完全无关。您需要担心的是成功的入侵尝试,但您不会在日志中看到这些内容。

更改默认端口将减少此类机器人的攻击次数,但这只会挫败最不成熟的攻击者,他们会被任何体面的安全措施(定期应用安全更新、相当强的密码或禁用密码身份验证)阻止。唯一的好处是减少了日志量。如果这是一个问题,请考虑类似的事情拒绝主机或者失败2禁止相反,限制连接速率,它也会对您的带宽有好处。

更改默认端口有一个主要缺点:它使您不太可能从防火墙后面登录。与随机的其他端口相比,防火墙更有可能让服务通过其默认端口。如果您没有运行 HTTPS 服务器,请考虑让 SSH 也侦听端口 443(或将传入的 TCP 请求从端口 443 重定向到端口 22),因为某些防火墙允许在端口 443 上无法解码的流量,因为它看起来就像 HTTPS 一样。

相关内容