gs_checkse

背景信息

gs_checkse工具用来帮助检查数据库连接配置、文件目录安全、安全认证配置等内容,并对数据库这些安全配置信息进行设置。

前提条件

  • 当前的硬件和网络环境正常。

  • 需先安装好openGauss数据库,需使用om安装。

  • 使用普通用户执行gs_checkse命令。

语法

  • 检查数据库安全配置信息

    gs_checkse -i ITEM [-f HOSTFILE] [-h HOSTNAME] [-X XMLFILE] [--detail] [-o OUTPUT] [-l LOGFILE]
    
  • 显示帮助信息

    gs_checkse -? | --help 
    
  • 显示版本号信息

    gs_checkse -V | --version
    

参数说明

  • -i

    列表编号。格式:-i A、-i B1、-i A1 -i A2或-i A1,A2。

    取值范围:A1…A10、B1…B10。

    说明:

    A1…A10 表示只检查数据库安全配置参数,并不设置。 B1…B10 表示将数据库安全配置参数设置为期望值。 A和B不能同时输入。

    详细的检查项请参见表1

  • -f

    主机名称列表文件。

    说明: -f和-h参数不能同时使用,-f或-h指定多个节点时,需要保证hot_standby为on。

    取值范围:主机名称的列表。

  • -h

    指定需要检查的主机名称,可以同时指定多个主机,主机之间使用“,”分割。

    取值范围:openGauss的主机名称。如果不指定主机,则检查当前主机。

  • -X

    openGaussXML配置文件。

  • --detail

    显示检查结果详情。

  • -o

    指定SE检查报告输出到指定的文件。

    不指定则将检查结果输出到屏幕上。

  • -l

    指定日志文件及存放路径,若不指定则在日志目录下的用户目录的om目录下。

    默认值:${GAUSSLOG}/omm/om/gs_checkse-YYYY-MM-DD_hhmmss.log。

  • -?, --help

    显示帮助信息。

  • -V, --version

    显示版本号信息。

表 1 数据库安全配置检查项

数据库安全配置检查项详细内容请参考安全配置基线

编号

检查项

检查项详细说明

A1

连接配置(Checking Connection configuration)

侦听主机上IP地址检查:禁止侦听主机上所有IP地址

对外服务端口检查:确保对外服务端口使用非默认端口号

数据库实例的最大连接数检查:确保数据库实例的最大连接数配置正确

Database的最大连接数检查:确保Database的最大连接数配置正确

管理员使用的连接数检查:确保系统管理员使用的连接数配置正确

用户的最大连接数检查:确保用户的最大连接数配置正确

UNIX域套接字的访问权限检查:确保UNIX域套接字的访问权限配置正确

host条目使用md5认证检查:确保没有host条目使用md5认证

hostnossl条目检查:确保没有hostnossl条目

host条目的源地址指定为0.0.0.0/0检查:确保没有host条目的源地址指定为0.0.0.0/0

服务端使能SSL连接检查:确保服务端使能SSL连接

A2

文件目录安全(File directory security)

数据库安装目录权限检查:确保数据库安装目录权限最小化

共享目录权限检查:确保共享目录权限最小化

二进制文件目录权限检查:确保二进制文件目录权限最小化

数据目录权限检查:确保数据目录权限最小化

日志归档目录权限检查:检查${GAUSSHOME}/archive目录,确保日志归档目录权限最小化

postgresql.conf文件权限检查:确保postgresql.conf文件权限最小化

pg_hba.conf文件权限检查:确保pg_hba.conf文件权限最小化

日志目录权限检查:确保日志目录权限最小化

A3

安全认证配置(Security authentication configuration)

客户端认证超时时间检查:确保客户端认证超时时间配置正确

认证加密迭代次数检查:确保认证加密迭代次数配置正确

账户登录失败尝试次数检查:确保账户登录失败尝试次数配置正确

A4

账号口令管理(Account_password_management)

密码复杂度校验检查:确保开启密码复杂度校验

密码加密方式检查:确保密码加密方式配置正确

密码不可重用天数检查:确保密码不可重用天数配置正确

账户自动解锁时间检查:确保账户自动解锁时间配置正确

首次登录时修改初始用户的密码检查:确保首次登录时修改初始用户的密码

用户的有效期限检查:确保配置用户的有效期限

密码的有效期限检查:确保配置密码的有效期限

A5

权限管理(Permission management)

pg_authid系统表的权限检查:禁止PUBLIC角色拥有pg_authid系统表的权限

public模式下CREATE权限检查:禁止PUBLIC角色在public模式下拥有CREATE权限

对象的所有权限检查:禁止将对象的所有权限授予PUBLIC角色

普通用户非必须的管理权限检查:确保撤销普通用户非必须的管理权限

三权分立配置检查:确保开启三权分立配置

管理员服务端文件COPY权限检查:确保取消系统管理员服务端文件COPY权限

A6

数据库审计(Database auditing)

数据库审计功能检查:确保开启数据库审计功能

