create_stap_inspection_engine

此命令将检查引擎添加到指定的 S-TAP®S-TAP 只能通过该 S-TAP 的活动 Guardium® 主机修改配置,而且只能在 S-TAP 在线时修改。

此 API 在 Guardium V9.5 及更高版本中可用。

REST API 语法

此 API 可通过 POST 方法,以 REST 服务的形式使用。 请按如下方式调用此 API:
POST https://[Guardium hostname or IP address]:8443/restAPI/inspection_engine

GuardAPI 语法

create_stap_inspection_engine parameter=value

参数

参数 值类型 描述
client 字符串 必需。
通过使用 IP 地址/掩码格式的地址列表 n.n.n.n/m.m.m.m,限制 S-TAP 仅监视来自指定 IP 地址和掩码对的流量。 如果输入了不正确的 IP 地址/掩码,那么 S-TAP 不会启动。 有效值:
  • 用户定义的列表
  • 0.0.0.0/0.0.0.0, ::/0: 选择所有客户机。
  • 127.0.0.1/255.255.255.255, ::1/0: 仅本地流量
不能同时指定客户机 IP/掩码 (networks) 和排除客户机 IP/掩码 (exclude networks)。
connectToIp 字符串 S-TAP 用于连接到数据库的 IP 地址。 某些数据库仅接受 Guardium 系统的实际 IP 地址上的本地连接,而不接受缺省值 (127.0.0.1, :: 1)。 启用 K-TAP 时,此参数用于 Solaris 区域和 AIX® WPAR。 将其设置为区域 IP 地址以捕获流量。
db2SharedMemAdjustment 整数 在选择 Db2® 作为数据库类型并且监视共享内存连接时必需。 这是相对于共享内存区域中服务器部分的偏移量。 相对于 Db2 共享内存包开头的偏移量取决于 Db2 版本:在 8.2.1 之前的版本中为 32,在 8.2.1 及更高版本中为 80。
db2SharedMemClientPosition( DB2® only) 整数 这是相对于共享内存区域中客户机部分的偏移量。 当选择 DB2 作为数据库类型,并监视共享内存连接时,此参数为必需。 Linux : 使用脚本 find_db2_shmem_parameters.sh 查找数值。 该脚本位于 stap_directory/bin 中,输出检测引擎中定义的 Db2 共享内存参数。 使用语法,以根用户或 Db2 用户身份运行它: find_db2_shmem_parameters.sh <instance name>. 您可以在任何目录下运行它。视窗: 客户端偏移量可通过 Db2 参数 ASLHEAPSZ 的值乘以 4096 得出。 此参数的缺省值为 61440(十进制数)。 此参数是通过获取 Db2 数据库配置值 ASLHEAPSZ 并乘以 4096 计算的。 要获取 ASLHEAPSZ 的值,请执行以下 Db2 命令: db2 get dbm cfg 并查找 ASLHEAPSZ 的值。 此值通常为 15,这会产生缺省值 61440。 如果此值并非 15,请获取此值并乘以 4096 来获取相应的客户机偏移量。
db2SharedMemSize 整数 Db2 共享内存段大小。 当选择 DB2 作为数据库类型,并监视共享内存连接时,此参数为必需。
dbInstallDir(仅限 Linux) 字符串
  • Db2, Informix®: 数据库安装目录的完整路径名。
  • Db2 出口和 Informix 出口: 值必须与数据库中的 $HOME 值 (或 $Db2_HOME for Db2 Exit) 相同; 否则 tap_identifier 无法正常工作。
  • Oracle:数据库所有者 HOME 目录。 它必须与 ATAP 配置中的 db_base 相匹配。 请参阅 Linux -UNIX: Oracle 特有的 guardctl 参数
  • 所有其他数据库类型:NULL。
dbUser 字符串 数据库服务器进程(例如,oracle)的所有者的操作系统用户名(区分大小写)。 此参数指定允许哪个用户使用 db_request_handler 套接字。 如果您未使用 root 用户,那么它是必需的。 如果设置为无效值,那么 A-TAP 无法访问套接字以检索访问 K-TAP的许可权。 在这种情况下,它需要具有组成员资格的授权才能将解密的流量记录到 K-TAP (通过使用 guardctl authorize-user 命令)。 您可以定义多个用户的逗号分隔字符串。
dbVersion 字符串 数据库版本。 字符串必须以数字(而不是字母)开头。
encryption(仅限 Linux) 布尔值 有效值:
  • 0:未加密
  • 1:已加密
