Kaspersky Web Traffic Security 帮助

用户身份验证

应用程序支持 Kerberos-NTLM 身份验证的配置。使用 NTLM 身份验证时,您可以配置域名扫描。这将有助于正确处理 NTLM 协议支持的不同用户域名格式。

推荐使用 Kerberos 身份验证,因为它是最可靠的机制。NTLM 身份验证允许黑客通过拦截网络流量来访问用户密码。

Microsoft 更新发布后(请参见ADV190023 LDAP Channel Binding 和 LDAP Signing了解详情),在 Kaspersky Web Traffic Security 中进行 NTLM 用户身份验证将不再有效。

对于两种身份验证,您都可以创建排除项,这可以让用户不用身份验证就访问 Web 资源。

本“帮助”部分内容

配置 Kerberos 身份验证

创建 keytab 文件

配置 NTLM 身份验证

配置域名扫描

添加身份验证排除项

页面顶端
[Topic 189897]

配置 Kerberos 身份验证

您可以创建一个 keytab 文件并将已安装应用程序的所有服务器的 SPN 添加到其中。这将使用户能够在所有集群节点上使用自己的域账户完成身份验证。

要在代理服务器上配置 Kerberos 身份验证:

  1. 在应用程序 web 界面中,选择 设置 → 内置代理服务器身份验证 区域。
  2. Kerberos 字段,单击 设置 链接。

    Kerberos 身份验证设置 窗口将打开。

  3. 设置切换开关到 已启用
  4. 单击上传上传 keytab 文件。

    如果之前已上传了 keytab 文件,要提换它,您必须单击 替换

    文件选择窗口将打开。

  5. 选择文件并单击 打开

    将上传 keytab 文件。

  6. 如果您要检查重复项的身份验证请求,请打开 使用重播缓存 切换开关。

    提供了更可靠的保护,但是会降低应用程序的性能。

  7. 单击 保存

    如果您更改了 已启用使用重播缓存 切换开关的位置,代理服务器将在保存更改时重启。重启完成前流量处理将被暂停。

将配置 kerberos 身份验证。代理服务器仅处理来自完成了身份验证流程的用户的请求。

页面顶端
[Topic 183523]

创建 keytab 文件

如果您已经为单点登录身份验证创建了 keytab 文件,您可以使用此文件在代理服务器上配置 Kerberos 身份验证。

您可以使用相同的用户账户在集群的所有节点上进行身份验证。为此,您必须为这些节点中的每一个创建一个包含

。创建 keytab 文件时,必须使用属性生成salt(哈希函数修饰符)。

生成的盐必须使用您选择的方法进行保存,以便随后将新的 SPN 添加到 keytab 文件中。

您还可以为要为其配置 Kerberos 身份验证的每个集群节点创建单独的 Active Directory 用户账户。

在您创建 keytab 文件之前

在创建 keytab 文件之前,对于每个 SPN,请确保它未在 Active Directory 中注册。您可以通过运行以下命令来执行此操作:setspn -Q <SPN>,其中 <SPN> 具有以下结构:HTTP/<集群节点的完全限定域名 (FQDN)>@<Active Directory 域的领域名称(大写)>

该命令应返回“未找到这样的 SPN”,这意味着所讨论的 SPN 未注册。如果 SPN 已注册,则在创建 keytab 文件之前,您需要从账户中取消分配 SPN 或在分配了此 SPN 的 Active Directory 中删除账户本身。

检查一个控制节点和辅助节点的 SPN 的示例:

setspn -Q HTTP/control-01.test.local@TEST.LOCAL

setspn -Q HTTP/secondary-01.test.local@TEST.LOCAL

setspn -Q HTTP/secondary-02.test.local@TEST.LOCAL

创建 keytab 文件

使用域管理员账户,在域控制器服务器或属于该域的 Windows Server 计算机上创建 keytab 文件。

