Ubuntu上 SQLAdmin 的安全设置
一 身份与访问控制
sudo adduser sqladmin、sudo usermod -aG sudo sqladmin。PermitRootLogin no)、启用公钥认证(PubkeyAuthentication yes)、将 MaxAuthTries 设为 3–6、配置 ClientAliveInterval 与 ClientAliveCountMax 以自动断开空闲会话。sudo ufw allow 22、sudo ufw allow 80、sudo ufw allow 443、sudo ufw enable。二 数据库与凭据安全
FLUSH PRIVILEGES; 使权限生效。/etc/login.defs 中设置 PASS_MIN_DAYS 7、PASS_WARN_AGE 7,并定期更换密码。su 切换到 root:在 /etc/login.defs 启用 SU_WHEEL_ONLY,并在 /etc/pam.d/su 中限制仅 wheel/sudo 组可 su。三 服务与网络安全
sudo apt update && sudo apt upgrade,并启用 unattended-upgrades 自动安装安全补丁。四 备份与审计
mysqldump 进行逻辑备份,例如:mysqldump -u your_username -p your_database > backup.sql;重要备份应加密并异地/离线保存。rsync、tar 等工具进行文件系统级备份,示例:rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / /backup/fs/。五 快速检查清单
| 检查项 | 期望状态/示例 |
|---|---|
| 管理用户与 sudo | 存在专用用户(如 sqladmin),sudo 权限最小化 |
| SSH 安全 | PermitRootLogin no,公钥登录启用,MaxAuthTries 3–6 |
| 防火墙 | 仅放行 22/80/443(或 SQLAdmin 实际端口) |
| SQLAdmin 监听 | 非默认端口,绑定内网或回环地址 |
| 加密传输 | 全站 HTTPS/TLS,禁用 HTTP |
| 数据库账户 | 最小权限、强密码、来源限制 |
| 备份 | 数据库与配置定期备份、加密、异地保存 |
| 日志与监控 | Fail2Ban 与 Logwatch 正常运行 |