缺省值 = 0 (false)

在 Solaris , HPUX 和 AIX上激活 Oracle (V11 和 V12) 和 Sybase 的 ASO 或 SSL 加密流量。

对于 Oracle,在 guard_tap.ini 文件中指定 db_version (例如, db_version=12)

对于 Oracle12 SSL,请在所有平台上进行检测。 对于 Oracle11 SSL,请在 AIX 上进行检测。

对于需要检测的任何 Oracle ,如果您在 guard_tap.ini (在 Linux®上不受支持) 中使用 encryption=1 ,那么必须在设置该参数之前进行检测。

某些数据库要求在启用加密后重新启动。

使用 GIM 配置 S-TAP 时,必须将 GIM_ROOT_DIR 设置为模块的绝对路径,例如 /usr/local/guardium/modules

excludeClient 字符串 要从监视中排除的客户机 IP 地址和相应掩码的列表。 使用此选项来配置 S-TAP 以监视除特定客户机或子网 (或其集合) 以外的所有客户机。 不能同时指定客户机 IP/掩码 (networks) 和排除客户机 IP/掩码 (exclude networks)。
ieIdentifier 字符串 用于区分各个检查引擎。 如果未指定,那么 Guardium 会使用使用数据库类型和序号的唯一名称自动填充该字段。
informixVersion 整数 Informix 版本。
instanceName(仅限 Windows) 字符串 此服务器上的数据库实例名称。 对于使用加密的 MS SQL Server ; 使用 Kerberos 认证的 MS SQL Server ; Db2 出口流量收集; Db2 SHM 流量,这是必需的。 (缺省值为 MSSQLSERVER。)
interceptTypes(仅限 Linux) 字符串 除非绝对必要,否则请勿更改此参数。 IE 所拦截的协议类型。 有效值:
  • NULL:自动拦截数据库支持的所有协议
  • 逗号分隔列表:IE 仅拦截这些协议类型。
ktapDbPort(仅限 Linux) 字符串 对于 K-TAP 和 PCAP,识别所要监视的数据库端口或端口范围。 对于出口库,请将其值用于 db_home
namedPipe(仅限 Windows) 字符串 指定 MS SQL Server 本地访问所使用的命名管道。 如果使用了命名管道,但此参数中未指定任何内容,那么 S-TAP 将尝试从注册表中检索命名管道名称。
portMax 字符串 (仅限监视网络流量)要用于侦听数据库流量的最高编号端口。
portMin 字符串 (仅限监视网络流量)要用于侦听数据库流量的最低编号端口。 与 portMax, 此参数定义为此数据库实例监视的端口范围。 通常该范围仅包含单个端口。 对于 Kerberos 检查引擎,请将开始和结束值设置为 88-88。 如果使用了范围,那么不要在该范围中包含额外的端口。 当 S-TAP 试图分析不需要的 traffic.Examples:To 监视器范围 1521-1525(五个端口)且没有端口转发时,额外的端口可能会导致过多的资源消耗:
  • portMin=1521
  • portMax=1525
  • ktapDbPort=1521
要监视 2000 至 2004(5 个端口)的范围,其中网络端口 2000 映射到本地端口 1521:
  • portMin=2000
  • portMax=2004
  • ktapDbPort=1521
priorityCount 整数 减少空白 DB_USER 或?在桌子上。 在会话创建时,第一个 priority_count 包被标记为高优先级标志,并被传输到收集器上的特殊高优先级队列。 有效值:
  • 0:禁用
  • 协议 7:1-2048:包数
  • 协议 8:正整数:包数
