专栏
天翼云开发者社区

以OpenLDAP为数据库配置Kerbreos

2023-10-31 10:20:49 3阅读

准备

  • 根据《CentOS安装部署OpenLDAP》部署好OpenLDAP
  • 根据《CentOS安装部署KDC集群》安装好kerberos服务端软件

sudo yum install krb5-server krb5-libs krb5-auth-dialog -y
sudo yum install krb5-server-ldap -y

配置OpenLDAP

引入kerberos.schema

cp /usr/share/doc/krb5-server-ldap-1.10.3/kerberos.schema /etc/openldap/schema/
cp /usr/share/doc/krb5-server-ldap-1.10.3/kerberos.ldif /etc/openldap/schema/

vim slapd.conf
# 添加以下内容
include /etc/openldap/schema/kerberos.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

更新slapd.d

slaptest -f ~/openldap/slapd.conf -F /etc/openldap/slapd.d
chown ldap:ldap /etc/openldap/slapd.d/cn=config/cn=schema/cn={0}kerberos.ldif

重启OpenLDAP

sudo service slapd restart

创建kerberos用户

想好krb5kdc和kadmind服务分别对应的dn是cn= krb5kdc,cn=admin,dc=test,dc=comcn= kadmind,cn=admin,dc=test,dc=com
在phpldapadmin上创建

创建用户组

用户组为:cn=admin,dc=test,dc=com
在test.com条目下点击“创建一个子条目”

选择Posix Group创建用户组

创建用户

用户分别为cn=krb5kdc,cn=admin,dc=test,dc=comcn=kadmind,cn=admin,dc=test,dc=com
cn=admin,dc=test,dc=com条目下创建子条目

设置权限

修改数据库管理员(可忽略)

编写LDIF

vim chdbroot.ldif
# 添加内容如下
dn: olcDatabase={2}bdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=test,dc=com

执行LDIF

ldapmodify -Y EXTERNAL -H ldapi:/// -f chdbroot.ldif

修改数据库ACL

编写LDIF

vim chdbacl.ldif
# 添加内容如下
dn: olcDatabase={2}bdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to dn.subtree="cn=TEST.COM,cn=krbContainer,dc=test,dc=com"
  by dn.exact="cn=krb5kdc,cn=admin,dc=test,dc=com" write
  by dn.exact="cn=kadmind,cn=admin,dc=test,dc=com" write
  by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by * read

执行LDIF

ldapmodify -Y EXTERNAL -H ldapi:/// -f chdbroot.ldif

Kerberos服务端配置

保存密码

kdb5_ldap_util stashsrvpw -f /var/kerberos/krb5kdc/admin.stash "cn=krb5kdc,cn=admin,dc=test,dc=com"
kdb5_ldap_util stashsrvpw -f /var/kerberos/krb5kdc/admin.stash  "cn=kadmind,cn=admin,dc=test,dc=com"

编写kdc.conf

vim /var/kerberos/krb5kdc/kdc.conf
# 配置如下
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 TEST.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
  database_module = LDAP  #对应dbmodules下的模块名 
 }

[dbmodules]
 LDAP = {
     db_library = kldap  #指定以ldap为数据库
     ldap_kerberos_container_dn = cn=krbContainer,dc=test,dc=com  #kerberos容器的dn
     ldap_kdc_dn = cn=krb5kdc,cn=admin,dc=test,dc=com #krb5kdc服务对应的dn
     ldap_kadmind_dn = cn=kadmind,cn=admin,dc=test,dc=com #kadmind服务对应的dn
     ldap_service_password_file = /var/kerberos/krb5kdc/admin.stash #krb5dkc和kadmind服务密码保存的文件
     ldap_servers = ldapi:///
 }

初始化数据库

kdb5_ldap_util -D cn=admin,dc=test,dc=com -H ldapi:/// create -s -r TEST.COM


如果没有container,会自动创建container,realm对应的entry也会自动创建,登录phpldapadmin,可以看到这些

启动服务

sudo krb5kdc -r TEST.COM
sudo kadmind -r TEST.COM

  • 0
  • 0
  • 0
0 评论
0/1000
评论(0) 发表评论
张****博

张****博

3 篇文章 0 粉丝
关注

以OpenLDAP为数据库配置Kerbreos

2023-10-31 10:20:49 3阅读

