SQLAdmin在CentOS上的安全加固要点
一 身份与访问控制
sudo useradd -m -s /bin/bash sqladminsudo passwd sqladminsudo usermod -aG wheel sqladmin,在/etc/sudoers中仅放开所需命令(使用visudo)CREATE USER 'sqladmin'@'localhost' IDENTIFIED BY 'StrongPass!23'; GRANT RELOAD, PROCESS, SHOW DATABASES, SELECT ON mysql.* TO 'sqladmin'@'localhost';(按业务再细化)CREATE USER 'ops'@'10.0.0.%' IDENTIFIED BY 'StrongPass!23'; GRANT SELECT, SHOW VIEW, REPLICATION CLIENT ON db_prod.* TO 'ops'@'10.0.0.%';FLUSH PRIVILEGES;二 网络与边界防护
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" port port="3306" protocol="tcp" accept' && sudo firewall-cmd --reloadsetenforce 0或关闭;若使用Web管理工具,按需开启SELinux布尔值(如httpd_can_network_connect_db)以允许应用连接数据库。三 数据库与凭据安全
四 系统与日志监控
/etc/security/limits.conf与/etc/sysctl.conf中设置合理的文件描述符与内核网络参数,提升稳定性与抗攻击能力。journalctl -f实时排查;结合Prometheus + Grafana等监控平台对连接数、错误率、慢查询等进行告警。五 快速检查清单
| 检查项 | 期望状态/做法 |
|---|---|
| root远程SSH | 已禁用;仅允许跳板/堡垒机 |
| 专用管理账号 | 已创建;sudo权限最小化;定期轮换口令 |
| 数据库账号 | 遵循最小权限;远程仅限受控网段与必要账号 |
| 端口与防火墙 | 仅放行3306/22等必要端口与来源网段 |
| SELinux | enforcing;按需配置布尔值,不关闭 |
| 传输加密 | 远程连接启用SSL/TLS并校验证书 |
| 日志与监控 | 系统/安全/数据库日志集中;关键指标与异常告警已配置 |
| 备份与演练 | 定期备份、异地保存;定期恢复演练通过 |