要使用单个用户账户创建 keytab 文件:

  1. 在“Active Directory 用户和计算机”管理单元中,创建一个用户账户,例如 control-user
  2. 要使用 AES256-SHA1 加密算法,请在 Active Directory 用户和计算机管理单元中执行以下操作:
    1. 打开创建的账户的属性。
    2. 账户选项卡中,选择此账户支持 Kerberos AES 256 位加密复选框。
  3. 使用 ktpass 实用程序为 control-user 创建 keytab 文件。为此,请在命令行运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<控制节点的完全限定域名 (FQDN)>@<大写领域 Active Directory 域名> -mapuser control-user@<大写领域 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <文件路径>\<文件名>.keytab

    运行该命令时,实用程序将提示您输入 control-user 密码。

    带角色控制的节点的 SPN 将被添加到创建的 keytab 文件中。将显示生成的盐:带有盐“<哈希值>”的哈希密码。

  4. 对于集群的每个节点,将 SPN 条目添加到 keytab 文件中。为此,请运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<节点的完全限定域名 (FQDN)>@<大写领域 Active Directory 域名> -mapuser control-user@<大写领域 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前创建的文件的路径和名称>.keytab -out <路径和新名称>.keytab -setupn -setpass -rawsalt "<在第 3 步创建 keytab 文件时获得的 salt 的哈希值>"

    运行该命令时,实用程序将提示您输入 control-user 密码。

将创建 keytab 文件。此文件将包含集群节点的所有已添加的 SPN。

示例:

例如,您需要创建包含以下 3 个节点的 SPN 的 keytab 文件:control-01.test.localsecondary-01.test.localsecondary-02.test.local

要在 C:\keytabs\ 文件夹中创建包含控制节点 SPN 的 filename1.keytab 文件,必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out C:\keytabs\filename1.keytab

假定您获得了盐 "TEST.LOCALHTTPcontrol-01.test.local"

要再添加一个 SPN,必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

要添加第三个 SPN,您必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab -setupn -setpass -rawsalt "TEST.LOCALHTTPcontrol-01.test.local"

这将导致创建一个名为 filename3.keytab 的文件,其中包含所有三个添加的 SPN。

要针对每个节点使用单独的用户账户创建 keytab 文件:

  1. 在“Active Directory 用户和计算机”管理单元中,为每个集群节点创建一个单独的用户账户(例如,名称为 control-usersecondary1-usersecondary2-user 等的用户账户)。
  2. 要使用 AES256-SHA1 加密算法,请在 Active Directory 用户和计算机管理单元中执行以下操作:
    1. 打开创建的账户的属性。
    2. 账户选项卡中,选择此账户支持 Kerberos AES 256 位加密复选框。
  3. 使用 ktpass 实用程序为 control-user 创建 keytab 文件。为此,请在命令行运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<控制节点的完全限定域名 (FQDN)>@<大写领域 Active Directory 域名> -mapuser control-user@<大写领域 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <文件路径>\<文件名>.keytab

    运行该命令时,实用程序将提示您输入 control-user 密码。

    带角色控制的节点的 SPN 将被添加到创建的 keytab 文件中。

  4. 对于集群的每个节点,将 SPN 条目添加到 keytab 文件中。为此,请运行以下命令:

    C:\Windows\system32\ktpass.exe -princ HTTP/<节点的完全限定域名 (FQDN)>@<大写领域 Active Directory 域名> -mapuser secondary1-user@<大写领域 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in <先前创建的文件的路径和名称>.keytab -out <路径和新名称>.keytab

    运行该命令时,实用程序将提示您输入 secondary1-user 密码。

将创建 keytab 文件。此文件将包含集群节点的所有已添加的 SPN。

示例:

例如,您需要创建包含以下 3 个节点的 SPN 的 keytab 文件:control-01.test.localsecondary-01.test.localsecondary-02.test.local