准备

  • 根据《CentOS安装部署OpenLDAP》部署好OpenLDAP
  • 根据《CentOS安装部署KDC集群》安装好kerberos服务端软件

sudo yum install krb5-server krb5-libs krb5-auth-dialog -y
sudo yum install krb5-server-ldap -y

配置OpenLDAP

引入kerberos.schema

cp /usr/share/doc/krb5-server-ldap-1.10.3/kerberos.schema /etc/openldap/schema/
cp /usr/share/doc/krb5-server-ldap-1.10.3/kerberos.ldif /etc/openldap/schema/

vim slapd.conf
# 添加以下内容
include /etc/openldap/schema/kerberos.schema
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args

更新slapd.d

slaptest -f ~/openldap/slapd.conf -F /etc/openldap/slapd.d
chown ldap:ldap /etc/openldap/slapd.d/cn=config/cn=schema/cn={0}kerberos.ldif

重启OpenLDAP

sudo service slapd restart

创建kerberos用户

想好krb5kdc和kadmind服务分别对应的dn是cn= krb5kdc,cn=admin,dc=test,dc=comcn= kadmind,cn=admin,dc=test,dc=com
在phpldapadmin上创建

创建用户组

用户组为:cn=admin,dc=test,dc=com
在test.com条目下点击“创建一个子条目”

选择Posix Group创建用户组

创建用户

用户分别为cn=krb5kdc,cn=admin,dc=test,dc=comcn=kadmind,cn=admin,dc=test,dc=com
cn=admin,dc=test,dc=com条目下创建子条目

设置权限

修改数据库管理员(可忽略)

编写LDIF

vim chdbroot.ldif
# 添加内容如下
dn: olcDatabase={2}bdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=test,dc=com

执行LDIF

ldapmodify -Y EXTERNAL -H ldapi:/// -f chdbroot.ldif

修改数据库ACL

编写LDIF

vim chdbacl.ldif
# 添加内容如下
dn: olcDatabase={2}bdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to dn.subtree="cn=TEST.COM,cn=krbContainer,dc=test,dc=com"
  by dn.exact="cn=krb5kdc,cn=admin,dc=test,dc=com" write
  by dn.exact="cn=kadmind,cn=admin,dc=test,dc=com" write
  by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by * read

执行LDIF

ldapmodify -Y EXTERNAL -H ldapi:/// -f chdbroot.ldif

Kerberos服务端配置

保存密码

kdb5_ldap_util stashsrvpw -f /var/kerberos/krb5kdc/admin.stash "cn=krb5kdc,cn=admin,dc=test,dc=com"
kdb5_ldap_util stashsrvpw -f /var/kerberos/krb5kdc/admin.stash  "cn=kadmind,cn=admin,dc=test,dc=com"

编写kdc.conf

vim /var/kerberos/krb5kdc/kdc.conf
# 配置如下
[kdcdefaults]
 kdc_ports = 88
 kdc_tcp_ports = 88

[realms]
 TEST.COM = {
  #master_key_type = aes256-cts
  acl_file = /var/kerberos/krb5kdc/kadm5.acl
  dict_file = /usr/share/dict/words
  admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
  supported_enctypes = aes256-cts:normal aes128-cts:normal des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal
  database_module = LDAP  #对应dbmodules下的模块名 
 }

[dbmodules]
 LDAP = {
     db_library = kldap  #指定以ldap为数据库
     ldap_kerberos_container_dn = cn=krbContainer,dc=test,dc=com  #kerberos容器的dn
     ldap_kdc_dn = cn=krb5kdc,cn=admin,dc=test,dc=com #krb5kdc服务对应的dn
     ldap_kadmind_dn = cn=kadmind,cn=admin,dc=test,dc=com #kadmind服务对应的dn
     ldap_service_password_file = /var/kerberos/krb5kdc/admin.stash #krb5dkc和kadmind服务密码保存的文件
     ldap_servers = ldapi:///
 }

初始化数据库

kdb5_ldap_util -D cn=admin,dc=test,dc=com -H ldapi:/// create -s -r TEST.COM


如果没有container,会自动创建container,realm对应的entry也会自动创建,登录phpldapadmin,可以看到这些

启动服务

sudo krb5kdc -r TEST.COM
sudo kadmind -r TEST.COM

文章来自专栏

Kerberos

3 篇文章 1 订阅
0 评论
0/1000
评论(0) 发表评论
  • 0
    点赞
  • 0
    收藏
  • 0
    评论