CentOS VPS服务器SSH暴力破解防护:防火墙+密钥双保险配置
在CentOS VPS服务器的日常运维中,SSH(安全外壳协议)服务常因远程管理的便利性,成为黑客暴力破解的重点目标。一旦密码被攻破,服务器可能面临数据窃取、恶意程序植入等风险。本文将结合实际运维经验,分享防火墙与密钥认证双保险的配置方法,助你筑牢VPS服务器的SSH安全防线。
去年接触过一家外贸企业的运维案例,其CentOS VPS服务器因未开启SSH防护,3天内被记录到2000+次失败登录尝试,最终一个弱密码账户被攻破,导致客户订单数据泄露。这正是SSH暴力破解的典型危害——攻击者通过自动化工具反复尝试常见密码,一旦命中即可接管服务器。
如何判断VPS服务器是否正在遭受SSH暴力破解?最直接的方法是查看系统日志。在CentOS中,SSH登录记录存放在/var/log/secure文件里。执行命令:
cat /var/log/secure | grep sshd | grep Failed
如果输出中频繁出现“Failed password”且来源IP分散(例如同时出现123.45.67.89、98.76.54.32等不同IP),基本可判定服务器正在遭受暴力破解攻击。
要彻底解决这一问题,需构建“防火墙限制访问+密钥认证替代密码”的双重防护体系。
第一步:用防火墙限制SSH访问源
CentOS默认使用firewalld管理防火墙,通过限制SSH服务的访问来源,可大幅减少暴力破解的攻击面。具体操作如下:
1. 检查防火墙状态:执行`systemctl status firewalld`,若显示“inactive”,用`systemctl start firewalld`启动服务;
2. 允许SSH服务通过:执行`firewall-cmd --permanent --add-service=ssh`,确保合法连接能通过防火墙;
3. 限定信任IP段:例如仅允许公司内网192.168.1.0/24访问,执行命令:
firewall-cmd --permanent --add-rich-rule="rule family='ipv4' source address='192.168.1.0/24' service name='ssh' accept"
4. 生效配置:执行`firewall-cmd --reload`,非信任IP此后将无法连接服务器的SSH服务。
第二步:用密钥认证替代密码登录
密码认证的本质是“猜答案”,而密钥认证则是“对暗号”,安全性更高。配置步骤如下:
1. 生成密钥对:在本地电脑执行`ssh-keygen -t rsa`,按提示设置保存路径(默认~/.ssh/id_rsa)和密码(可留空简化登录,但建议设置增强私钥安全),生成后得到私钥(id_rsa)和公钥(id_rsa.pub);
2. 上传公钥到服务器:执行`ssh-copy-id username@server_ip`,输入服务器密码后,工具会自动将公钥写入服务器的~/.ssh/authorized_keys文件;
3. 禁用密码认证:编辑服务器的SSH配置文件`/etc/ssh/sshd_config`,找到并修改以下两行:
PubkeyAuthentication yes # 启用密钥认证
PasswordAuthentication no # 禁用密码认证
4. 重启SSH服务:执行`systemctl restart sshd`,此后仅能通过私钥登录,暴力破解密码将完全失效。
某科技公司采用上述双保险方案后,其CentOS VPS服务器的SSH失败登录记录从日均500+次骤降至0,未再出现因暴力破解导致的安全事件。需要注意的是,日常运维中还应定期更新系统补丁、监控/var/log/secure日志,并备份好私钥(丢失后将无法登录服务器)。
通过防火墙限制访问源,结合密钥认证替代密码登录,相当于为CentOS VPS服务器的SSH服务上了两把可靠的“安全锁”。掌握这两种方法,能有效提升VPS服务器的远程管理安全性,让运维工作更省心。