要在 C:\keytabs\ 文件夹中创建包含控制节点 SPN 的 filename1.keytab 文件,必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/control-01.test.local@TEST.LOCAL -mapuser control-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out C:\keytabs\filename1.keytab

要再添加一个 SPN,必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-01.test.local@TEST.LOCAL -mapuser secondary1-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename1.keytab -out C:\keytabs\filename2.keytab

要添加第三个 SPN,您必须运行以下命令:

C:\Windows\system32\ktpass.exe -princ HTTP/secondary-02.test.local@TEST.LOCAL -mapuser secondary2-user@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab

这将导致创建一个名为 filename3.keytab 的文件,其中包含所有三个添加的 SPN。

在您创建 keytab 文件之后

在创建 keytab 文件之后,对于每个 SPN,确保它已注册并分配给相关账户。您可以通过运行以下命令来执行此操作:setspn -Q <SPN>,其中 <SPN> 具有以下结构:HTTP/<集群节点的完全限定域名 (FQDN)>@<Active Directory 域的领域名称(大写)>

该命令必须返回“找到现有的 SPN”以及分配了 SPN 的账户。

此外,创建 keytab 文件后,您可以检查分配给相关账户的 SPN 列表。为此,您可以运行以下命令:setspn -L <账户>,其中<账户>具有以下结构:<用户名>@<Active Directory 域的领域名称(大写)>

如果使用一个账户创建了 keytab 文件,则该命令应返回为其创建 keytab 文件的所有 SPN 的列表。如果为每个节点创建了单独账户的 keytab 文件,则该命令应返回一个分配给特定账户的 SPN。

针对一个账户的示例命令:

setspn -L control-user@TEST.LOCAL

每个节点单独账户的示例命令:

setspn -L control-user@TEST.LOCAL

setspn -L secondary1-user@TEST.LOCAL

setspn -L secondary2-user@TEST.LOCAL

页面顶端

[Topic 183739]

配置 NTLM 身份验证

推荐使用 Kerberos 身份验证,因为它是最可靠的机制。NTLM 身份验证允许黑客通过拦截网络流量来访问用户密码。

Microsoft 更新发布后(请参见ADV190023 LDAP Channel Binding 和 LDAP Signing了解详情),在 Kaspersky Web Traffic Security 中进行 NTLM 用户身份验证将不再有效。

要在代理服务器上配置 NTLM 身份验证:

  1. 在应用程序 web 界面中,选择 设置 → 内置代理服务器身份验证 区域。
  2. NTLM 字段,单击 设置 链接。

    NTLM 身份验证设置 窗口将打开。

  3. 设置切换开关到 已启用
  4. 域名 字段中,输入想要为其配置身份验证的域的名称。

    SRV 记录 用于搜索域控制器。

    要在 DNS 服务器上成功搜索域控制器,必须为指定域创建

    。这些记录通常会在部署 Active Directory 时自动创建。不过,您可以在必要时手动添加它们。

    您可以使用以下命令检查 SRV 记录是否可用和验证其字段:

    • 对于 Linux 操作系统,您可以使用以下任何命令:
      • host -t srv _ldap._tcp.<指定域名>
      • dig _ldap._tcp.<指定域名> srv
      • nslookup -type=srv _ldap._tcp.<指定域名>

      您必须先配置 DNS 客户端才能使用负责指定 DNS 区域的 DNS 服务器。

    • 对于 Windows 操作系统,请使用以下命令:

      nslookup –type=srv _ldap._tcp.<指定域名>

    根据以下程序进行域控制器搜索:

    1. 应用程序接收为 _ldap._tcp.<指定域名> 字符串找到的 SRV 记录列表。
    2. 所有记录根据 优先权 字段的值从高到低进行分组。在每个群组内,SRV 记录按照 权重 字段的值进行排序。

      您可以更改 DNS 服务器上的 SRV 记录字段(优先权和权重)来定义连接域控制器的顺序。

    3. 应用程序尝试与列表中的每个服务器相继建立连接,直到第一个成功连接。

    4. 如果无法用列表中的任何服务器建立连接,这个过程将重新开始。
  5. 如果您想要基于定义的设置测试域控制器连接,请单击 测试连接 按钮。

    测试结果显示在按钮的右侧。

  6. 单击 保存

    代理服务器将被重启。重启完成前流量处理将被暂停。

