VPS如何有效阻止暴力破解尝试?
| 防护方法 |
实现工具 |
主要功能 |
适用场景 |
| 修改SSH端口 |
sshdconfig |
避免默认端口扫描 |
所有VPS用户 |
| 禁用root登录 |
sshdconfig |
防止最高权限被攻击 |
生产环境服务器 |
| 密钥认证 |
ssh-keygen |
替代密码验证 |
安全性要求高的场景 |
| 防火墙配置 |
iptables/UFW |
限制端口访问 |
需要精细控制流量的用户 |
| 自动防护工具 |
fail2ban/DenyHosts |
实时监控并封禁恶意IP |
频繁遭受攻击的服务器 |
VPS如何有效阻止暴力破解攻击?五种实用方法保护服务器安全
暴力破解攻击是VPS面临的主要安全威胁之一,攻击者通过不断尝试用户名和密码组合来获取服务器访问权限。为了保护您的服务器数据安全,下面介绍五种有效的防护方法。
主要防护方法清单
| 序号 |
方法名称 |
防护效果 |
实施难度 |
| 1 |
修改SSH默认端口 |
避免自动化扫描 |
简单 |
| 2 |
禁用root用户远程登录 |
防止最高权限泄露 |
简单 |
| 3 |
使用SSH密钥认证 |
彻底杜绝密码破解 |
中等 |
| 4 |
配置防火墙规则 |
精细化控制访问 |
中等 |
| 5 |
部署自动防护工具 |
实时主动防御 |
较复杂 |
分步骤详细操作流程
步骤一:修改SSH默认端口
操作说明:将默认的22端口改为非标准端口,有效避免自动化扫描工具的探测。
使用工具提示:使用vim或nano编辑器修改sshdconfig文件
# 编辑SSH配置文件
vim /etc/ssh/sshdconfig
找到并修改端口配置
原内容:
Port 22
修改为:
Port 2222
Port 22 # 临时保留,测试成功后删除
重启SSH服务
systemctl restart sshd.service
验证新端口连接
ssh -p 2222 username@serverip
步骤二:禁用root用户远程登录
操作说明:防止攻击者直接针对拥有最高权限的root账户进行破解。
使用工具提示:修改sshd
config文件中的认证配置
# 编辑配置文件
vim /etc/ssh/sshd
config
修改以下配置项
PermitRootLogin no
创建普通用户并授权
useradd -m -s /bin/bash myuser
passwd myuser
usermod -aG sudo myuser
重启SSH服务
systemctl restart sshd
步骤三:配置SSH密钥认证
操作说明:使用密钥对替代密码认证,从根本上防止暴力破解。
使用工具提示:在本地生成密钥对,将公钥上传到服务器
# 本地生成密钥对
ssh-keygen -t rsa -b 4096 -C "youremail@example.com"
将公钥上传到服务器
ssh-copy-id -i ~/.ssh/idrsa.pub -p 2222 myuser@serverip
修改sshd
config禁用密码登录
PasswordAuthentication no
步骤四:配置防火墙规则
操作说明:使用防火墙限制对SSH端口的访问,可设置IP白名单或连接频率限制。
使用工具提示:使用UFW或iptables配置防火墙
# 使用UFW配置(Ubuntu/Debian)
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 2222/tcp
启用UFW
sudo ufw enable
或者使用iptables配置连接频率限制
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 22 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
步骤五:部署自动防护工具
操作说明:安装fail2ban或DenyHosts,自动监控日志并封禁恶意IP。
使用工具提示:使用包管理器安装防护工具
# 安装fail2ban(Ubuntu/Debian)
apt update
apt install fail2ban -y
创建自定义配置
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
编辑fail2ban配置
vim /etc/fail2ban/jail.local
配置示例
[DEFAULT]
bantime = 3600
findtime = 600
maxretry = 5
[sshd]
enabled = true
port = 2222
logpath = /var/log/auth.log
常见问题及解决方案
| 问题 |
原因 |
解决方案 |
| 修改端口后无法连接SSH |
防火墙未开放新端口或配置错误 |
检查防火墙规则,确保新端口已开放;临时保留22端口作为备用 |
| fail2ban无法正常启动 |
配置文件语法错误或依赖缺失 |
检查jail.local文件语法,查看系统日志定位具体错误 |
| 密钥登录失败 |
文件权限设置不正确或公钥未正确安装 |
设置.ssh目录权限为700,authorized_keys文件权限为600 |
| 日志中出现大量认证失败记录 |
服务器正在遭受暴力破解攻击 |
立即启用fail2ban,检查并加强密码策略 |
| 防护工具误封正常IP |
配置过于严格或IP被共享使用 |
调整maxretry参数,添加可信IP到白名单 |
通过以上方法的组合使用,您可以显著提升VPS的安全性,有效抵御暴力破解攻击。建议根据实际需求选择适合的防护方案,并定期检查服务器安全状态。
发表评论