4.2. 主要 KDC 配置
配置好 OpenLDAP 后,是时候配置 KDC 了。
• 首先,安装必要的软件包,从终端输入:
sudo apt 安装 krb5-kdc krb5-admin-server krb5-kdc-ldap
• 现在编辑 /etc/krb5.conf 在相应部分下添加以下选项:
[库默认值]
default_realm =EXAMPLE.COM
...
[领域]
示例.COM = {
kdc = kdc01.example.com kdc = kdc02.example.com
admin_server = kdc01.example.com admin_server = kdc02.example.com default_domain = example.com database_module = openldap_ldapconf
}
...
[域领域]
.example.com = 示例.COM
...
[数据库默认值]
ldap_kerberos_container_dn = cn=krbContainer,dc=示例,dc=com
[数据库模块]
openldap_ldapconf = {
db_library = kldap
ldap_kdc_dn = "cn=admin,dc=example,dc=com"
# 这个对象需要有读权限
# 领域容器、主体容器和领域子树 ldap_kadmind_dn = "cn=admin,dc=example,dc=com"
# 这个对象需要有读写权限
# 领域容器、主体容器和领域子树 ldap_service_password_file = /etc/krb5kdc/service.keyfile ldap_servers = ldaps://ldap01.example.com ldaps://ldap02.example.com ldap_conns_per_server = 5
}
更改 example.com, dc=示例,dc=com, cn=admin,dc=例子,dc=com及
ldap01.example.com 到您网络的相应域、LDAP 对象和 LDAP 服务器。
• 接下来,使用 kdb5_ldap_util 实用程序创建领域:
sudo kdb5_ldap_util -D cn=admin,dc=example,dc=com create -subtrees \ dc=example,dc=com -rEXAMPLE.COM -s -H ldap://ldap01.example.com
• 创建用于绑定到 LDAP 服务器的密码的存储。 该密码由 ldap_kdc_dn
和 ldap_kadmin_dn 选项 /etc/krb5.conf:
须藤 kdb5_ldap_util -D cn=admin,dc=example,dc=com stashsrvpw -f \
/etc/krb5kdc/service.keyfile cn=admin,dc=example,dc=com
• 从 LDAP 服务器复制 CA 证书:
scp ldap01:/etc/ssl/certs/cacert.pem。 须藤cp cacert.pem /etc/ssl/certs
并编辑 /etc/ldap/ldap.conf 使用证书:
TLS_CACERT /etc/ssl/certs/cacert.pem
还需要将证书复制到辅助 KDC,以允许使用 LDAPS 连接到 LDAP 服务器。
• 启动 Kerberos KDC 和管理服务器:
须藤 systemctl 启动 krb5-kdc.service
须藤 systemctl 启动 krb5-admin-server.service
您现在可以将 Kerberos 主体添加到 LDAP 数据库,它们将被复制到任何其他为复制配置的 LDAP 服务器。 要使用 kadmin.local 实用程序添加主体,请输入:
须藤 kadmin.local
身份验证为主根/[电子邮件保护] 有密码。 kadmin.local: addprinc -x dn="uid=steve,ou=people,dc=example,dc=com" 史蒂夫 警告:没有指定策略 [电子邮件保护]; 默认为无策略 输入主体密码“[电子邮件保护]":
重新输入主体密码“[电子邮件保护]“: 主要的 ”[电子邮件保护]”创建。
现在应该将 krbPrincipalName、krbPrincipalKey、krbLastPwdChange 和 krbExtraData 属性添加到 uid=史蒂夫,ou=人,dc=例子,dc=com 用户对象。 使用 kinit 和 klist 实用程序来测试用户是否确实获得了一张票。
如果用户对象已经创建 -x dn="..." 需要选项来添加 Kerberos 属性。 否则新的 主要 对象将在领域子树中创建。