将配置 NTLM 身份验证。代理服务器仅处理来自完成了身份验证流程的用户的请求。

页面顶端
[Topic 183656]

配置域名扫描

建议启用域名扫描以确保正确操作流量处理规则和用户隶属工作区的条件的正确应用。如果您所在的组织在浏览器设置中用空白域部分或以应用程序不支持的格式保存了用户的域名,您可以禁用域名扫描。

域名的不同格式取自以下用户账户元素的组合:

  • NETBIOS 名称 – 由一个16字节地址组成的唯一域名,用于局域网中的识别。
  • DNS 名称 – 域名,包括所有被用点分开的 DNS 层级的父级域的名称。
  • sAMAccountName – Windows 2000格式之前的用户账户名称。
  • UPN 名称(用户主名称) – 用户账户名称,由用字符 @ 分开的 UPN 前缀(输入名称)和 UPN 后缀(域名)组成。

    DNS 名称被默认用作 UPN 后缀。您可以指定其它 UPN 后缀,并在账户属性而不是 DNS 名称中进行选择。

在 Active Directory 管理元件中,这些元素对应以下示例中呈现的字段,其中:

  • name – UPN 前缀
  • test.local – DNS 名称
  • TEST – NETBIOS 名称
  • lastname – sAMAccountName
  • test.com – 另外的 UPN 后缀

    dnsname

    alternativeUpn

    dns-upn

    user_properties

    Active Directory 管理单元中的域和用户账户属性

如果域名扫描被禁用,用户身份验证将根据下表执行。

域名扫描被禁用时的身份验证

域名格式

示例

身份验证

DNS-Name\sAMAccountName

test.local\lastname

已执行

NETBIOS-Name\sAMAccountName

test\lastname

已执行

UPN-Suffix\sAMAccountName

test.com\lastname

已执行

\sAMAccountName

<any value>\lastname

已执行

DNS-Name\UPN-Prefix

test.local\name

未执行。

NETBIOS-Name\UPN-Prefix

test\name

未执行。

UPN-Suffix\UPN-Prefix

test.com\name

未执行。

UPN-Prefix@DNS-Name

name@test.local

已执行,如果域的 DNS 名称被用作用户 UPN 前缀。

UPN-Prefix@NETBIOS-Name

name@test

未执行。

UPN-Prefix@UPN-Suffix

name@test.com

已执行,如果指定的 UPN 后缀被用作用户的 UPN 后缀。

sAMAccountName@DNS-Name

lastname@test.local

已执行

sAMAccountName@NETBIOS-Name

lastname@test

已执行

sAMAccountName@UPN-Suffix

lastname@test.com

未执行。

如果启用了域名扫描,只有当域名是用受支持的格式指定时,应用程序才会允许用户身份验证。在此情况下,应用程序将可以正确识别用户并应用所定义的流量处理规则和工作区设置。

受目前版本和6.0版本应用程序支持的域名格式请参见下表。

域名支持的格式

格式

示例

Support in version 6.0

NETBIOS\sAMAccountName

TEST\lastname

是(Y)

sAMAccountName@NETBIOS

lastname@TEST

sAMAccountName@DNS-Name

lastname@test.local

是(Y)

DNS-Name\sAMAccountName

test.local\lastname

UPN-Prefix@UPN-Suffix

name@test.com

