为 Squid 服务创建 keytab 文件

2023年12月13日

ID 166438

您可以使用相同的用户账户在集群的所有节点上进行身份验证。为此,您必须为这些节点中的每一个创建一个包含服务主体名称 (SPN)keytab 文件。创建 keytab 文件时,必须使用属性生成(哈希函数修饰符)。

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

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

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

要使用单个用户账户为 Squid 服务创建 keytab 文件:

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

    C:\Windows\system32\ktpass.exe -princ HTTP/<具有 Squid 服务的服务器名称>@<大写的 realm Active Directory 域名> -mapuser squid-user@<realm 大写 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * +dumpsalt -out <文件路径>\<文件名>.keytab

    应该用小写指定托管 Squid 服务的服务器名称(例如,proxy.company.com)。

    当您运行命令时,该实用程序会提示您输入 squid-user 的密码。

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

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

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

    当您运行命令时,该实用程序会提示您输入 squid-user 的密码。

将为 Squid 服务创建 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 squid-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 squid-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 squid-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。

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

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

    C:\Windows\system32\ktpass.exe -princ HTTP/<具有 Squid 服务的服务器小写名称>@<realm 大写 Active Directory 域名> -mapuser squid-user@<realm 大写 Active Directory 域名> -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -out <文件路径>\<文件名>.keytab

    应该用小写指定托管 Squid 服务的服务器名称(例如,proxy.company.com)。

    当您运行命令时,该实用程序会提示您输入 squid-user 的密码。

    控制节点的 SPN 条目将添加到创建的 keytab 文件中。

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

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

    当您运行命令时,该实用程序会提示您输入 squid-user2 的密码。

将为 Squid 服务创建 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 squid-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 squid-user2@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 squid-user3@TEST.LOCAL -crypto AES256-SHA1 -ptype KRB5_NT_PRINCIPAL -pass * -in C:\keytabs\filename2.keytab -out C:\keytabs\filename3.keytab

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

Did you find this article helpful?
What can we do better?
Thank you for your feedback! You're helping us improve.
Thank you for your feedback! You're helping us improve.