25、PostgreSQL数据库配置核查命令
Categories:
2 分钟阅读
定位:PostgreSQL 测评核查命令速查(配套 03、PostgreSQL 测评命令单)。 配套加固:14、PostgreSQL数据库加固;高风险口径:22、高风险判定指引与加固对照表。 适用版本:PostgreSQL 9.6~17(差异见加固篇版本适用性注)。
使用说明:
- 本文所有命令均为只读取证命令,不修改配置、不重启服务、不执行清除类操作;确需变更由被测单位运维方在授权下实施。
- 命令回显本身即证据,须连同命令行一起截图;示例中的地址、账户、路径均为演示值,现场须替换为真实取证结果,并对个人信息与内网管理地址脱敏后再入报告。
- 命令不存在或输出与示例差异较大时,先确认产品版本与部署形态(单机/集群/容器/云托管),再换用等效命令或转入配置文件、管理控制台取证,不得据命令缺失直接判不符合。
- 文中「默认」「一般」等表述均为初判倾向,须经上机核查 + 访谈 + 配置/制度核对三方印证后定论,并在报告中写明取证来源。
不适用标识说明:
- 使用
【不适用】明确标记现场可判定为不适用的控制点,并写明判定依据。- 依据 GB/T 28448-2019「按测评对象实际承载功能与数据处理范围判定」原则:控制能力由上层应用、统一认证平台、前置代理、堡垒机、宿主操作系统或云托管平台承载时,应注明测评单元边界后判定不适用或转由上位组件核查,不得机械按缺失判不符合。
- 产品版本确实不提供该能力(如社区版无审计插件)时,须核查替代措施并按替代措施的实际效果定档,不得直接判不适用。
一、连接与版本
对应控制点:GB/T 22239-2019 8.1.4.1 身份鉴别 a)、8.1.4.2 访问控制 a)c)、8.1.4.4 入侵防范 e)
pg_ctl --version # 数据库版本
psql -h 127.0.0.1 -d postgres -U postgres # 连接(本机 superuser)
select version();
二、身份鉴别
对应控制点:GB/T 22239-2019 8.1.4.1 身份鉴别 a)~d)
判定要点:账户唯一且非默认口令、鉴别信息复杂度与有效期均已配置、远程管理走加密通道、失败处理与会话超时已启用 → 符合;仅满足其中一部分(如有口令但无复杂度、无失败锁定、无空闲超时)→ 部分符合;管理入口无鉴别、存在空口令或沿用出厂口令 → 不符合(高风险)。
取证要求:账户清单截图、口令策略参数截图、加密通道配置截图、失败锁定与会话超时参数截图、弱口令实测记录;由统一认证平台承载时补平台侧配置与对接截图。
数据库管理端口(Oracle 1521、SQL Server 1433、MySQL/MariaDB 3306、PostgreSQL/KingbaseES/UXDB 5432、MongoDB 27017、达梦 5236、DB2 50000、Redis 6379)对全网开放且存在空口令、默认口令或弱口令账户时,按《高风险判定指引》可直接判高风险;远程管理未启用传输加密、抓包可还原明文口令时同样按高风险处理。
判定口径详见 22、高风险判定指引与加固对照表。
show password_encryption; -- 口令加密算法(md5 / scram-sha-256)
select usename, valuntil from pg_shadow; -- 口令到期时间(valuntil 为空即不过期)
show shared_preload_libraries; -- 是否加载 passwordcheck 等复杂度模块
select * from pg_settings ps where ps.name like '%timeout%'; -- 超时类参数
cat /var/lib/pgsql/data/pg_hba.conf # 身份认证方式(重点)
pg_hba.conf 五列含义:TYPE(local=套接字 / host=主机地址 / hostssl=强制 SSL 连接)、DATABASE(库名,all 为全部)、USER(用户,all 为全部)、ADDRESS(允许的来源)、METHOD(trust/scram-sha-256/md5/reject 等)。
- 判定:METHOD 含 trust → 高风险;未使用 hostssl/ssl → 远程管理防窃听不符合。
三、访问控制与审计
对应控制点:GB/T 22239-2019 8.1.4.2 访问控制 a)~g)、8.1.4.3 安全审计 a)~d)
\du -- 角色与权限
select * from pg_roles;
select * from pg_stat_user_tables;
cat /var/lib/pgsql/data/postgresql.conf | grep -E "logging_collector|log_statement"
- 判定:
logging_collector = on且log_statement非 none 才具备语句级审计;结合 pgAudit 判定(见加固篇第五节)。
四、传输加密
对应控制点:GB/T 22239-2019 8.1.4.7 数据完整性 a)、8.1.4.8 数据保密性 a)
cat /var/lib/pgsql/data/postgresql.conf | grep -E "^ssl"
ssl = on且 pg_hba 配置 hostssl → 传输加密符合;select * from pg_stat_ssl where pid = pg_backend_pid();验证当前连接。
参考依据
- GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》(8.1.4 安全计算环境各控制点):http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=BAFB47E8874764186BDB7865E8344DAF
- GB/T 28448-2019《信息安全技术 网络安全等级保护测评要求》(测评对象边界认定、单元测评实施与结果判定:符合/部分符合/不符合/不适用):http://openstd.samr.gov.cn/bzgk/gb/newGbInfo?hcno=7E736CDF4502B6FF1258DD250AA3EC8C
- GB/T 25070-2019《信息安全技术 网络安全等级保护安全设计技术要求》,可在全国标准信息公共服务平台检索:http://openstd.samr.gov.cn/bzgk/gb/
- GB/T 28449-2018《信息安全技术 网络安全等级保护测评过程指南》(现场测评活动与证据留存要求),可在全国标准信息公共服务平台检索:http://openstd.samr.gov.cn/bzgk/gb/
- PostgreSQL 官方文档 — 口令认证:https://www.postgresql.org/docs/current/auth-password.html
- The pg_hba.conf File:https://www.postgresql.org/docs/current/auth-pg-hba-conf.html
- 运行时配置 — 日志记录:https://www.postgresql.org/docs/current/runtime-config-logging.html
- pgaudit 扩展:https://github.com/pgaudit/pgaudit
- SSL 支持:https://www.postgresql.org/docs/current/ssl-tcp.html
- 《网络安全等级保护测评高风险判定指引》(中关村信息安全测评联盟团体标准)——高风险情形判定口径,站内对照表:22、高风险判定指引与加固对照表
- 命令核验说明:PostgreSQL 相关命令已对照 PostgreSQL 官方文档核验(核验日期 2026-09-02)。要点:① 客户端认证由数据目录下的
pg_hba.conf控制,按行顺序匹配、第一条命中的规则生效;认证方法中trust表示任何来源免密连接(属高风险配置,仅限开发测试),peer仅适用于本地 Unix socket,md5强度不足,推荐scram-sha-256,高安全场景用cert(hostssl)或ldap/kerberos/pam。② 口令哈希算法由postgresql.conf的password_encryption控制(SHOW password_encryption;查询),SCRAM-SHA-256 自 PostgreSQL 10 引入;若口令以 SCRAM 存储而pg_hba.conf写md5,服务端会自动切换为 SCRAM 认证,反之则认证失败,须核查pg_authid中实际存储的哈希格式。③ 将log_statement设为DDL或ALL时,CREATE ROLE/USER ... WITH PASSWORD与ALTER ROLE/USER ... WITH PASSWORD语句会把口令明文写入服务器日志(引擎预期行为),属取证时的反向风险点;应改用pgaudit扩展并将pgaudit.log设为ROLE,该扩展会对日志中的口令做修订(redaction)。④pgaudit各类别(READ/WRITE/DDL/ROLE/FUNCTION/MISC/ALL)须逐个显式指定,pgaudit.log_client默认应保持关闭,pgaudit.log_level仅在log_client开启时生效。⑤ PostgreSQL 12 及更早版本已停止社区支持,须对照官方版本支持周期确认补丁可获得性。
关联文章
- 同板块·数据库测评篇:01、Oracle数据库测评、05、SQL Server数据库测评、37、MySQL数据库测评、28、MariaDB数据库测评、29、MongoDB测评、31、Redis数据库测评、30、达梦数据库测评、10、GaussDB(华为高斯数据库)测评、07、KingbaseES人大金仓数据库测评、06、优炫数据库(UXDB)测评
- 同板块·数据库命令速查:12、MySQL测评命令、33、DB2数据库命令
- 同板块·中间件测评:02、TAS应用中间件测评、13、Linux(Tomcat)中间件命令
- 同板块·控制点解读:22、应用访问控制测评解读(MySQL 示例)
- 业务应用参照:21、应用系统访问控制测评解读、11、新员工网络培训考核系统测评
- 配套命令单:03、PostgreSQL 测评命令单(数据库测评命令目录)
- 配套加固:14、PostgreSQL数据库加固
- 板块目录:系统管理软件·平台
- 通用加固方案:17、加固方案总纲
- 取证记录模板:16、安全评估加固记录表3.0
- 高风险口径:22、高风险判定指引与加固对照表