缺省值:20
procName(仅限 Linux) 字符串 此参数的值取决于它是否在 Exit 中,以及是否存在 A-TAP。
  • 出口库:请参阅 Linux -UNIX:配置出口库
  • 使用 A-TAP:请参阅 Linux -UNIX:数据库特定的 guardctl 参数
  • 不存在 A-TAP:数据库可执行文件的完整路径名。 例如:
    • Oracle: /$ORACLE_HOME/bin/oracle
    • Informix: /INFORMIXTMP/.inf.sqlexec. 适用于除 Linux 以外的所有 Informix 平台。
    • 对于在 Linux 上运行的 Informix,示例:/home/informix11/bin/oninit
    • MYSQL:mysql
procNames(仅限 Windows) 字符串 要监视的数据库服务可执行文件。 例如,Db2 IE 将是 TAP_DB_PROCESS_NAMES=Db2SYSCS.EXE。 使用命名管道时,仅适用于 Oracle 或 MS SQL Server。 对于 Oracle,该列表通常有两个条目:oracle.exe 和 tnslsnr.exe。 对于 MS SQL Server,该列表通常是一个条目:sqlservr.exe。
protocol 字符串 必需。 受监视的数据存储库的类型。 Linux -UNIX: ASTERDB, Cassandra , CockroachDB , Couchbase , Db2 , Db2 退出, ElasticSearch, 排除 IE、FTP, GreenplumDB, HADOOP、HIVE、HP- Vertica , HTTP , HUE、IMPALA, Informix , Informix 退出, KERBEROS, MariaDB, MemSQL, MongoDB, Mysql, Neo4j , Netezza® , Oracle , PostgreSQL, REDIS、Redshift, SAP Hana, Sybase , Teradata , Teradata 退出, WebHDFS, Windows 文件共享 Windows: ASTER, Cassandra, CouchDB, Db2, Db2 Exit, exclude IE, FTP, GreenplumDB, HIVE, HTTP, HUE, IMPALA, Informix, Informix Exit, MariaDB, MongoDB, MSSQL, Mysql, Oracle, PostgreSQL, Sybase, Teradata, WebHDFS, Windows 文件共享。
stapHost 字符串 必需。 安装了 S-TAP 的数据库服务器的主机名或 IP 地址。
teeListenPort 字符串 不推荐。 当使用 K-TAP 监视机制时,替换为参数 real_db_port
teeRealPort 字符串 不推荐。
unixSocketMarker(仅限 Linux) 字符串 为 Oracle、 MySQL, 和 Postgres 指定 UNIX® 域套接字标记。 通常缺省值是正确的,但当命名管道或 UNIX 域套接字流量不起作用时,您需要确保正确设置此值。 例如,对于 Oracle,请将 unix_domain_socket_marker 设置为 tnsnames.ora 中定义的 IPC 的 KEY。 如果设置为 NULL 或未设置,那么 S-TAP 将使用已定义的缺省标记,如下所示:* MySQL - "mysql.sock" * Oracle - "/.oracle/" * Postgres - ".s.PGSQL.5432"
api_target_host 字符串

指定执行 API 所在的目标主机。有效值:
  • all_managed:在所有受管单元上执行,但不在中央管理器上执行
  • all:在所有受管单元和中央管理器上执行
  • group:<group name>: 在 <group name> 标识的所有受管单元上执行
  • 受管单元的主机名或 IP 地址:从中央管理器指定,以便在受管单元上执行。 例如,api_target_host=10.0.1.123
  • 中央管理器的主机名或 IP 地址:从受管单元指定,以便在中央管理器上执行。 例如,api_target_host=10.0.1.123

IP 地址必须符合网络的 IP 方式。 在双重 IP 方式下,请使用向中央管理器注册受管单元时使用的 IP 协议。 例如,如果该注册使用的是 IPv6,请指定 IPv6 地址。 主机名与 IP 方式无关,可以在任何方式下使用。

示例

下面的示例显示了如何使用 grdapi 在 MySQL 数据库上创建检测引擎,其 IP 地址为 127.0.0.1:

grdapi create_stap_inspection_engine connectToIp=127.0.0.1 db2SharedMemAdjustment=80 db2SharedMemClientPosition=0 db2SharedMemSize=131072 procName=/home/mysq57/mysql/bin/mysqld dbInstallDir=/home/mysql57 protocol=Mysql dbUser=mysq57 client=0.0.0.0/0.0.0.0 encryption=0 dbVersion=9