Kerberos + LDAP + NFSv4实现单点登录(续4)——SASL/GSSAPI

  

前篇& lt; Kerberos + LDAP + NFSv4实现单点登录(续1)——dns + dhcp>的krb5 + LDAP + bind9 + bind9-dyndb-ldap全面升级到debian 10,出现bind9-dyndb-ldap的GSSAPI + krb5_keytab认证机制无法连接LDAP数据库。
查看日志:
SASL/GSSAPI身份验证开始
错误:局部误差
附加信息:SASL(1):通用的失败:GSSAPI错误:杂项失败(见文本)(没有找到插件ccache_ops)

  

网上搜索有关GSSAPI + ccache_ops未果,不得不自己动手调试。
思路:从bind9-dyndb-ldap软件包开始及其各依赖包逐个手动降级,或者从正常debian 9开始,修改软件源为debian 10日逐个升级,即降级/升级一个,测试一次。
说明:debian系统是无法自动降级的,可修改软件源为低版或手动下载低版deb包重装软件包

  

实际整个调试过程还是盲人摸象.krb5、ldap、sasl都是复杂的东西,问题有可能在服务端,也有可能在客户端,也有可能配置上漏缺。
本人能力有限,也希望从源码定位到问题位置,按日志出现的关键词“ccache_ops插件”搜索上面三者源代码,也仅仅搜到片言只语,不知所然。

  

功夫不负有心人,从各个依赖包逐个降级,很幸运定为到libsasl2-modules-gssapi-heimdal软件包,也就是说,其它相关的软件包都用debian 10最新版,配置文件不需更改,
只要将libsasl2-modules-gssapi-heimdal软件包降级,bind9-dyndb-ldap就正常连接到ldap数据库。
debian 10版本是2.1.27 + dfsg-1
debian 9版本是2.1.27 ~ 101 - g0780600 + dfsg-3
实际就一个文件/usr/lib/x86_64-linux-gnu/sasl2/libgssapiv2.so.2.0.25,用debian 9版本解包直接替换掉就可。

  

sasl/gssapi也算比较常用的应用,但问题是libsasl2-modules-gssapi-heimdal的2.1.27 + dfsg-1版至今到debian 11还一直未更新,采用2.1.27 + dfsg-1版的其它sasl/gssapi应用都正常。
如openldap客户端工具在2.1.27 + dfsg-1版下正常,如下命令
ldapwhoami - y gssapi - h 192.168.1.11
因此也确定不了2.1.27 + dfsg-1版这个出错究竟是错误还是这个升级版需sasl gssapi客/服进一步配置?
或者如我的需求bind9-dyndb-ldap + sasl/gssapi就比较少见了,所以网上几乎搜不到相关问题,也确定不了是不是bind9-dyndb-ldap问题。
该问题很平静,所以可能深藏着。要调试bind9-dyndb-ldap很麻烦,转个思路,自己编写最简单的ldap/sasl/gssapi/krb5客户端程序测试,果不其然,发现是使用内存票据会出现该问题。
krb5客户端可以指定票据的位置,如下
“记忆:krb5cc_1000"存放在进程内存里
“文件:/tmp/krb5cc_1000"存放在临时目录下

  

krb5的票据通常是放在临时目录下,即如/tmp/krb5cc_1000的票据文件,openldap客户端工具就是读取临时目录下的票据。
经测试,libsasl2-modules-gssapi-heimdal 2.1.27 + dfsg-1版对内存票据有错误,对文件票据正常。
在前篇& lt; Kerberos + LDAP + NFSv4实现单点登录比;SSSD客户机安装提到libsasl2-modules-gssapi-mit和libsasl2-modules-gssapi-heimdal两者可互相替换。
因此安装debian 10的libsasl2-modules-gssapi-mit,对内存票据已完全正常.mit版更主流,或许正因为有麻省理工版可代替heimdal版,所以heimdal版问题很平静。

  

小结:
对于sasl/gssapi应用,请安装libsasl2-modules-gssapi-mit

  

后记:
1。对于krb5客户端,尽量使用麻省理工版,Kerberos本就是麻省理工学院的发明,更活跃。
2。我的Kerberos服务器为什么要采用heimdal版?
因为我的目标Kerberos + LDAP一体,两套密码同步。

  
 <代码>麻省理工学院heimdal
  -----------------------------------------------------------------------------------------------------
  krb5服务器通过外部连接ldap不支持支持
  通过slapd-smbk5pwd同步密码不支持支持 
  

3.十的debian bind9-dyndb-ldap配置格式有新的变化
客/服配置请先参考前篇& lt; Kerberos + LDAP + NFSv4实现单点登录(续1)——dns + dhcp>,然后按下面:

  

但请按Kerberos使用自己本地数据库来理解下面的配置,因为使用ldap作为Kerberos后端数据库后来理解krb5主体和ldap条目很混淆

  

1) bind9-dyndb-ldap配置
/etc/绑定/named.conf.ldap
//其它略
,
//不同体系路径如/usr/lib/i386-linux-gnu/绑定/ldap。所以
dyndb“my_db_name"“/usr/lib/绑定/ldap.so"{
server_id““
目录“/var/缓存/bind";
uri“ldap://127.0.0.1";
基地“ou=dns, dc=ctp, dc=net";

  

//认证机制
auth_method“sasl";
sasl_mech“GSSAPI";
//- v -添加krb5主体
krb5_principal“dnsadmin@CTP.NET";
krb5_keytab“文件:/etc/绑定/krb5.keytab";
//猑
超时50;
reconnect_interval 100;

Kerberos + LDAP + NFSv4实现单点登录(续4)——SASL/GSSAPI