只要服务器IP暴露在公网,SSH端口上的暴力破解就从未停过。打开日志一看,每天成千上万次的密码尝试是常态。本文从实际出发,分享一套IDC运维常用的SSH加固方案,按「先止损、再加固、后审计」的顺序落地。## 第一步:先止损,改掉默认配置1. 禁用root直接登录root账号是暴力破解的首选目标。先创建普通用户并加入sudo组:bashuseradd -m opspasswd opsusermod -aG wheel ops然后在 /etc/ssh/sshd_config 中设置:PermitRootLogin no修改后记得 systemctl restart sshd,并且先别关当前连接,用新用户测试能登录再退出。2. 修改默认端口把22改成高位端口(如22022)能过滤掉绝大多数无脑扫描器。注意两点:一是改完要把新端口在防火墙里放行,二是云服务器安全组也要同步修改,别把自己锁在外面。3. 限制登录尝试次数MaxAuthTries 3LoginGraceTime 30配合 /etc/security/faillock.conf(或pam_tally2)做密码错误锁定,暴力破解的成本会大幅上升。## 第二步:Fail2ban 自动封禁Fail2ban 是IDC防爆破的标配工具,原理是监控日志、对触发规则的IP自动封禁。安装与配置(CentOS/RHEL 系):bashyum install -y epel-release fail2bansystemctl enable --now fail2ban新建 /etc/fail2ban/jail.local:ini[DEFAULT]bantime = 86400findtime = 600maxretry = 5[sshd]enabled = trueport = sshlogpath = %(sshd_log)saction = firewallcmd-ipset- maxretry 5:10分钟内5次失败就封- bantime 86400:封禁1天- 用 firewallcmd-ipset 而不是默认的 iptables action,封禁量大时性能更好常用管理命令:bashfail2ban-client status sshd # 查看封禁状态fail2ban-client set sshd unbanip 1.2.3.4 # 手动解封白名单: 把自己的办公IP加入 ignoreip,避免误封自己:iniignoreip = 127.0.0.1/8 你的办公IP## 第三步:彻底告别密码,改用密钥认证密码认证永远有被爆破的风险,密钥认证才是根治方案。客户端生成密钥对:bashssh-keygen -t ed25519 -C "ops@company" -f ~/.ssh/id_ed25519ssh-copy-id -p 22022 ops@服务器IP服务端只保留密钥认证:PubkeyAuthentication yesPasswordAuthentication noChallengeResponseAuthentication noUsePAM no重启sshd前,务必开第二个终端验证密钥能登录成功,否则改错配置就直接失联了——这是IDC运维血泪教训。## 第四步:纵深防御与审计1. 白名单限制来源只允许公司出口IP访问SSH端口:bashfirewall-cmd --permanent --remove-service=sshfirewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="公司IP/32" port port="22022" protocol="tcp" accept'firewall-cmd --reload2. 定期审计登录日志bash# 查看登录失败TOP10 IPgrep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -nr | head -10# 查看最近成功登录记录grep "Accepted" /var/log/secure | tail -203. 关注新增授权密钥写个脚本定期对比 /root/.ssh/authorized_keys 和 /home/*/.ssh/authorized_keys 的文件哈希,有变动就告警——防止被植入后门密钥。## 常见坑提醒1. 改端口前先加防火墙规则:顺序错了就远程失联,只能走IDC的IPMI/KVM控制台2. CentOS 7 和 8 的fail2ban配置略有差异:8系默认用firewalld后端,注意action选对3. 密钥文件权限:~/.ssh 要700,authorized_keys 要600,权限太松sshd会直接拒绝使用4. 别把所有鸡蛋放一个篮子:公司办公网最好保留一个备用跳板机,万一主链路出问题还能应急安全加固不是一次性的,建议每季度检查一次sshd配置和登录日志,把异常的IP段拉黑。公网上的暴力破解是7×24小时不间断的,你的防护也要跟上。
评论