用户登录和注销审计检查:确保开启用户登录和注销审计

数据库启动、停止、恢复和切换审计检查:确保开启数据库启动、停止、恢复和切换审计

用户锁定和解锁审计检查:确保开启用户锁定和解锁审计

权限授予和回收审计检查:确保开启权限授予和回收审计

数据库对象的添加、删除、修改审计检查:确保开启数据库对象的添加、删除、修改审计

数据库对象的查询审计检查:确保开启数据库对象的查询审计

审计优先策略检查:确保审计优先策略配置正确

单个审计文件的最长记录时间检查:确保单个审计文件的最长记录时间配置正确

单个审计日志文件的最大容量检查:确保单个审计日志文件的最大容量配置正确

审计日志文件占用的最大磁盘空间检查:确保所有审计日志文件占用的最大磁盘空间配置正确

审计日志文件最大数目检查:确保审计日志文件最大数目配置正确

A7

错误报告和日志配置(Error reporting and logging configuration)

日志收集器检查:确保开启日志收集器

日志名称检查:确保日志名称配置正确

日志文件权限检查:确保日志文件权限配置正确

覆盖写入同名日志文件检查:禁止覆盖写入同名日志文件

单个日志文件最大记录时间检查:确保单个日志文件最大记录时间配置正确

单个日志文件最大容量检查:确保单个日志文件最大容量配置正确

客户端日志等级检查:确保客户端日志等级配置正确

服务器日志等级检查:确保服务器日志等级配置正确

记录产生错误的SQL语句日志级别检查:确保记录产生错误的SQL语句日志级别配置正确

用户登录时日志记录功能检查:确保开启用户登录时日志记录功能

用户注销时日志记录功能检查:确保开启用户注销时日志记录功能

写入服务器日志的详细度检查:确保写入服务器日志的详细度配置正确

日志记录主机名检查:确保日志不记录主机名

解析树调试打印检查:确保关闭解析树调试打印开关

执行计划调试打印检查:确保关闭执行计划调试打印开关

查询重写调试打印检查:确保关闭查询重写调试打印开关

A8

备份配置(Backup configuration)

WAL信息记录级别检查:确保WAL信息记录级别配置正确

归档模式检查:确保开启归档模式

A9

运行环境配置(Runtime environment configuration)

文件权限掩码检查:确保文件权限掩码配置正确

用户进程信息检查:确保对其他用户隐藏进程信息

NTP时钟同步检查:确保开启NTP时钟同步

A10

其它配置(Other configurations)

backslash_quote参数检查:确保backslash_quote参数配置正确

系统表结构检查:禁止修改系统表结构

B1

设置连接配置(Set Connection configuration)

侦听主机IP地址设置:当参数值为 * 时,进行修改设置

数据库实例的最大连接数设置:当参数值不为5000时,进行修改设置为默认值为5000

Database的最大连接数设置:当参数值为-1或大于1024时表示不限制连接,进行修改设置为1024

管理员使用的连接数设置:当参数值不为3时,进行修改设置

用户的最大连接数设置:当用户允许无限制连接时,进行修改设置为1024

UNIX域套接字的访问权限设置:当参数值不为0700时,进行修改设置

服务端使能SSL连接设置:确保该功能开启,如果不开启则修改设置

B2

设置文件目录安全(Set File directory security)

数据库安装目录权限设置:当数据库安装目录权限不是最小化时,对其进行修改设置。

共享目录权限设置:当数据库共享目录权限不是最小化时,对其进行修改设置。

二进制文件目录权限设置:当二进制文件目录权限不是最小化时,对其进行修改设置。

数据目录权限设置:当数据目录权限不是最小化时,对其进行修改设置。

日志归档目录权限设置:当日志归档目录权限不是最小化时,对其进行修改设置。

postgresql.conf文件权限设置:当postgresql.conf文件权限不是最小化时,对其进行修改设置。

pg_hba.conf文件权限设置:当pg_hba.conf文件权限不是最小化时,对其进行修改设置。

日志目录权限设置:当日志目录权限不是最小化时,对其进行修改设置。

B3

设置安全认证配置(Set Security authentication configuration)

客户端认证超时时间设置:当参数值不为1min时,对其进行修改设置。

认证加密迭代次数设置:当参数值小于10000时,对其进行修改设置

账户登录失败尝试次数设置:当参数值为0时,对其进行修改设置为默认值10

B4

设置账号口令管理(Set Account password management)

密码复杂度校验设置:当参数值不为1时,对其进行修改设置。

密码加密方式设置:当参数值为0或1则失败,对其进行修改设置参数为2

密码不可重用天数设置:当参数值为0时,对其进行修改设置为60

账户自动解锁时间设置:当参数值为0时,对其进行修改设置为1d

用户有效期限设置:当存在未配置有效期的用户时,对其进行修改配置

密码有效期配置:当参数值为0时,对其进行修改配置为90

B5

设置权限管理(Set Permission management)

