国外VPS使用Linux sshd配置优化暴力破解防护实战
文章分类:更新公告 /
创建时间:2025-10-15
在使用国外VPS的过程中,暴力破解是绕不开的安全隐患。默认状态下的Linux sshd配置防护能力有限,通过针对性优化能显著提升服务器抵御暴力破解的能力。本文结合实际操作场景,分享一套可落地的防护方案。
暴力破解的典型迹象
登录国外VPS后,查看系统日志(如/var/log/auth.log或/var/log/secure)时,若发现短时间内大量来自不同IP的SSH登录失败记录,且时间间隔多在几秒内,这大概率是暴力破解攻击。此时服务器CPU和网络带宽也会出现异常波动——攻击者通过程序高频次尝试连接,持续占用系统资源。
攻击来源与方式分析
日志是定位攻击的关键工具。每条失败登录记录都包含尝试登录的IP地址、用户名及具体时间。通过在线IP查询工具可大致定位攻击来源的地理位置,若发现多个IP来自同一地区,可能是有组织的攻击。观察用户名规律也能发现线索:攻击者常使用"root""admin"等常见高权限账户尝试登录,这正是他们的主要目标。
sshd核心配置优化
1. 修改默认连接端口
SSH默认端口是22,攻击者会优先扫描此端口。编辑/etc/ssh/sshd_config文件,将"Port 22"修改为12345等非标准端口(建议选择1024以上的端口号)。修改后执行命令重启服务:
sudo systemctl restart sshd
2. 禁用root直接登录
root账户拥有最高权限,一旦被破解后果严重。在sshd_config中找到"PermitRootLogin yes",修改为"PermitRootLogin no",禁止root直接通过SSH登录。完成后同样需要重启sshd服务。
3. 限制登录尝试次数
借助PAM(可插拔认证模块)的pam_tally2模块限制尝试次数。先安装模块(部分系统需手动安装),然后编辑/etc/pam.d/sshd文件,添加以下内容:
auth required pam_tally2.so onerr=fail audit silent deny=3 unlock_time=600
account required pam_tally2.so
此配置表示允许3次登录尝试,失败3次后锁定账户10分钟(600秒)。
4. 启用密钥认证替代密码
密钥认证比密码更安全。本地执行ssh-keygen生成密钥对,将公钥内容复制到服务器~/.ssh/authorized_keys文件中。最后在sshd_config中把"PasswordAuthentication yes"改为"PasswordAuthentication no",彻底禁用密码登录。
防火墙辅助防护
仅优化sshd配置还不够,配合防火墙限制SSH端口访问能进一步提升安全。以iptables为例,添加以下规则只允许特定IP访问:
sudo iptables -A INPUT -p tcp -s 你的IP地址 --dport 修改后的SSH端口 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 修改后的SSH端口 -j DROP
规则生效后,只有指定IP能连接SSH端口,其他请求会被直接拒绝。
优化效果验证
完成所有配置后,需做两方面验证:一是持续观察系统日志,确认高频失败登录记录是否减少;二是用自己的设备通过新配置(新端口、密钥或普通账户)尝试登录,确保正常连接。若两者均无异常,说明防护优化已生效。
通过调整sshd核心参数、结合防火墙限制,能有效提升国外VPS的SSH防护能力。这套基于社区实践的优化方案,既保留了Linux系统的灵活性,又针对性解决了暴力破解痛点,是维护服务器安全的实用手段。