温馨提示×

Debian上pgAdmin安全设置有哪些

小樊
41
2025-12-28 07:34:53
栏目: 智能运维

Debian 上 pgAdmin 的安全设置清单

一 基础加固

  • 保持系统与软件为最新:执行 sudo apt update && sudo apt upgrade,及时修补安全漏洞。
  • 使用非 root 运维:创建普通用户执行日常管理,避免以 root 直接操作。
  • 强化系统登录安全:配置 SSH 密钥登录,禁用 root 登录与空密码,编辑 /etc/ssh/sshd_config:设置 PermitRootLogin noPermitEmptyPasswords no
  • 启用防火墙并最小化开放端口:仅放行必要端口(如 SSH 22/TCP),必要时再放行 pgAdmin 端口(默认 5050/TCP 或自定义端口)。

二 传输与访问控制

  • 启用 HTTPS:为 pgAdmin 配置 TLS/SSL 证书,强制浏览器使用加密通道。
    1. 生成自签名证书(示例有效期 3650 天):
      sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650
      -keyout /etc/pgadmin4/server.key -out /etc/pgadmin4/server.crt
    2. /etc/pgadmin4/config_local.py 中启用:
      SERVER_MODE = True
      WEB_PORT = 5051 # 可选:更换默认端口
      SSL_CERTFILE = ‘/etc/pgadmin4/server.crt’
      SSL_KEYFILE = ‘/etc/pgadmin4/server.key’
    3. 重启服务:sudo systemctl restart pgadmin4
    4. 访问:https://<服务器IP或域名>:5051
  • 限制来源 IP:通过 ufw 仅允许可信网段访问 pgAdmin 端口,例如:
    sudo ufw allow from 203.0.113.0/24 to any port 5051/tcp
  • 远程访问替代方案:优先使用 SSH 隧道 访问 pgAdmin,减少公网暴露面。

三 身份认证与授权

  • 设置 pgAdmin 主密码:首次部署运行 sudo /usr/pgadmin4/bin/setup-web.sh,为主密码设置高强度口令。
  • 强密码策略:要求包含大小写字母、数字与特殊字符,并定期更换。
  • 精细化访问控制:在 pgAdmin Web 界面按角色分配权限(如 Administrator/Editor/Viewer),对数据库、表、视图等对象通过 ACL 授予最小必要权限(如 SELECT/INSERT/UPDATE/DELETE)。
  • 数据库层最小权限:在 PostgreSQL 侧遵循最小权限原则,按需创建角色与用户并只授予目标库/表/模式的必要权限。

四 系统与服务权限

  • 专用系统用户与组:创建无登录权限的运行账户(如 pgadmin_svc),并将需要访问的管理员加入相应组,实现职责分离。
  • 文件与目录权限:
    • 安装目录:sudo chown -R root:pgadmin /usr/pgadmin4;sudo chmod -R 750 /usr/pgadmin4
    • 配置文件:sudo chown root:root /etc/pgadmin4/pgadmin4.conf;sudo chmod 600 /etc/pgadmin4/pgadmin4.conf
  • 可选安全模块:在需要时启用 AppArmor 对 pgAdmin 进行进程与文件访问限制,降低被提权后的横向移动风险。

五 日志监控与维护

  • 集中监控与告警:使用 Logwatch 汇总系统日志,部署 Fail2ban 自动封禁暴力登录来源。
  • 及时更新与补丁:定期执行 apt update && apt upgrade,保持 pgAdmin 及其依赖的安全修复。
  • 定期备份:备份 pgAdmin 配置PostgreSQL 数据/配置,确保可快速恢复。
  • 安全审计:定期审查 pgAdmin 用户与权限、PostgreSQL 角色与对象权限,回收不必要授权。

0