要配置域名扫描:

  1. 在应用程序 web 界面中,选择 设置 → 内置代理服务器身份验证 区域。
  2. NTLM 字段,单击 设置 链接。

    NTLM 身份验证设置 窗口将打开。

  3. 设置 检查域名 切换开关到 已启用
  4. 允许的 DNS/NETBIOS 域名字段中,指定被允许的域名。
  5. 如果您想要添加多个名称,请点击 Proxy_icon_add 图标并在出现的输入字段中指定名称。
  6. 单击 保存

    代理服务器将被重启。重启完成前流量处理将被暂停。

将配置域名扫描。如果尝试用未被指定为允许域名的域名进行身份验证,代理服务器将不会把身份验证中继到 Active Directory 服务器。用户必须重新输入账户凭证。

页面顶端
[Topic 189886]

添加身份验证排除项

您可以将用户计算机或网页资源添加到身份验证排除项。如果请求发送自排除项列表上的计算机,或如果请求的是来自排除项列表的网页资源,用户将不必完成身份验证以连接到代理服务器。

排除项将应用于 Kerberos 身份验证和 NTLM 身份验证。

要添加身份验证排除项:

  1. 在应用程序 web 界面中,选择 设置 → 内置代理服务器身份验证 区域。
  2. 如果您想要允许指定计算机未经在代理服务器上进行身份验证就访问所有的网页资源,请在 设置组中输入其 IP 地址
    1. IP 地址 字段,单击 编辑所有 链接。

      IP 地址 窗口将打开。

    2. 输入一个或多个 IP 地址。

      您可以指定以下格式之一的 IP 地址:

      • IPv4 地址(例如,172.16.5.6)。
      • 在 CIDR 标记中带掩码的 Ipv4 子网地址(例如,192.168.1.0/24)。
      • IPv6 地址(例如,2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
      • 在 CIDR 标记中带掩码的 IPv6 子网地址(例如,fc00::/7)。

      指定多个 IP 地址时,用分号或新行将其隔开。

    3. 单击 添加

      添加的 IP 地址显示在条目字段下方的表中。如果输入有效格式的值,kwts_icon_alarm 图标将显示在其左侧。您可以使用行右侧的 铅笔。 按钮修改此地址。

    4. 单击 保存
  3. 如果您想要允许所有计算机连接到定义的网页资源而无需在代理服务器上进行身份验证,请在 目标 设置组中指定以下设置之一:
    • IP 地址
      1. IP 地址 字段,单击 编辑所有 链接。

        IP 地址 窗口将打开。

      2. 输入一个或多个 IP 地址。

        您可以指定以下格式之一的 IP 地址:

        • IPv4 地址(例如,172.16.5.6)。
        • 在 CIDR 标记中带掩码的 Ipv4 子网地址(例如,192.168.1.0/24)。
        • IPv6 地址(例如,2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
        • 在 CIDR 标记中带掩码的 IPv6 子网地址(例如,fc00::/7)。

        指定多个 IP 地址时,用分号或新行将其隔开。

      3. 单击 添加

        添加的 IP 地址显示在条目字段下方的表中。如果输入有效格式的值,kwts_icon_alarm 图标将显示在其左侧。您可以使用行右侧的 铅笔。 按钮修改此地址。

      4. 单击 保存
    • 主机名称
      1. 主机名 字段,单击 编辑所有 链接。

        主机名 窗口将打开。

      2. 输入一个或多个主机名。

        指定多个名称时,用分号或新行将其隔开。

        要启用子域,请使用值开头的点。在此情况下,您不可以指定子域为个别记录,因为这可能会导致代理服务器错误。例如,如果您指明是 .example.org,则不应该添加记录 abc.example.org

      3. 单击 添加

        添加的主机名显示在条目字段下方的表中。

      4. 如果想要筛选器包含指定名称的所有子域,请选择 包括子域 复选框。

        如果在值的开头输入了带有点的主机名,则将自动选中 包括子域 复选框。

      5. 单击 保存
  4. 单击 保存

将添加身份验证排除项。

页面顶端
[Topic 183704]