pg_authid表权限用户设置:禁止PUBLIC角色拥有pg_authid系统表的权限

public模式create权限设置:禁止PUBLIC角色在public模式下拥有CREATE权限

角色所有权限设置:禁止将对象的所有权限授予PUBLIC角色

普通用户管理权限设置:确保撤销普通用户非必须的管理权限

三权分立设置:当参数值不为on时,对其修改确保开启三权分立配置

管理员copy权限设置:确保取消系统管理员服务端文件COPY权限

B6

设置数据库审计(Set Database auditing)

数据库审计功能设置:如果数据库审计功能为开启,将该功能开启。

用户登录和注销审计设置:当参数值不为7时,对其进行修改设置

数据库启动、停止、恢复和切换审计设置:当参数值不为1时,对参数进行修改

用户锁定和解锁审计设置:当参数值不为1时,对其进行修改设置

权限授予和回收审计设置:当参数值不为1时,对其进行修改设置

数据库对象的添加、删除、修改和审计设置:当参数之小于67121159时,对其进行设置为默认值67121159

数据库对象的查询审计设置:当参数值不为1时,对其进行修改设置

审计优先策略设置:当该功能未开启时,进行设置开启

单个文件的最长记录时间设置:当单个记录时间不为1d时,进行设置推荐设置为默认值1d

单个审计日志文件的最大容量设置:当参数值不为10MB时,进行设置推荐设置为10MB

所有审计日志文件占用的最大磁盘空间设置:当参数值不为1GB时,进行设置推荐配置不小于1GB

审计日志文件最大数目设置:当参数值不为1048576时,进行设置推荐设置为默认值1048576

B7

设置错误报告和日志配置(Set Error reporting and logging configuration)

日志收集器设置:当该功能未开启时进行设置开启。

日志名称设置:当参数值不为默认配置时,进行修改配置

日志文件权限设置:当参数值不为0600时,进行修改设置

覆盖写入同名文件设置:当参数值不为off时进行设置

单个日志文件文件最大记录时间设置:当参数值不为1d时进行设置,推荐设置为默认值1d

单个日志文件最大容量设置:当参数值不为20MB时,推荐设置为默认值20MB

客户端日志等级设置:当参数值不为notice时,进行设置

服务器日志等级设置:当参数值不为warning时,进行设置

记录产生错误的SQL语句日志级别设置:当参数值不为error时进行设置

用户登录时日志记录设置:当参数值不为on时,进行设置修改

用户注销时日志记录设置:当该功能不开启时,进行设置开启

写入服务器日志的详细度设置:当参数值不为default时,进行设置修改

日志不记录主机名设置:当参数值不为off时进行设置修改

解析树调试设置:当参数值设置不为off时,进行设置修改

执行计划调试打印设置:当参数值不为off时,进行设置修改

重写调试打印设置:当参数值不为off时,进行设置修改

B8

设置备份配置(Set Backup configuration)

WAL信息记录级别设置:检查该参数的值是否为hot_standby,如果不是进行设置修改

B9

设置运行环境配置(Set Runtime environment configuration)

文件权限掩码设置:当该参数值不为0077时,进行修改设置,需用户手动执行source ~/.bashrc命令

B10

设置其它配置(Set Other configurations)

backslash_quote参数设置:当该参数值不为safe_encoding时,进行修改设置

系统表结构设置:当参数值不为off时,进行修改设置

说明:

  • 上述检查项和设置项用于确保参数符合预设的默认值。请根据实际需求对这些参数进行相应调整。关于参数的详细检查与设置步骤,请参阅相关的安全基线配置文档以获取更多信息。

  • B9选项进行设置umask参数值后,需要用户手动执行source ~/.bashrc命令,使配置生效。

  • 使用gs_checkse设置选项参数时,会进行重启数据库操作使配置生效,请谨慎操作,根据需要进行选项修复执行,以避免数据库重启对正在进行的操作造成影响。

示例

使用如下命令检查数据库安全配置参数。

gs_checkse -i A -h plat1 -o /var/log/checkse
Performing operation system check/set. Output the result to the file /var/log/checkse.
Operation system check/set is completed.
Total numbers:10. Abnormal numbers:0. Warning numbers:2.

查看数据库安全配置参数检查结果。

vim /var/log/checkse 
Checking items:
    A1. [ Checking Connection configuration ]                   : Warning
    A2. [ File directory security ]                             : Normal
    A3. [ Security authentication configuration ]               : Normal
    A4. [ Account_password_management ]                         : Normal
    A5. [ Permission management ]                               : Normal
    A6. [ Database auditing ]                                   : Normal
    A7. [ Error reporting and logging configuration ]           : Normal
    A8. [ Backup configuration ]                                : Normal
    A9. [ Runtime environment configuration ]                   : Warning
    A10.[ Other configurations ]                                : Normal

相关命令

gs_checkgs_checkperfgs_checkos

意见反馈
编组 3备份
    openGauss 2024-09-16 00:59:40
    取消