我注意到很多管理员更改了默认的 ssh 端口。
这样做有什么合理的理由吗?
答案1
它并不像某些人声称的那样有用,但它至少可以减少对日志文件的影响,因为许多暴力登录尝试仅使用默认端口,而不是扫描以查看 SSH 是否在其他地方监听。不过,有些攻击会在其他地方扫描 SSH,因此它并不是灵丹妙药。
如果您的服务器将成为某种共享主机,而不仅仅是满足您的项目需求,那么使用非默认端口可能会很麻烦,因为当用户忘记并且他们的客户端程序无法连接到端口 22 时,您将不得不一遍又一遍地向用户解释!
在非标准端口上使用 SSH 的另一个可能问题是,如果您遇到设置了限制性传出过滤器的客户端,该客户端无法连接到您的自定义端口,因为他们的过滤器仅允许端口 22、53、80 和 443 作为新传出连接的目的地。这种情况并不常见,但肯定不是闻所未闻。类似地,一些 ISP 可能会在通常预期的端口(端口 443 或 HTTPS、SSH 的 22 等)以外的端口上看到加密流量,这是试图隐藏 P2P 连接并以不方便的方式限制(或阻止)连接的尝试。
我个人将 SSH 保持在标准端口上以方便使用。只要采取通常的预防措施(强密码/密钥策略、限制 root 登录等),就不必担心,并且当您受到暴力攻击时,日志文件增长问题可以通过使用 fial2ban 等工具来缓解,这些工具可以暂时阻止在给定时间内提供过多错误身份验证凭据集的主机。
无论你选择什么端口,如果你确实要放弃 22,请确保它低于 1024。在大多数类 Unix 设置中,在其默认配置中,只有 root(或 root 组中的用户)可以监听低于 1024 的端口,但任何用户都可以监听更高的端口。在更高的端口上运行 SSH 会增加恶意(或被黑客入侵)用户设法破坏你的 SSH 守护程序并将其替换为他们自己的或代理的机会。
答案2
这是一种简单(但出奇有效)的形式通过隐蔽性实现安全。
如果您的 SSH 服务器不在端口 22 上,则那些扫描整个互联网寻找默认帐户弱密码的人发现它的可能性就小得多。如果您扫描整个网络,您就无法检查所有 64k 个可能的端口来查找 SSH 服务器。
然而,如果有人主动针对你,那么它就没有任何好处,因为简单的一次性nmap
扫描就会揭示它实际运行的端口。
答案3
为了真正避免暴力攻击,遵循以下步骤非常重要:
- 安装denyhosts或fail2ban
- 限制 ssh 端口每秒的连接数
- 修改 ssh 端口
- 拒绝 root 登录
- 启用密钥验证而非密码验证
答案4
使用非标准 ssh 端口需要更多的解释和文档,以及回答“我无法登录”的电子邮件。
我认为好处在非标准港口比它造成的问题更重要:
- 99.9999% 的暴力攻击都是由机器人执行的,它们只寻找端口 22,从不浪费时间尝试发现非标准端口。暴力攻击和反制措施如下拒绝主机或者失败2ban消耗资源,只需在非标准端口上运行 ssh 服务器即可节省这些资源。
- 您将摆脱所有有关机器人试图闯入您的系统的无用报告。如果任何 IP 出现在失败登录报告中,则很可能是人类。
此外,如果你想要更卑鄙,你可以运行一个假的 sshd(使用拒绝用户 *) 在标准端口 22 上,而你的常规 sshd 在端口 54321 上运行。这将确保所有机器人和入侵者都会永远尝试登录到拒绝所有登录的服务,因为没有人会想到尝试找到你的真实的sshd 服务。
我的看法。