使用 SNC 部署适用于 SAP 的 Microsoft Sentinel 数据连接器

本文介绍如何部署适用于 SAP 的 Microsoft Sentinel 数据连接器,以使用安全网络通信 (SNC) 通过安全连接引入 SAP NetWeaver 和 SAP ABAP 日志。

SAP 数据连接器代理通常使用远程函数调用 (RFC) 连接以及用户名和密码连接到 SAP ABAP 服务器进行身份验证。

但是,某些环境可能要求在加密通道上建立连接,某些环境可能要求使用客户端证书进行身份验证。 在这些情况下,可以使用 SAP 的 SNC 安全地连接数据连接器。 完成本文中所述的步骤。

先决条件

若要使用 SNC 部署适用于 SAP 的 Microsoft Sentinel 数据连接器,你需要:

  • SAP 加密库
  • 网络连接。 SNC 使用端口 48xx(其中 xx 是 SAP 实例编号)连接到 ABAP 服务器。
  • SAP 服务器配置为支持 SNC 身份验证。
  • 自签名或企业证书颁发机构 (CA) 颁发的用于用户身份验证的证书。

注意

本文介绍配置 SNC 的示例案例。 在生产环境中,强烈建议你咨询 SAP 管理员来创建部署计划。

导出服务器证书

若要开始,请导出服务器证书:

  1. 登录到 SAP 客户端并运行 STRUST 事务。

  2. 在左窗格中,转到“SNC SAPCryptolib”并展开该部分。

  3. 选择系统,然后为“主体”选择一个值。

    服务器证书信息显示在“证书”部分中。

  4. 选择“导出证书”。

    显示如何导出服务器证书的屏幕截图。

  5. 在“导出证书”对话框中:

    1. 对于文件格式,请选择“Base64”。

    2. 在“文件路径”旁边,选择双框图标。

    3. 选择要将证书导出到的文件名。

    4. 选择绿色复选标记以导出证书。

导入证书

本节介绍如何导入证书,使其受到 ABAP 服务器的信任。 了解需要将哪个证书导入 SAP 系统非常重要。 只需将证书的公钥导入 SAP 系统。

  • 如果用户证书是自签名的:导入用户证书。

  • 如果用户证书由企业 CA 颁发:导入企业 CA 证书。 如果同时使用根 CA 服务器和从属 CA 服务器,请同时导入根 CA 和从属 CA 公共证书。

若要导入证书:

  1. 运行 STRUST 事务。

  2. 选择“显示”<->“更改”。

  3. 选择“导入证书”。

  4. 在“导入证书”对话框中:

    1. 在“文件路径”旁边,选择双框图标并转到证书。

    2. 转到包含证书的文件(仅公钥),然后选择绿色复选标记以导入证书。

      证书信息显示在“证书”部分。

    3. 选择“添加到证书列表”。

      证书显示在“证书列表”部分中。

将证书与用户帐户关联

要将证书与用户帐户关联:

  1. 运行 SM30 事务。

  2. 在“表/视图”中,输入“USRACLEXT”,然后选择“维护”。

  3. 查看输出,确定目标用户是否已具有关联的 SNC 名称。 如果没有与用户关联的 SNC 名称,请选择“新条目”。

    显示如何在 USERACLEXT 表中创建新条目的屏幕截图。

  4. 对于“用户”,请输入用户的用户名。 对于“SNC 名称”,输入前缀为“p:”的用户证书主体名称,然后选择“保存”。

    显示如何在 USERACLEXT 表中创建新用户的屏幕截图。

使用证书授予登录权限

