- 首页 >
- 问答 >
-
云计算 >
- 如何保障Linux SQLAdmin安全
如何保障Linux SQLAdmin安全
小樊
31
2025-12-25 17:00:34
Linux 上 SQLAdmin 安全加固清单
一 身份与访问控制
- 创建专用的 sqladmin 系统账号,避免直接使用 root;按需加入 sudo 或 wheel 组,使用 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 与数据库端口被爆破风险。
- 强制访问控制:启用 SELinux 或 AppArmor,为数据库与管理工具进程设置最小权限域,减少被提权后的横向移动空间。
- 网络最小化:数据库默认端口 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 工具启用强密码策略、限制上传与执行权限、限制可访问的数据库范围,并定期复核配置与权限。