centos下sqladmin如何安全
导读:CentOS下 SQLAdmin 安全加固清单 一 架构与部署安全 明确“sqladmin”所指:多数场景下是Web方式的数据库管理工具(如 phpMyAdmin、Adminer、自研管理前端),也有运维脚本/软件包名为“sqladmin...
CentOS下 SQLAdmin 安全加固清单
一 架构与部署安全
- 明确“sqladmin”所指:多数场景下是Web方式的数据库管理工具(如 phpMyAdmin、Adminer、自研管理前端),也有运维脚本/软件包名为“sqladmin”。不同形态的加固点不同,但都应遵循“最小暴露面 + 强认证 + 加密传输 + 细粒度授权”的原则。
- 最小化暴露面与端口:
- Web管理端仅开放80/443,禁止暴露数据库端口到公网;数据库默认端口3306仅在内网或跳板机可达。
- 使用Nginx/Apache反向代理与虚拟主机,禁用目录浏览、默认首页与版本信息泄露。
- 若工具支持,仅绑定127.0.0.1并在反向代理层做鉴权与限流。
- 传输加密:
- 全站启用TLS 1.2+,使用Let’s Encrypt或企业CA签发证书;禁用弱套件与明文HTTP。
- 数据库连接优先启用SSL/TLS(如 MySQL 的 REQUIRE SSL),避免凭据与数据明文传输。
- 运行隔离:
- Web与数据库分用户、分目录、分进程运行;Web目录仅赋予必要权限(如 www-data:www-data,权限750),禁止上传目录执行权限。
- 禁止在生产环境使用root直连Web管理工具;为管理操作创建专用高权账号并限制来源IP。
二 数据库与账号权限
- 创建最小权限的管理账号(示例为 MySQL/MariaDB):
- 本地管理(推荐):
- CREATE USER ‘sqladmin’@‘localhost’ IDENTIFIED BY ‘强密码’;
- GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘localhost’ WITH GRANT OPTION;
- 跳板机/内网管理(按需最小化):
- CREATE USER ‘sqladmin’@‘10.0.0.0/24’ IDENTIFIED BY ‘强密码’;
- GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE, EVENT, TRIGGER ON
mydb.* TO ‘sqladmin’@‘10.0.0.0/24’;
- 远程管理尽量避免使用**'%'通配;如必须使用,务必限定来源网段**并开启SSL。
- 完成后执行:FLUSH PRIVILEGES;
- 本地管理(推荐):
- 禁止在生产使用root远程登录;删除或禁用test库与匿名账户;定期审计用户与权限。
- 为管理连接启用SSL/TLS:
- GRANT … REQUIRE SSL; 并在客户端连接时指定 --ssl-mode=REQUIRED。
三 系统与网络安全
- 防火墙与端口:
- 仅放行80/443(Web)与必要的管理通道;数据库端口3306仅内网放行。
- 示例:firewall-cmd --permanent --zone=public --add-service=http --add-service=https & & firewall-cmd --reload
- SELinux 与布尔值:
- 保持SELinux Enforcing;如 Web 服务需要连接数据库,启用布尔值:setsebool -P httpd_can_network_connect_db 1
- 系统账户与登录安全:
- 锁定不必要的系统账户,清理空密码与默认账户;为root设置强密码与TMOUT自动登出;限制su使用范围到受控组。
- 日志与审计:
- 集中关注**/var/log/messages、/var/log/secure、/var/log/mysqld.log**;使用 journalctl -f 实时查看关键服务日志,定期审计失败登录与权限变更。
四 Web管理端专项加固
- 认证与会话:
- 启用强密码策略与登录失败锁定;设置会话超时与并发登录限制;开启CSRF与二次验证(如 TOTP)。
- 访问控制:
- 仅允许内网/跳板机访问管理域名或路径;对外网访问增加IP白名单与反向代理基本认证。
- 传输与加密:
- 全站HTTPS;数据库连接SSL/TLS;禁用过时协议与弱加密套件。
- 安全配置基线:
- 关闭目录列表、隐藏版本号与错误详情;上传目录不可执行;设置安全HTTP头(如 X-Frame-Options、X-XSS-Protection、X-Content-Type-Options、Strict-Transport-Security)。
- 备份与变更:
- 定期备份配置文件与数据库;变更前在测试环境验证;保留回滚方案与变更记录。
五 快速检查清单
| 检查项 | 期望状态 | 验证命令/方法 |
|---|---|---|
| 仅开放80/443 | 公网不可达3306 | ss -lntp |
| TLS启用 | 全站HTTPS,HSTS | curl -I https://域名 |
| 数据库SSL | 管理账号REQUIRE SSL | mysql -u sqladmin -p -h 主机 --ssl-mode=REQUIRED -e “STATUS LIKE ‘%SSL%’” |
| 账号最小权限 | 非root、限定来源 | mysql -e “SHOW GRANTS FOR ‘sqladmin’@‘localhost’; ” |
| SELinux与布尔 | Enforcing,布尔正确 | getenforce; getsebool httpd_can_network_connect_db |
| 日志与审计 | 关键日志采集 | tail -f /var/log/{ secure,messages,mysqld.log} |
| 备份可用 | 定期备份且可恢复 | mysqldump --single-transaction -u 备份账号 -p 库名 > 备份.sql & & mysql -u 恢复账号 -p 库名 < 备份.sql |
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos下sqladmin如何安全
本文地址: https://pptw.com/jishu/785421.html
