为 Kerberos 身份验证配置 Squid 服务

2023年12月13日

ID 166440

如果 Kaspersky Web Traffic Security 是从 RPM 或 DEB 软件包安装到即用型操作系统的,则这些说明适用。

如果您要用名称包含根域名 .local 的域来配置身份验证,您必须完成以下步骤以便操作系统准备进行正确的 Kerberos 身份验证。

要为 Kerberos 身份验证配置 Squid 服务:

  1. 如果正在使用 CentOS 版本 8.x 或 Red Hat Enterprise Linux 版本 8.x 操作系统,配置加密算法使用策略。为此,请执行命令:

    update-crypto-policies --set LEGACY

  2. 复制 squid.keytab 文件到文件夹 /etc/squid/。
  3. 配置 Keytab 文件访问权限。为此,请根据所使用的操作系统运行以下命令:
    • CentOS, Red Hat Enterprise Linux 或 SUSE Linux Enterprise Server:

      chown squid:squid /etc/squid/squid.keytab

      chmod 400 /etc/squid/squid.keytab

    • Ubuntu、Debian 或 ALT Server:

      chown proxy:proxy /etc/squid/squid.keytab

      chmod 400 /etc/squid/squid.keytab

    默认情况下,krb5.keytab 文件拥有者为超级用户。

  4. 根据操作系统,请将以下参数添加到 /etc/squid/squid.conf 文件的开头:
    • CentOS 或 Red Hat Enterprise Linux:

      auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<大写的 realm Active Directory 域名>

      auth_param negotiate children 100 startup=0 idle=10

      auth_param negotiate keep_alive on

      acl authenticated_user proxy_auth REQUIRED

      http_access deny !authenticated_user

    • SUSE Linux Enterprise Server:

      auth_param negotiate program /usr/sbin/negotiate_kerberos_auth -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<大写的 realm Active Directory 域名>

      auth_param negotiate children 100 startup=0 idle=10

      auth_param negotiate keep_alive on

      acl authenticated_user proxy_auth REQUIRED

      http_access deny !authenticated_user

    • Ubuntu、Debian 或 ALT Server:

      auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<大写的 realm Active Directory 域名>

      auth_param negotiate children 100 startup=0 idle=10

      auth_param negotiate keep_alive on

      acl authenticated_user proxy_auth REQUIRED

      http_access deny !authenticated_user

  5. 如果您想要用调试模式启用事件记录,请在 /etc/squid/squid.conf 文件中将 -d 参数添加到第一个字符串。
    • CentOS 或 Red Hat Enterprise Linux:

      auth_param negotiate program /usr/lib64/squid/negotiate_kerberos_auth -d -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<realm Active Directory 域名>

    • SUSE Linux Enterprise Server:

      auth_param negotiate program /usr/sbin/negotiate_kerberos_auth -d -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<大写的 realm Active Directory>

    • Ubuntu、Debian 或 ALT Server:

      auth_param negotiate program /usr/lib/squid/negotiate_kerberos_auth -d -k /etc/squid/squid.keytab -s HTTP/<托管 Squid 服务的服务器名称>@<realm Active Directory 域名>

    调试事件将被写入文件 /var/log/squid/cache.log。

  6. 如果想要禁用重播缓存,根据所用的操作系统执行以下操作:
    • 对于 CentOS 或 Red Hat Enterprise Linux,添加以下行到 /etc/sysconfig/squid 文件:

      KRB5RCACHETYPE=none

    • 对于 Ubuntu 18.04.х、Debian 9.х 或 ALT Server,添加一下行到 /etc/default/squid 文件:

      KRB5RCACHETYPE=none

    • 对于 SUSE Linux Enterprise Server 15.x 或 Debian 10.x:
      1. 创建名为 /etc/systemd/system/squid.service.d/override.conf 含以下内容的文件:

        [Service]

        Environment=KRB5RCACHETYPE=none

      2. 运行以下命令:

        systemctl daemon-reload

    默认启用重播缓存。

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

  7. 重启 Squid 服务。为此,请执行命令:

    service squid restart

  8. 在企业 LAN 计算机上,在浏览器设置中,指定作为代理服务器托管 Squid 服务的服务器的 完全限定域名(FQDN)。

Squid 服务现在已配置,可使用 Kerberos 身份验证。

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.