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 no、PermitEmptyPasswords no。
- 启用防火墙并最小化开放端口:仅放行必要端口(如 SSH 22/TCP),必要时再放行 pgAdmin 端口(默认 5050/TCP 或自定义端口)。
二 传输与访问控制
- 启用 HTTPS:为 pgAdmin 配置 TLS/SSL 证书,强制浏览器使用加密通道。
- 生成自签名证书(示例有效期 3650 天):
sudo openssl req -newkey rsa:2048 -new -nodes -x509 -days 3650
-keyout /etc/pgadmin4/server.key -out /etc/pgadmin4/server.crt
- 在 /etc/pgadmin4/config_local.py 中启用:
SERVER_MODE = True
WEB_PORT = 5051 # 可选:更换默认端口
SSL_CERTFILE = ‘/etc/pgadmin4/server.crt’
SSL_KEYFILE = ‘/etc/pgadmin4/server.key’
- 重启服务:sudo systemctl restart pgadmin4
- 访问: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 角色与对象权限,回收不必要授权。