TOP云提供高性价比云服务器租用,有中国内地/港澳台、海外等全球各地节点,TOP云国内云服务器只要有域名备案号就能直接用,无须重复备案;港澳台及海外云服务器不用备案,购买之后直接使用,省时省力省心。价格实惠,续费同价,2核2G5M仅需27元每月,8核8G50M仅需66元每月,更多配置套餐请进入下面网址了解:
TOP云总站云服务器:https://topyun.vip/server/buy.html
TOP云C站云服务器:https://c.topyun.vip/cart
在云服务器上防止暴力破解密码是保障系统安全的核心措施,尤其针对SSH、数据库、Web管理等关键服务。以下是系统化的解决方案,涵盖技术配置、监控策略和运维实践:
一、技术层面防御措施
1. 禁用密码认证(优先方案)
SSH 服务
# 编辑SSH配置文件
sudo nano /etc/ssh/sshd_config
修改以下参数:
PasswordAuthentication no # 禁用密码登录
PubkeyAuthentication yes # 启用密钥认证
ChallengeResponseAuthentication no # 禁用交互式认证
重启SSH服务:
sudo systemctl restart sshd
✅ 优势:彻底阻断密码爆破攻击,仅允许密钥登录(需提前配置SSH密钥)。
数据库服务(如MySQL/MariaDB)
-- 创建仅允许本地连接的用户(禁用远程密码登录)
CREATE USER 'admin'@'localhost' IDENTIFIED BY 'strong_password';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost';
⚠️ 注意:若需远程访问,应通过VPN或跳板机中转,而非直接开放数据库端口。
2. 强制使用复杂密码
Linux系统密码策略
# 安装并配置密码策略工具(如libpam-pwquality)
sudo apt install libpam-pwquality -y # Debian/Ubuntu
sudo yum install libpwquality -y # CentOS/RHEL
# 编辑PAM配置
sudo nano /etc/security/pwquality.conf
设置严格规则:
minlen = 12 # 最小长度12位
dcredit = -1 # 至少1个数字
ucredit = -1 # 至少1个大写字母
lcredit = -1 # 至少1个小写字母
ocredit = -1 # 至少1个特殊字符
数据库密码策略
MySQL 8.0+:使用VALIDATE_PASSWORD插件:
INSTALL PLUGIN validate_password SONAME 'validate_password.so';
SET GLOBAL validate_password.policy = 'STRONG';
SET GLOBAL validate_password.length = 12;
3. 部署Fail2Ban自动封禁
安装与配置
sudo apt install fail2ban -y # Debian/Ubuntu
sudo yum install fail2ban -y # CentOS/RHEL
针对SSH的防护规则
编辑配置文件:
sudo nano /etc/fail2ban/jail.local
添加以下内容:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log # Ubuntu/Debian
# logpath = /var/log/secure # CentOS/RHEL
maxretry = 3 # 允许最大失败次数
bantime = 1h # 封禁时长
findtime = 5m # 检测时间窗口
重启Fail2Ban:
sudo systemctl restart fail2ban
✅ 效果:自动封禁多次失败登录的IP(可结合iptables或firewalld)。
4. 限制访问IP(最小权限原则)
SSH限制
编辑/etc/ssh/sshd_config:
AllowUsers your_username@your_trusted_ip # 仅允许特定IP登录
# 或
AllowGroups ssh-users # 仅允许特定用户组
数据库限制
MySQL:通过GRANT语句限制IP:
GRANT ALL PRIVILEGES ON *.* TO 'user'@'192.168.1.100' IDENTIFIED BY 'password';
PostgreSQL:修改pg_hba.conf:
host all all 192.168.1.100/32 md5
二、网络层面防御措施
1. 更改默认端口
SSH端口修改
# 编辑SSH配置 sudo nano /etc/ssh/sshd_config
修改端口:
Port 2222 # 改为非标准端口(如2222)
重启SSH并更新防火墙:
sudo systemctl restart sshd
sudo ufw allow 2222/tcp # Ubuntu
sudo firewall-cmd --add-port=2222/tcp --permanent # firewalld
⚠️ 注意:需确保新端口可访问,且客户端连接时指定端口(ssh -p 2222 user@server)。
数据库端口修改
MySQL:默认3306 → 改为3307(需更新应用连接配置)。
PostgreSQL:默认5432 → 改为5433。
2. 使用VPN或跳板机隔离
方案:所有管理员通过VPN接入内网,再通过内网IP访问服务器。
工具推荐:
OpenVPN:开源VPN解决方案。
WireGuard:高性能VPN(配置简单)。
Jump Server:如Ansible Tower或自定义跳板机。
3. 启用云平台安全组
在云服务商控制台(如AWS/Azure/阿里云)配置安全组规则:
仅允许特定IP访问SSH/数据库端口。
禁止所有入站流量,仅放行必要端口(如HTTP/HTTPS、VPN端口)。
三、监控与应急响应
1. 实时监控登录行为
查看SSH登录日志
sudo tail -f /var/log/auth.log # Ubuntu/Debian
sudo tail -f /var/log/secure # CentOS/RHEL
使用工具集中监控
GoAccess:分析日志文件。
ELK Stack(Elasticsearch+Logstash+Kibana):可视化日志分析。
2. 设置告警机制
邮件告警(Fail2Ban集成)
编辑/etc/fail2ban/jail.local:
[sshd]
enabled = true
...
action = %(action_mwl)s # 发送邮件告警
配置邮件服务(如postfix或sendmail)。
短信/钉钉告警
使用云服务商的API(如阿里云云监控、腾讯云短信服务)。
3. 定期审计与漏洞扫描
检查弱密码:
# 检查系统中是否存在简单密码用户
awk -F: 'length($2) < 12 {print $1}' /etc/shadow扫描暴力破解痕迹:
grep "Failed password" /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr
四、高级防护方案
1. 双因素认证(2FA)
工具:Google Authenticator、Duo Security。
配置SSH 2FA:
sudo apt install libpam-google-authenticator -y google-authenticator # 生成二维码并配置
编辑/etc/ssh/sshd_config:
AuthenticationMethods publickey,keyboard-interactive:pam
2. 零信任架构
工具:BeyondCorp、Tailscale。
原则:默认不信任任何网络,所有访问需动态验证。
五、总结与最佳实践
防御层级 | 措施 | 优先级 |
---|---|---|
服务配置 | 禁用密码认证、启用密钥登录、限制访问IP | ⭐⭐⭐⭐⭐ |
网络隔离 | 更改默认端口、使用VPN/跳板机、云安全组 | ⭐⭐⭐⭐ |
自动化防护 | Fail2Ban、密码策略、IP封禁 | ⭐⭐⭐⭐ |
监控告警 | 日志分析、邮件/短信告警 | ⭐⭐⭐ |
高级方案 | 双因素认证、零信任架构 | ⭐⭐ |
执行步骤:
立即行动:禁用密码登录 + 启用Fail2Ban。
中期优化:配置VPN + 更改默认端口。
长期建设:部署双因素认证 + 零信任架构。
通过以上措施,你的云服务器将具备 企业级防暴力破解能力! 🔒
(如需自动化部署脚本或定制化方案,可进一步沟通。)