服务器安全加固:防攻击与数据备份策略 原创
温馨提示:
本文最后更新于 2026-04-01,已超过 0 天没有更新。
若文章内的图片失效(无法正常加载),请留言反馈或直接 联系我。
如何保障服务器的安全稳定运行才是长期运营的关键。本文将详细讲解服务器安全加固、防攻击策略和数据备份方案,帮助你的服务器远离威胁。
一、Linux 系统安全加固
1.1 修改 SSH 默认端口
SSH 默认端口 22 是攻击者的首要目标,修改端口可以减少 90% 的暴力破解尝试。
# 备份 SSH 配置
sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
# 编辑配置文件
sudo vim /etc/ssh/sshd_config
# 修改端口(选择一个不常用的端口,如 22334)
Port 22334
# 禁用 root 登录(可选但推荐)
PermitRootLogin no
# 重启 SSH 服务
sudo systemctl restart sshd
⚠️ 重要: 修改端口前确保防火墙已放行新端口!
1.2 配置防火墙(UFW)
# 安装 UFW
sudo apt-get install ufw # Ubuntu/Debian
sudo yum install ufw # CentOS/RHEL
# 设置默认策略
sudo ufw default deny incoming # 默认拒绝所有入站
sudo ufw default allow outgoing # 允许所有出站
# 放行必要端口
sudo ufw allow 22334/tcp # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw allow 3306/tcp # MySQL(仅限内网访问)
sudo ufw allow 8085/tcp # WoD 登录服务器
sudo ufw allow 3724/tcp # WoD realm 服务器
# 启用防火墙
sudo ufw enable
# 查看状态
sudo ufw status verbose
1.3 安装 Fail2Ban 防暴力破解
Fail2Ban 可以自动封禁多次尝试登录的 IP 地址。
# 安装 Fail2Ban
sudo apt-get install fail2ban
# 创建配置文件
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo vim /etc/fail2ban/jail.local
# 添加 SSH 防护配置
[sshd]
enabled = true
port = 22334
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600
findtime = 600
# 重启服务
sudo systemctl restart fail2ban
sudo systemctl enable fail2ban
二、数据库安全加固
2.1 MySQL/MariaDB 安全配置
# 运行安全脚本
sudo mysql_secure_installation
# 按提示操作:
# - 设置 root 密码
# - 删除匿名用户
# - 禁止 root 远程登录
# - 删除测试数据库
# - 重新加载权限表
2.2 创建专用数据库用户
不要使用 root 用户连接数据库!
-- 登录 MySQL
mysql -u root -p
-- 创建专用用户(替换 your_password 为强密码)
CREATE USER 'wowserver'@'localhost' IDENTIFIED BY 'your_strong_password_here';
-- 授予权限(仅授予必要的权限)
GRANT SELECT, INSERT, UPDATE, DELETE ON auth.* TO 'wowserver'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON characters.* TO 'wowserver'@'localhost';
GRANT SELECT, INSERT, UPDATE, DELETE ON world.* TO 'wowserver'@'localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出
EXIT;
三、DDoS 攻击防护
3.1 识别 DDoS 攻击
# 查看网络连接数
netstat -an | grep :80 | wc -l
# 查看每个 IP 的连接数
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
# 如果单个 IP 连接数超过 100,很可能正在遭受攻击
3.2 使用 Cloudflare CDN
对于 Web 服务,强烈建议使用 Cloudflare:
- 注册 Cloudflare 账号(免费)
- 添加你的域名
- 修改域名 DNS 服务器到 Cloudflare
- 开启”Under Attack”模式(遭受攻击时)
优势:
- 隐藏真实服务器 IP
- 自动过滤恶意流量
- 免费 SSL 证书
- 全球 CDN 加速
四、数据备份策略
4.1 数据库备份脚本
创建备份脚本 /usr/local/bin/backup-wow-db.sh:
#!/bin/bash
# 配置
DB_USER="root"
DB_PASS="your_mysql_root_password"
BACKUP_DIR="/backup/database"
DATE=$(date +%Y%m%d_%H%M%S)
# 创建备份目录
mkdir -p $BACKUP_DIR
# 备份数据库
mysqldump -u$DB_USER -p$DB_PASS auth > $BACKUP_DIR/auth_$DATE.sql
mysqldump -u$DB_USER -p$DB_PASS characters > $BACKUP_DIR/characters_$DATE.sql
mysqldump -u$DB_USER -p$DB_PASS world > $BACKUP_DIR/world_$DATE.sql
# 压缩备份文件
cd $BACKUP_DIR
tar -czf wow_backup_$DATE.tar.gz auth_$DATE.sql characters_$DATE.sql world_$DATE.sql
# 删除原始 SQL 文件
rm -f *_$DATE.sql
# 删除 7 天前的备份
find $BACKUP_DIR -name "wow_backup_*.tar.gz" -mtime +7 -delete
echo "Backup completed: wow_backup_$DATE.tar.gz"
4.2 设置定时备份任务
# 编辑 crontab
sudo crontab -e
# 添加以下行
# 每天凌晨 2 点备份数据库
0 2 * * * /usr/local/bin/backup-wow-db.sh
# 每天凌晨 3 点备份服务器文件
0 3 * * * /usr/local/bin/backup-wow-server.sh
五、安全检查清单
每日检查
- 检查系统日志是否有异常登录
- 检查磁盘空间使用率
- 检查服务器负载情况
- 检查数据库连接数
每周检查
- 检查防火墙规则是否生效
- 检查 Fail2Ban 封禁记录
- 检查备份文件是否完整
- 更新系统安全补丁
每月检查
- 审查所有用户账号
- 检查数据库权限设置
- 测试备份恢复流程
- 更新服务器软件版本
总结
服务器安全是一个持续的过程,需要:
- 预防为主: 做好基础安全配置
- 定期备份: 确保数据可恢复
- 持续监控: 及时发现异常
- 快速响应: 制定应急预案
记住:最好的防御是多层防御,不要依赖单一安全措施。
温馨提示: 本文所有命令请在测试环境验证后再应用到生产环境。如有疑问,请在评论区留言或联系管理员。