centos pgadmin安全配置方法
小樊
41
2025-12-11 18:08:31
CentOS 上 pgAdmin 的安全配置方法
一 版本与补丁管理
- 将 pgAdmin 升级到最新稳定版,至少使用包含修复的高危漏洞版本(如修复 CVE-2025-2945 的 ≥9.2),并持续关注官方与发行渠道的安全通告,及时修补。旧版本(如 ≤8.11 的身份验证缺陷 CVE-2024-9014)存在被未授权访问的风险。
- 同步保持 CentOS 系统与依赖组件(如 Python、Nginx 等反向代理组件)为最新,减少系统层面漏洞利用面。
二 网络与访问控制
- 仅开放必要端口(pgAdmin 默认 5050 或自定义端口),并通过 firewalld 限制来源 IP:
- 开放端口示例:
sudo firewall-cmd --permanent --add-port=5050/tcp && sudo firewall-cmd --reload
- 建议改为非标准端口以降低自动化扫描命中率。
- 数据库侧在 pg_hba.conf 实施最小权限与来源限制,优先使用更安全的 scram-sha-256 认证,示例:
- 本地:
host all all 127.0.0.1/32 scram-sha-256
- 内网:
host all all 192.168.1.0/24 scram-sha-256
- 规则自上而下匹配,修改后执行
SELECT pg_reload_conf(); 或 pg_ctl -D $PGDATA reload 生效。
- 可选:通过 SSH 隧道 访问 pgAdmin 或数据库,在不暴露端口到公网的前提下提升链路安全。
三 加密与认证
- 启用 HTTPS/TLS:为 pgAdmin 配置有效的 TLS 证书与私钥(可使用企业 CA 或受信任证书),强制浏览器与 pgAdmin 之间加密传输,避免凭据与数据被窃听或篡改。
- 数据库口令存储与认证:
- 在 postgresql.conf 设置
password_encryption = scram-sha-256,并重启或重载使其生效。
- 通过
SHOW password_encryption; 与查询 pg_authid 确认口令已以 SCRAM-SHA-256 存储;注意 pg_hba.conf 中的认证方法与用户口令存储方式需一致,否则会出现认证失败。
- 避免使用明文或弱认证方式(如 password、trust)。
四 身份与权限控制
- 为 pgAdmin 与数据库分别设置强密码策略(长度 ≥8,包含大小写字母、数字与特殊字符),并定期更换;为 pgAdmin 用户启用**两步验证(2FA)**以强化登录安全。
- 遵循最小权限原则:在数据库中为通过 pgAdmin 连接的角色仅授予必要权限(例如只读用户不授予写入/创建权限),避免使用 postgres 超级用户进行日常操作。
- 保护配置文件与凭据:避免在配置文件中明文存放密码,优先使用环境变量或受控的凭据管理工具。
五 审计监控与系统加固
- 启用详细日志:在 pgAdmin 侧记录登录时间、来源 IP、操作类型等;在数据库侧开启日志收集,便于审计与追踪异常行为。
- 系统级加固:
- 定期更新系统与软件包,关闭不必要的服务与端口;
- 限制 root 直接 SSH 登录,使用普通用户 + sudo;
- 如启用 SELinux,按需设置(例如允许 httpd 网络连接到数据库:
sudo setsebool -P httpd_can_network_connect_db 1),避免直接禁用 SELinux 导致整体安全下降;
- 使用 auditd 监控 pgAdmin 配置目录与日志文件等关键资源,配合
ausearch、aureport 进行异常分析。