若要授予登录权限:

  1. 运行 SM30 事务。

  2. 在“表/视图”中,输入“VSNCSYSACL”,然后选择“维护”。

  3. 在出现的信息提示中,确认表是跨客户端的。

  4. 在“确定工作区域: 条目”中,输入“E”作为“ACL 条目类型”,然后选择绿色复选标记。

  5. 查看输出,确定目标用户是否已具有关联的 SNC 名称。 如果用户没有关联的 SNC 名称,请选择“新条目”。

    显示如何在 VSNCSYSACL 表中创建新条目的屏幕截图。

  6. 输入带有 p: 前缀的系统 ID 和用户证书使用者名称。

    显示如何在 VSNCSYSACL 表中创建新用户的屏幕截图。

  7. 确保选中“已激活 RFC 条目”和“已激活证书条目”复选框,然后选择“保存”。

将 ABAP 服务提供商的用户映射到外部用户 ID

若要将 ABAP 服务提供商用户映射到外部用户 ID:

  1. 运行 SM30 事务。

  2. 在“表/视图”中,输入“VUSREXTID”,然后选择“维护”。

  3. 在“确定工作区域: 条目”中,为“工作区域”选择“DN”ID 类型”。

  4. 输入以下值:

    • 对于“外部 ID”,输入“CN=Sentinel”、“C=US”。
    • 对于“Seq.No”,输入“000”。
    • 对于“用户”,输入“SENTINEL”。
  5. 依次选择“保存”和“输入”。

    显示如何设置 SAP VUSREXTID 表的屏幕截图。

设置容器

注意

如果你使用 UI 设置 SAP 数据连接器代理容器,请不要完成本节中所述的步骤。 请改为在连接器页中继续设置连接器。

若要设置容器:

  1. 将 libsapcrypto.so 和 sapgenpse 文件传输到将在其中创建容器的系统

  2. 将客户端证书(私钥和公钥)传输到将创建容器的系统。

    客户端证书和密钥可以是 .p12、.pfx 或 Base64 .crt 和 .key 格式。

  3. 将服务器证书(仅限公钥)传输到将在其中创建容器的系统。

    服务器证书必须采用 Base64 .crt 格式。

  4. 如果客户端证书是由企业证书颁发机构颁发的,请将颁发的 CA 和根 CA 证书传输到将在其中创建容器的系统。

  5. 从 Microsoft Sentinel GitHub 存储库中获取 kickstart 脚本:

    wget https://raw.githubusercontent.com/Azure/Azure-Sentinel/master/Solutions/SAP/sapcon-sentinel-kickstart.sh
    
  6. 更改脚本的权限以使其可执行:

    chmod +x ./sapcon-sentinel-kickstart.sh
    
  7. 运行脚本并指定以下基参数:

    ./sapcon-sentinel-kickstart.sh \
    --cloud mooncake \
    --use-snc \
    --cryptolib <path to sapcryptolib.so> \
    --sapgenpse <path to sapgenpse> \
    --server-cert <path to server certificate public key> \
    

    如果客户端证书采用 .crt 或 .key 格式,请使用以下开关:

    --client-cert <path to client certificate public key> \
    --client-key <path to client certificate private key> \
    

    如果客户端证书采用 .pfx 或 .p12 格式,请使用以下开关:

    --client-pfx <pfx filename>
    --client-pfx-passwd <password>
    

    如果客户端证书是由企业 CA 颁发的,请在信任链中为每个 CA 添加此开关:

    --cacert <path to ca certificate>
    

    例如:

    ./sapcon-sentinel-kickstart.sh \
    --cloud mooncake \
    --use-snc \
    --cryptolib /home/azureuser/libsapcrypto.so \
    --sapgenpse /home/azureuser/sapgenpse \
    --client-cert /home/azureuser/client.crt \
    --client-key /home/azureuser/client.key \
    --cacert /home/azureuser/issuingca.crt
    --cacert /home/azureuser/rootca.crt
    --server-cert /home/azureuser/server.crt \
    

有关 kickstart 脚本中提供的选项的详细信息,请参阅参考:Kickstart 脚本

故障排除和参考

有关排除故障的信息,请参阅以下文章:

如需参考,请参阅以下文章: