温馨提示×

ubuntu里sqladmin如何安全管理

小樊
37
2025-11-30 07:39:44
栏目: 云计算

Ubuntu 上 sqladmin 安全管理实践

一 身份与系统账户安全

  • 创建专用管理账户:使用 sudo adduser sqladmin 创建账户,避免直接使用 root;仅在需要时通过 sudo 提权,遵循最小权限原则。
  • 强化 SSH 访问:编辑 /etc/ssh/sshd_config,设置 PermitRootLogin no、启用 PubkeyAuthentication yes、可选择性修改默认端口并限制允许登录用户;重启 ssh 服务生效。
  • 配置 UFW 防火墙:仅开放必要端口,例如 sudo ufw allow OpenSSH 与数据库/管理工具端口,默认拒绝其他入站;定期核查规则。
  • 系统加固与持续更新:启用自动安全更新(如 unattended-upgrades),定期执行 sudo apt update && sudo apt upgrade;按需配置 Fail2Ban 抵御暴力破解;启用 Logwatch 进行日志审计;必要时使用 AppArmor 限制进程权限。

二 数据库账户与最小权限

  • MySQL
    • 本地管理账户:
      • 创建:CREATE USER ‘sqladmin’@‘localhost’ IDENTIFIED BY ‘StrongPass!’;
      • 授权:GRANT ALL PRIVILEGES ON . TO ‘sqladmin’@‘localhost’ WITH GRANT OPTION;
      • 按库授权示例:GRANT SELECT, INSERT, UPDATE, DELETE ON mydb.* TO ‘sqladmin’@‘localhost’;
      • 使生效:FLUSH PRIVILEGES;
    • 远程管理(如确需):CREATE USER ‘sqladmin’@‘your_ip’ IDENTIFIED BY ‘StrongPass!’; 仅授予目标库/表的必要权限,避免使用 % 通配主机。
  • PostgreSQL
    • 本地管理角色:
      • 创建:CREATE ROLE sqladmin WITH LOGIN PASSWORD ‘StrongPass!’;
      • 按需授权:ALTER ROLE sqladmin WITH SUPERUSER CREATEDB CREATEROLE;(生产环境建议细化权限,避免长期赋予 SUPERUSER)
      • 按库授权:GRANT ALL PRIVILEGES ON DATABASE mydb TO sqladmin;
    • 远程管理(如确需):在 pg_hba.conf 中限制来源 IP 并使用 md5/ scram-sha-256 认证,仅开放必要数据库与权限。

三 数据库与 Web 管理工具安全

  • 管理工具选择与部署:优先使用受控环境下的图形化工具(如 phpMyAdminMySQL Workbench);若部署 phpMyAdmin,仅绑定本地或内网访问,启用 HTTPS,限制数据库账户权限,避免使用 root 直连。
  • 备份与恢复:
    • MySQL:定期执行 mysqldump -u root -p mydb > mydb_backup.sql;恢复使用 mysql -u root -p mydb < mydb_backup.sql
    • 通用:将备份文件加密、异地/离线存储,并定期验证可恢复性。

四 审计监控与合规

  • 日志与告警:启用数据库通用日志/错误日志与慢查询日志;在系统层面使用 Logwatch 汇总分析,结合 Nagios 等做可用性监控与阈值告警。
  • 入侵防护:部署 Fail2Ban 监控 SSH、数据库与管理工具登录失败,自动封禁恶意来源;定期审计 /var/log/auth.log 与数据库日志。
  • 安全配置基线:持续更新系统与数据库补丁;按需启用 AppArmor 等强制访问控制,减少被攻陷后的横向移动风险。

五 快速检查清单

检查项 推荐做法 关键命令/配置
系统账户 专用 sqladmin,禁用 root SSH adduser sqladmin;/etc/ssh/sshd_config: PermitRootLogin no
认证方式 SSH 密钥登录,禁用口令登录 root /etc/ssh/sshd_config: PubkeyAuthentication yes
防火墙 仅开放 SSH 与必要服务端口 ufw allow OpenSSH;ufw enable
数据库账户 本地账户优先,最小权限 MySQL: GRANT … TO ‘sqladmin’@‘localhost’;PostgreSQL: GRANT ON DATABASE
远程访问 限制来源 IP 与端口 pg_hba.conf(PostgreSQL);MySQL 绑定内网接口
管理工具 限制来源、启用 HTTPS、最小权限账户 phpMyAdmin 仅内网访问;不使用 root
备份恢复 定期备份、加密、可验证恢复 mysqldump;定期恢复演练
监控审计 日志收集、入侵防护 Logwatch;Fail2Ban;Nagios 等

注意:涉及生产环境变更前,请在测试环境验证并按需备份;为账户与备份设置强密码,避免明文存储与传输。

0