温馨提示×

如何保障Linux SQLAdmin安全

小樊
31
2025-12-25 17:00:34
栏目: 云计算

Linux 上 SQLAdmin 安全加固清单

一 身份与访问控制

  • 创建专用的 sqladmin 系统账号,避免直接使用 root;按需加入 sudowheel 组,使用 visudo 安全编辑授权,遵循最小权限原则。
  • 强化 SSH:禁用 root 登录(设置 PermitRootLogin no)、启用密钥登录(PubkeyAuthentication yes)、可修改默认端口、限制允许登录用户、设置 MaxAuthTries 3–6、配置 ClientAliveInterval/ClientAliveCountMax 以自动断开空闲会话。
  • 配置防火墙:仅开放必要端口(如 SSH 22、数据库端口如 3306),使用 UFW(Ubuntu)或 firewalld(CentOS)实现白名单策略。
  • 系统加固:锁定不必要的系统账户(如 passwd -l)、禁用不必要的服务、为关键文件设置不可变属性(如 chattr +i 谨慎使用)。

二 数据库账号与最小权限

  • 创建数据库管理账号并遵循最小权限:
    • MySQL 示例:
      • 本地管理:
        • CREATE USER ‘sqladmin’@‘localhost’ IDENTIFIED BY ‘强密码’;
        • GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘localhost’ WITH GRANT OPTION;
      • 远程管理(尽量限定网段):
        • CREATE USER ‘sqladmin’@‘10.0.0.%’ IDENTIFIED BY ‘强密码’;
        • GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘10.0.0.%’ WITH GRANT OPTION;
      • FLUSH PRIVILEGES;
    • PostgreSQL 示例:
      • CREATE USER sqladmin WITH PASSWORD ‘强密码’;
      • GRANT ALL PRIVILEGES ON DATABASE mydb TO sqladmin;
  • 禁止 root 远程登录数据库;生产环境避免使用 WITH GRANT OPTION,改为精细化授权与审批流程。
  • 定期审计与回收不再使用的账号与权限。

三 系统与网络安全

  • 保持系统与数据库补丁为最新:Ubuntu 使用 apt update && apt upgrade;CentOS 使用 yum update -y;可启用 unattended-upgrades 做自动安全更新。
  • 启用入侵防护:部署 Fail2Ban 自动封禁暴力破解来源,降低 SSH 与数据库端口被爆破风险。
  • 强制访问控制:启用 SELinuxAppArmor,为数据库与管理工具进程设置最小权限域,减少被提权后的横向移动空间。
  • 网络最小化:数据库默认端口 3306 仅对受控管理网段开放;避免将数据库直接暴露在公网。
  • 资源与稳定性:在 /etc/security/limits.conf 调整文件描述符与进程数限制;在 /etc/sysctl.conf 调整 fs.file-max、vm.swappiness、net.core.somaxconn、net.ipv4.tcp_max_syn_backlog 等内核参数以应对高并发与连接压力。

四 加密、备份与审计监控

  • 传输与存储加密:启用 TLS/SSL 用于数据库与管理通道(如 phpMyAdmin/Adminer 通过 HTTPS 访问);密钥与证书妥善管控。
  • 备份与恢复:定期使用 mysqldump 或物理备份工具执行全量与增量备份,异地/离线保存,并进行周期性恢复演练验证可用性。
  • 日志与审计:集中收集与分析系统与安全日志(如 /var/log/ 下的相关日志、journalctl 实时查看),结合 Logwatch/Nagios 等工具进行异常检测与告警;数据库侧开启通用查询日志/错误日志与慢查询日志,用于问题定位与合规审计。
  • 安全配置基线:为 SQLAdmin 工具启用强密码策略、限制上传与执行权限、限制可访问的数据库范围,并定期复核配置与权限。

0