配置OpenLDAP使用Kerberos验证

更新时间:2023-06-28 10:05:09 阅读: 评论:0

配置OpenLDAP使用Kerberos验证
1 前言 假设你的Openldap已经配置好并成功运行,本文只是介绍如何使Openldap使用Kerberos来验证用户身份。 本配置在FC5上通过,在使用rhe时,很可能会有不同的情况。
2 名词解释 2.1 Kerberos 基于 共享密钥 的安全机制,由MIT发明,现在已经被标准化,最新是版本5,简称krb5Kerberos特别适合局域网络,Windows2k及以上系统的安全机制 即基于kerberosKerberos有多个实现版本,本文使用的一个它的实现叫做mit¬-kerberos
家乡的河2.2 SASL 简单认证和安全层(Simple Authentication and Security Layer)。也是一套RFC定义的标准。它的核心思想是把用户认证和安全传输从应用程序中隔离出来。像SMTP协议在定义之初都没有考虑到用户认证等问 题,现在SMTP可以配置使用SASL来完成这方面的工作。Openldap同样如此。 SASL支持多种认证方法,比如 • ANONYMOUS: 无需认证。 • PLAIN:明文密码方式(cleartext password) • DIGEST-MD5: HTTP Digest 兼容的安全机制,基于MD5,可以提供数据的安全传输层。这个是方便性和安全性结合得最好的一种方式。也是默认的方式。 • GSSAPIGeneric Security Services Application Program Interface Gssapi本身是一套API,由IETF标准化。其最主要也是著名的实现是基于Kerberos的。所以
一般说到gssapi都暗指kerberos 现。煎药器 • EXTERNAL:认证已经在环境中实现了,比如SSL/TLS, IPSec.
2.3 Cyrus SASL Cyrus-SASLSASL协议最常用的一个实现。其他实现还有GNU SASL等。
3 环境准备 3.1 环境 (10.10.11.11) (10.10.11.12) (10.10.11.13)
3.2 安装软件包 Kerberos rver: Krb5-rver Sasl-gssapi: Cyrus-sasl-gssapi Kerberos client: Krb5-client 如果依赖于别的包,也一并安装

4 配置Kerberos rver 配置文件包括下面3个文件 1. /f 2. /var/kerberos/f 3. /var/kerberos/krb5kdc/kadm5.acl
4.1 配置/f 这个配置文件设置整个kerberos环境的,所以不但rver,而且client也会使用它。 [logging] default = FILE:/var/log/krb5libs.log kdc = FILE:/var/log/krb5k
dc.log admin_rver = FILE:/var/log/kadmind.log
[libdefaults] default_realm = EXAMPLE
default_tgs_enctypes = des3-hmac-sha1 des-cbc-crc des-cbc-md5 default_tkt_enctypes = des3-hmac-sha1 des-cbc-crc des-cbc-md5 permitted_enctypes = des3-hmac-sha1 des-cbc-crc des-cbc-md5 dns_lookup_realm = fal dns_lookup_kdc = fal ticket_lifetime = 24h forwardable = yes

[realms] EXAMPLE = {
kdc = :88
admin_rver = :749
default_domain =
}爱迪生是哪个国家的
[domain_realm] . = = EXAMPLE
[kdc] profile = /var/kerberos/f
[appdefaults] pam = {
  debug = fal
  ticket_lifetime = 36000
  renew_lifetime = 36000
  forwardable = true
  krb4_convert = fal
}
4.2 配置/var/kerberos/f 这个配置文件是专门为kdc定义的参数 [kdcdefaults] v4_mode = nopreauth [realms] EXAMPLE = {
#master_key_type = des3-hmac-sha1
acl_file = /var/kerberos/krb5kdc/kadm5.acl
dict_file = /usr/share/dict/words
admin_keytab = /var/kerberos/krb5kdc/kadm5.keytab
supported_enctypes = des3-hmac-sha1:normal arcfour-hmac:normal des-hmac-sha1:normal des-cbc-md5:normal des-cbc-crc:normal des-cbc-crc:v4 des-cbc-crc:afs3
}
4.3 配置/var/kerberos/krb5kdc/kadm5.acl 此文件是Access control配置。下面是一个最简单但系统可以工作的配置。根据实际情况设置你自己的访问控制
/admin@EXAMPLE *
4.4 创建realm > kdb5_util create -r EXAMPLE –s kerbers数据库文件都放在/var/kerberos/krb5kdc/下面。
启动krb5kdckadmin两个rvice > rvice krb5kdc start > rvice kadmin start
4.5 创建Principal Kerberos安全机制里,一个principal就是realm里的一个对象,一个principal总是和一个密钥(cret key)成对出现的。 这个principal的对应物可以是rvice,可以是host,也可以是ur,对于Kerberos来说,都没有区别。 Kdc(Key distribute center)平行志愿知道所有principalcret key,但每个principal对应的对象只知道自己的那个cret key。这也是共享密钥的由来。 作为例子,下面我们将会创建3principal,类型分别是rvicehostur
4.5.1 创建principal for ur > Kadmin.local –q addprinc [email]ldapadmin@EXAMPLE[/email] 系统会提示输入密码(password)。请注意密码本身并不是key。这里只是为了人类使用的方便而使用密码。真正的key是算法作用在密码上产生的一串byte序列。 4.5.2 创建principal for ldap rvice > kadmin.local -q "addprinc -randkey @EXAMPLE" 注意这次系统不会提示输入密码,因为我们使用了 –randkey 指定了一个随机密码。因为ldap rver是程序,它不会介意使用真正的key 4.5.3 创建principal for host > kadmin.local –q addprinc –randke
y @EXAMPLE 同样,我们为一个主机生成了一个principal。基于同样的理由,我们使用了 –randkey参数。[/float]
4.6 获得key 创建了principal之后,我们需要把keykdc里取出来(kdc知道所有健脾养胃粥principalkey),交给对应的对象。在kerberos世界里,这个key一般存放在以keytab作为扩展名的文件里。
4.6.1 取得ldap rvicekey > kadmin.local –q ktadd –k /tmp/ldapsrv.keytab -k 指定把key存放在一个本地文件中
4.6.2 取得hostkey > kadmin.local –q ktadd –k /tmp/host_client.keytab
4.6.3 如果你高兴的话,你甚至也可以取得urkey > kadmin.local –q ktadd –k /tmp/ur_ldapadmin.keytab ldapadmin 但是我不建议你这样做,因为一旦这样做以后,你先前设置的密码就失效了。以后只能使用此keytab文件来通过身份验证。
4.7 测试 那么下面的步骤演示了kerberos写思念的诗句验证用户身份。 > kinit ldapadmin 系统会提示输
入密码,如果一切正常,那么会安静的返回。实际上,你已经通过了kerberos的身份验证,且获得了一个Service TGT(Ticket-Granting Ticket). Service TGT的意义是, 在一段时间内,你都可以用此TGT去请求某些rvice,比如ldap rvice,而不需要再次通过kerberos的认证。
> klist 这条命令会查看系统当前的ticket
> kdestory 这条命令会destroy掉系统当前cache的所有ticket
王强口语> kinit –k ldapadmin –t /tmp/ur_ldapadmin.keytab 这里演示了你确实可以直接使用urkey,而不是口令来通过kerberos腾达登录界面的验证。如果你在前面导出了ur ldapadminkey,可以验证一下。同时如果你运行kinit ldapadmin,那么即使输入了正确的password,系统仍然提示密码错误。

本文发布于:2023-06-28 10:05:09,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1058564.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:密码   系统   使用   认证
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图