温馨提示×

Debian MySQL安全设置怎样做

小樊
31
2026-01-01 11:02:02
栏目: 云计算

Debian 上 MySQL 的安全设置清单

一 基础加固

  • 更新系统并安装:执行 sudo apt update && sudo apt install mysql-server,随后用 sudo systemctl start mysql 启动并用 sudo systemctl enable mysql 设置开机自启。完成后用 sudo systemctl status mysql 确认状态为 active (running)
  • 运行安全向导:执行 sudo mysql_secure_installation,依次完成:设置 root 密码、启用可选的密码强度校验插件、删除匿名用户、禁止 root 远程登录、删除测试库、重载权限表。以上步骤能快速消除默认风险。

二 网络与防火墙

  • 默认仅本地监听:编辑 /etc/mysql/mysql.conf.d/mysqld.cnf,将 bind-address = 127.0.0.1,确保数据库只接受本机连接。
  • 如确需远程访问(不推荐对公网开放):将 bind-address 改为 0.0.0.0,并在防火墙仅对受控来源放行 3306/tcp。示例(UFW):sudo ufw allow 3306/tcp;如需精细控制,仅允许应用服务器网段访问。
  • 远程连接务必使用专用账户并限制来源 IP,避免开放 root@‘%’

三 账户与权限最小化

  • 日常运维使用非 root 账户:登录后创建最小权限账户,例如仅授予对某库的 SELECT/INSERT/UPDATE/DELETE
    • 创建用户:CREATE USER ‘appuser’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
    • 授予权限:GRANT SELECT, INSERT, UPDATE, DELETE ON mydb. TO ‘appuser’@‘localhost’;*
    • 刷新权限:FLUSH PRIVILEGES;
  • 按需细化权限,避免使用 GRANT ALL PRIVILEGES ON . TO … 给应用账户;定期用 SHOW GRANTS FOR ‘appuser’@‘localhost’; 复核权限。
  • 删除不再使用的账户:DROP USER ‘olduser’@‘localhost’;

四 Debian 维护账户与备份安全

  • 保留并保护 debian-sys-maint 账户:该账户由 Debian 维护脚本使用(如停止/启动服务)。其凭据通常保存在 /etc/mysql/debian.cnf。建议:
    • 设置强密码并妥善保护该文件权限(如 600);
    • 仅在需要时由系统维护流程调用,避免用于日常业务;
    • 如需变更密码,先在 MySQL 中 ALTER USER ‘debian-sys-maint’@‘localhost’ IDENTIFIED BY ‘NewStrongPass!’;,再同步更新 /etc/mysql/debian.cnf,避免服务维护失败。

五 审计监控与备份恢复

  • 加固周边服务:启用 UFW 仅放行 SSH/80/443(以及确有需要时的 3306),并使用 Fail2ban 监控暴力登录尝试,降低被入侵概率。
  • 日志与告警:部署 Logwatch 或等效工具定期汇总系统与安全日志,关注异常登录与权限变更。
  • 备份策略:使用 mysqldump 定期全量备份,例如:
    • 备份:mysqldump -u backup -p --single-transaction --routines --triggers --databases mydb > mydb_$(date +%F).sql
    • 恢复:mysql -u root -p < mydb_2025-08-01.sql
  • 持续更新:保持 DebianMySQL 的安全更新为最新,定期复核用户、权限与网络策略。

0