Kerberos-Anaconda Enterprise 4 Repository 设置示例#

Kerberos 身份验证为 Anaconda Enterprise 4 Repository 增加了一层安全性。以下示例展示了如何设置一个最小的工作安装,其中包含三台机器:一台运行 anaconda 服务器,一台运行 MIT Kerberos 密钥分发中心 (KDC),以及一台客户端,我们将从该客户端连接到这两项服务。

在此示例中,我们假设 KDC 和 Anaconda Enterprise 4 Repository 都已配置,并且这 3 个系统都已安装网络时间协议 (NTP) 服务。

初始设置#

所有 3 台机器都运行 CentOS 7,但此处提到的配置适用于许多其他 Linux 发行版。我们将使用以下域名

  • Anaconda Enterprise 4 Repository: anaconda.kerberos.local

  • Kerberos KDC: kdc.kerberos.local

  • 客户端: client.kerberos.local

确保 /etc/hostname/etc/hosts 配置文件中的信息正确,以允许反向 DNS 查找。

Kerberos realm 的名称为 KERBEROS.LOCAL。这 3 台机器具有相同的配置文件 /etc/krb5.conf

[logging]
    kdc = FILE:/var/log/krb5kdc.log
    admin_server = FILE:/var/log/kadmind.log
    default = SYSLOG:NOTICE:DAEMON

[libdefaults]
    dns_lookup_realm = true
    dns_lookup_kdc = true
    ticket_lifetime = 24h
    renew_lifetime = 7d
    forwardable = true
    rdns = false
    default_realm = KERBEROS.LOCAL
    default_ccache_name = KEYRING:persistent:%{uid}

[realms]
    KERBEROS.LOCAL = {
        kdc = kdc.kerberos.local
        admin_server = kdc.kerberos.local
 }

[domain_realm]
    .kerberos.local = KERBEROS.LOCAL
    kerberos.local = KERBEROS.LOCAL

kdc.kerberos.local 上,应相应地配置 /var/kerberos/krb5kdc/kdc.conf/var/kerberos/krb5kdc/kadm5.acl 文件。

配置 Anaconda Repository#

此时,Anaconda Enterprise 4 Repository 正在运行,它安装在 /home/anaconda-server/repo 上,本示例中的管理员帐户为 superuser。为了允许身份验证,我们首先创建一个服务主体和包含该主体的 keytab。这是通过从 anaconda.kerberos.local 上的终端以 root 身份运行以下命令来完成的。

kadmin -q "addprinc HTTP/anaconda.kerberos.local"
kadmin -q "ktadd -k /home/anaconda-server/repo/etc/anaconda-server/http.keytab HTTP/anaconda.kerberos.local"
chown anaconda-server:anaconda-server \
   /home/anaconda-server/repo/etc/anaconda-server/http.keytab
chmod 600 /home/anaconda-server/repo/etc/anaconda-server/http.keytab

现在编辑配置文件 /home/anaconda-server/repo/etc/anaconda-server/config.yaml 并添加以下行

AUTH_TYPE: KERBEROS
KRB5_KTNAME: /home/anaconda-server/repo/etc/anaconda-server/http.keytab

最后,在 kerberos realm 上为管理员帐户添加主体

kadmin -q "addprinc [email protected]"

重启服务器以使更改生效。

客户端配置#

要使用 Kerberos 身份验证登录 Anaconda Enterprise 4 Repository,需要一个支持所述身份验证协议的浏览器。在本示例中,我们使用 Firefox。需要进行一些额外的调整。

  • 打开 Firefox 并在导航栏中键入 about:config,如果需要,单击确认按钮以继续进入配置页面。

  • 在搜索字段中键入 negotiate 以过滤选项,双击 network.negotiate-auth.trusted-uris 并在文本框中输入 .kerberos.local

  • network.negotiate-auth.delegation-uris 执行相同的操作。

最后,应在本地计算机上存储 superuser 的票证。以下命令将请求它

现在可以在 Firefox 上打开 anaconda 服务器,在本例中 URL 是 anaconda.kerberos.local:8080,单击Sign In后,用户应该能够立即登录,而无需输入任何凭据。