![为什么要更改默认 ssh 端口?](https://linux22.com/image/48238/%E4%B8%BA%E4%BB%80%E4%B9%88%E8%A6%81%E6%9B%B4%E6%94%B9%E9%BB%98%E8%AE%A4%20ssh%20%E7%AB%AF%E5%8F%A3%EF%BC%9F.png)
我注意到很多管理员更改了默认 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 一样。