服务器安全加固:防攻击与数据备份策略 原创

温馨提示:
本文最后更新于 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:

  1. 注册 Cloudflare 账号(免费)
  2. 添加你的域名
  3. 修改域名 DNS 服务器到 Cloudflare
  4. 开启”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 封禁记录
  • 检查备份文件是否完整
  • 更新系统安全补丁

每月检查

  • 审查所有用户账号
  • 检查数据库权限设置
  • 测试备份恢复流程
  • 更新服务器软件版本

总结

服务器安全是一个持续的过程,需要:

  1. 预防为主: 做好基础安全配置
  2. 定期备份: 确保数据可恢复
  3. 持续监控: 及时发现异常
  4. 快速响应: 制定应急预案

记住:最好的防御是多层防御,不要依赖单一安全措施。


温馨提示: 本文所有命令请在测试环境验证后再应用到生产环境。如有疑问,请在评论区留言或联系管理员。