# 25、等保2.0 Postgresql数据库配置核查命令

LLMS index: [llms.txt](/wikis/llms.txt)

---

## 第一部分
psql -h 127.0.0.1 -d postgres -U postgres 连接pgsql server

pg_ctl --version 查看数据库版本

select version(); 查看数据库版本（登录到数据库中）

打开pg_hba.conf配置文件查看数据库的身份认证方式

select * from pg_shadow ; 口令到期时间

show password_encryption; 查看口令加密算法

select * from pg_settings ps where ps.name like '%timeout%'; 查询超时

show shared_preload_libraries; 查看是否启用密码复杂度模块

打开postgresql.conf配置文件，查看ssl字段是否为on

## 第二部分
\du 查看管理用户。

打开postgresql.conf配置文件，查看logging_collector 是否= on，on表示开启日志，查看 log_statement的参数判断数据库审计记录信息。

检查访问控制配置：

SELECT * FROM pg_roles; SELECT * FROM pg_stat_user_tables;

执行more /var/lib/pgsql/data/pg_hba.conf;查看文件允许管理员指定主机需要使用 SSL 加密的连接（hostssl）。客户端还可以指定它们只通过 SSL 连接到服务器

TYPE：值为local和host, Local值表示为主机Socket连接， host代表允许的主机地址连接

DATABASE: 允许访问的数据库名， all代表允许全部数据库

USER: 表示允许哪个用户访问数据库， all代表所有用户都可以访问

ADDRESS: 表示允许连接的主机信息

查看身份鉴别配置：

select * from pg_shadow；(select * from pg_catalog.pg_shadow)；

查看登录超时配置：

select * from pg_settings where ps.name like ‘timeout%’;

查看密码算法配置：

show password_encryption;

检查SSL/TLS配置：

SHOW ssl; 

SHOW ssl_cipher; 

SHOW ssl_cert_file; 

SHOW ssl_key_file;

执行more /var/lib/pgsql/data/postgresql.conf查看ssl支持是否启动。（postgresql.conf文件目录有可能不一样）(/var/lib/pgsql/11/data/postgresql.conf)

（pg_hba.conf文件目录有可能不一样）

检查远程访问权限：

SELECT * FROM pg_hba_file_rules;

检查日志记录配置：

SHOW logging_collector; SHOW log_directory; SHOW log_filename; SHOW log_rotation_age; SHOW log_rotation_size;

检查数据备份策略：

SELECT * FROM pg_stat_bgwriter; SELECT * FROM pg_stat_replication;

检查安全漏洞和补丁情况：

SELECT version(); SELECT current_setting('server_version');

检查系统监控和报警配置：

SELECT * FROM pg_stat_database; SELECT * FROM pg_stat_activity;
