文章资讯 / 云服务器 / SSH安全三斧:改端口、上密钥、禁密码

SSH安全三斧:改端口、上密钥、禁密码

发布时间: 分类:云服务器 作者:188mi 来源:www.163.com,jianshu.com,blog.csdn.net 阅读:4
一组事实:你的Linux服务器开着默认22端口、允许root密码登录——此刻全球有数千个自动化扫描器正在批量探测这类目标。SSH暴力破解不是理论风险,是每天真实发生的事。好消息是SSH加固只需要三斧:改端口、上密钥、禁密码——一小时内完成,暴力破解直接失效。

第一斧:部署SSH公钥认证公钥认证是所有后续动作的前提——先确保有替代密码的登录方式,才能安全地关闭密码。操作:在本机用ssh-keygen生成ed25519类型的密钥对;把公钥上传到服务器的authorized_keys文件中;测试密钥登录确认不输密码就能登录。注意事项:私钥文件权限设为600;密钥设passphrase保护——私钥被盗没有passphrase也用不了;备份好私钥——丢了私钥又关了密码就被锁死了。

第二斧:改掉默认22端口默认端口是扫描器的第一目标——改端口不能阻止针对性攻击,但能过滤掉99%的自动化批量扫描。操作:编辑sshd_config把Port 22改成高位端口(如6022);同时在防火墙和安全组中放行新端口——别忘了这步,改了端口没开防火墙等于把自己锁死;重启前保留22端口双端口运行——确认新端口能登录后再关闭22。经验值:改端口后观察日志,22端口的暴力破解尝试从每天几百次降到零。

第三斧:关闭密码认证和root登录前两斧就位后最后一斧釜底抽薪:PasswordAuthentication设为no——关闭密码认证只允许密钥登录;PermitRootLogin设为no——禁止root直接登录。这两项生效后暴力破解在数学上就不可能了。关闭前确认:至少一个普通用户的密钥登录已验证、sudo权限已配好、当前SSH会话保持不断开——出问题还能救。关闭后立即测试新开终端能否正常登录。

加分项:Fail2ban自动封禁部署Fail2ban——自动监控SSH日志,检测到多次失败登录后自动封禁来源IP。配置建议:maxretry设为3、bantime设为3600、加入自己常用IP的白名单。Fail2ban和三斧的配合:三斧是城墙(让攻击者进不来),Fail2ban是巡逻兵(持续巡逻,发现可疑动作立即处置)。

最后的安全清单密钥已部署且测试通过、端口已改且防火墙已放行、密码认证已关闭、root登录已禁用、Fail2ban已运行、密钥有passphrase、密钥文件有安全备份、日志定期审查——八条全勾,你的SSH安全就在99%的服务器之上。三斧是投入产出比最高的第一步——今天就能做,做完立刻有效。

三斧之外的进阶加固如果三斧砍完还有余力,三个进阶动作把SSH安全推向极致:其一,双因素认证——SSH也可以配双因素,密钥加一个动态验证码,私钥被盗也登不上。其二,端口敲门——服务器只响应用正确顺序探测的端口,扫描器看到的是全部关闭,只有知道暗号的人才能触发SSH端口开放。其三,定期轮换密钥——密钥用久了泄露风险累积,季度或半年换一次,旧密钥立即吊销。三个动作依次递进,做到任何一个都比99%的服务器管理员更专业。