You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 15 Next »

所有命令行中的 ${var} 代表用户需要填写的某个值。本配置的 域(Domain) 是 IN.NOPADDING.COM。

本次部署使用的是基于 dnsmasq 的 配置方式,而不使用 FreeIPA 自带的 BIND 9(named),同时 Cloudera Manager 管理节点和 kdc 以及 slapd 不在同一台主机上。

安装:

yum install ipa-server -y

ipa-server-install --no-ntp --no-ssh --no-sshd -d

会产生如下 DNS 记录

_kerberos-master._tcp.in.nopadding.com. 86400 IN SRV 0 100 88 ux4.in.nopadding.com.
_kerberos-master._udp.in.nopadding.com. 86400 IN SRV 0 100 88 ux4.in.nopadding.com.
_kerberos._tcp.in.nopadding.com. 86400 IN SRV 0 100 88 ux4.in.nopadding.com.
_kerberos._udp.in.nopadding.com. 86400 IN SRV 0 100 88 ux4.in.nopadding.com.
_kerberos.in.nopadding.com. 86400 IN TXT "IN.NOPADDING.COM"
_kpasswd._tcp.in.nopadding.com. 86400 IN SRV 0 100 464 ux4.in.nopadding.com.
_kpasswd._udp.in.nopadding.com. 86400 IN SRV 0 100 464 ux4.in.nopadding.com.
_ldap._tcp.in.nopadding.com. 86400 IN SRV 0 100 389 ux4.in.nopadding.com.
ipa-ca.in.nopadding.com. 86400 IN A 192.168.1.24

将 DNS 记录按照 dnsmasq 格式写入配置

srv-host = _kerberos-master._tcp.in.nopadding.com,ux4.in.nopadding.com,88
srv-host = _kerberos-master._udp.in.nopadding.com,ux4.in.nopadding.com,88
srv-host = _kerberos._tcp.in.nopadding.com,ux4.in.nopadding.com,88
srv-host = _kerberos._udp.in.nopadding.com,ux4.in.nopadding.com,88
srv-host = _kpasswd._tcp.in.nopadding.com,ux4.in.nopadding.com,88
srv-host = _kpasswd._tcp.in.nopadding.com,ux4.in.nopadding.com,88
srv-host = _ldap._tcp.in.nopadding.com,ux4.in.nopadding.com,389
txt-record= _kerberos.in.nopadding.com,"IN.NOPADDING.COM"

A 记录添加到 hosts 文件中。

安装 ipa-client

yum install -y ipa-client

ipa-client-install --domain=in.nopadding.com --realm=IN.NOPADDING.COM --principal=admin@IN.NOPADDING.COM --password=hadoop123 --mkhomedir --permit --no-ntp --no-ssh --no-sshd -d

如果安装时没有选择自动创建用户目录(mkhomedir),可以使用 authconfig 配置

在所有机器上执行:

authconfig --enablemkhomedir --update

即可。

另外,sssd 会缓存 ldap 用户,可以使用 sss_cache -E 清除。

用户默认的 shell 指向 /bin/sh , 修改为 /bin/bash :

su admin -c "ipa config-mod --defaultshell=/bin/bash"

kinit 生成 ticket cache:

KRB5_TRACE=/dev/stderr kinit admin

kdc 服务通过 ipa 的 ipadb.so 作为数据库端(kdb),具体实现在如下文件中 https://github.com/freeipa/freeipa/blob/release-4-6-5/daemons/ipa-kdb/ipa_kdb.c 。

把相关函数指针,写入 kdb_vftabl 的结构体中,导出 kdb_function_table。结构体定义在 https://github.com/krb5/krb5/blob/krb5-1.15.1-final/src/include/kdb.h 。

修改部分 attrbutes,可以影响 kdc 的加密算法。

ldapsearch -x -D "cn=directory manager" -w hadoop123 "objectClass=krbrealmcontainer"
ldapmodify -x -D "cn=directory manager" -w hadoop123 -f modify.ldif

modify.ldif 内容:

dn: cn=IN.NOPADDING.COM,cn=kerberos,dc=in,dc=nopadding,dc=com
changetype: modify
delete: krbDefaultEncSaltTypes
krbDefaultEncSaltTypes: aes256-cts:special
-
delete: krbDefaultEncSaltTypes
krbDefaultEncSaltTypes: aes128-cts:special
-
add: krbDefaultEncSaltTypes
krbDefaultEncSaltTypes: aes256-cts:normal
-
add: krbDefaultEncSaltTypes
krbDefaultEncSaltTypes: aes128-cts:normal

默认的 salt 类型 special,如何验证是否加盐呢。


krb5kdc - Kerberos V5 KDC


ns‐slapd - The main Directory Server daemon

ns-slapd 的配置文件,在 /etc/dirsrv/slapd-IN-NOPADDING-COM/ 下。

验证 ldap root 密码的命令。

ldapsearch -x -D "cn=directory manager" -w ${ldap_root_password} -s base -b "" "objectclass=*"

重置密码

ldappasswd -ZZ -D 'cn=Directory Manager' -W -S uid=admin,cn=users,cn=accounts,dc=in,dc=nopadding,dc=com -H ldap://ux4.in.nopadding.com

named - Internet domain name server


pki-server

公钥体系,pki 是对于服务方,非对称密钥体系的公钥提供方的认证。

RSA 算法


  • No labels