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
的票证。以下命令将请求它
kinit [email protected]
现在可以在 Firefox 上打开 anaconda 服务器,在本例中 URL 是 anaconda.kerberos.local:8080
,单击Sign In后,用户应该能够立即登录,而无需输入任何凭据。