Ubuntu系统sqladmin安全设置指南
导读:Ubuntu 上 sqladmin 安全设置指南 一 适用对象与总体思路 本指南面向在 Ubuntu 上部署或使用名为 sqladmin 的数据库管理工具或数据库管理员账户的场景,覆盖系统账户与登录安全、数据库最小权限、服务与网络加固、备...
Ubuntu 上 sqladmin 安全设置指南
一 适用对象与总体思路
- 本指南面向在 Ubuntu 上部署或使用名为 sqladmin 的数据库管理工具或数据库管理员账户的场景,覆盖系统账户与登录安全、数据库最小权限、服务与网络加固、备份与审计等关键面。
- 若你指的是 Web 管理工具(如 phpMyAdmin、Adminer 或名为 SQLAdmin 的第三方工具),同样适用“最小暴露面 + 强认证 + 加密传输”的原则。
二 系统账户与登录安全
- 创建专用管理用户并限制权限
- 创建系统管理用户:sudo adduser sqladmin,按需加入 sudo 组:sudo usermod -aG sudo sqladmin。
- 目录最小化权限:sudo chmod 700 /home/sqladmin,必要时用 setfacl 做细粒度授权。
- 强化 SSH 访问
- 禁用 root 登录:编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no。
- 启用公钥登录:设置 PubkeyAuthentication yes,禁用密码登录 PasswordAuthentication no(确保已有可用密钥再切换)。
- 可选:更改默认端口、限制可登录用户、会话保活(如 ClientAliveInterval/ClientAliveCountMax)。
- 账户与密码策略
- 在 /etc/login.defs 设置 PASS_MIN_DAYS 7、PASS_WARN_AGE 7,强制周期更换与告警。
- 限制 su 使用:在 /etc/login.defs 启用 SU_WHEEL_ONLY,并在 /etc/pam.d/su 中限制仅 wheel 组可 su 到 root。
- 防护与自动更新
- 部署 Fail2Ban 防暴力破解,配合 UFW 仅放行必要端口(如 22/80/443 或工具端口)。
- 启用无人值守安全更新:sudo apt install unattended-upgrades & & sudo dpkg-reconfigure unattended-upgrades,保持系统与组件补丁及时。
三 数据库 sqladmin 账户与最小权限
- 原则:遵循最小权限,避免使用 root 或 SUPERUSER 远程连接;为应用与运维分别创建账户;必要时采用主机白名单与专用连接账号。
- MySQL 示例(按需收紧到指定库/主机)
- 创建本地管理账户:
- CREATE USER ‘sqladmin’@‘localhost’ IDENTIFIED BY ‘StrongPassword!’;
- GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘localhost’ WITH GRANT OPTION;
- FLUSH PRIVILEGES;
- 创建远程受限账户(示例仅允许内网网段 192.168.1.0/24):
- CREATE USER ‘sqladmin’@‘192.168.1.%’ IDENTIFIED BY ‘StrongPassword!’;
- GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON your_db.* TO ‘sqladmin’@‘192.168.1.%’;
- FLUSH PRIVILEGES;
- 创建本地管理账户:
- PostgreSQL 示例(优先使用角色分离与最小权限)
- 创建可登录管理角色(避免使用 SUPERUSER,除非确有需要):
- CREATE ROLE sqladmin WITH LOGIN PASSWORD ‘StrongPassword!’ CREATEDB CREATEROLE INHERIT;
- 对指定库授予全权(示例库为 your_db):
- GRANT ALL PRIVILEGES ON DATABASE your_db TO sqladmin;
- \c your_db
- GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO sqladmin;
- GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO sqladmin;
- GRANT ALL PRIVILEGES ON ALL FUNCTIONS IN SCHEMA public TO sqladmin;
- 如需面向特定应用账号,仅授予其所需对象与操作权限,避免使用 SUPERUSER。
- 创建可登录管理角色(避免使用 SUPERUSER,除非确有需要):
四 服务与网络加固
- 防火墙与端口
- 仅放行必要端口:sudo ufw allow OpenSSH、sudo ufw allow 80,443/tcp;若工具监听 8080,仅在内网或受控网段开放,并尽快迁移至 443/TLS。
- Web 管理工具安全(如 phpMyAdmin、Adminer 或名为 SQLAdmin 的工具)
- 更改默认端口与路径,启用 HTTPS/TLS,设置强管理员口令与登录失败锁定。
- 通过反向代理(如 Nginx/Apache)加一层认证与速率限制;限制来源 IP;禁用目录浏览与版本信息暴露。
- 系统加固
- 禁用不必要的服务与端口,减少攻击面;必要时启用 AppArmor/SELinux 对服务进行强制访问控制。
五 备份与审计监控
- 备份策略
- 定期逻辑/物理备份;示例:使用 tar 归档关键目录(排除 /dev、/proc、/sys、/tmp、/run、/mnt、/media、/lost+found 等),并妥善异地/离线保存与校验。
- 审计与监控
- 部署 Logwatch 进行日志汇总与异常巡检;使用 Nagios/Zabbix 等做可用性监控与阈值告警。
- 持续关注系统与安全公告,及时修补数据库与组件漏洞。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu系统sqladmin安全设置指南
本文地址: https://pptw.com/jishu/763193.html
