SSSD是红帽企业版Linux6中新加入的一个守护进程,该进程可以用来访问多种验证服务器,如LDAP,Kerberos等,并提供授权。SSSD是介于本地用户和数据存储之间的进程,本地客户端首先连接SSSD,再由SSSD联系外部资源提供者(一台远程服务器)。
这样做有一些几点优势:
1.避免了本地每个客户端程序对认证服务器大量连接,所有本地程序仅联系SSSD,由SSSD连接认证服务器或SSSD缓存,有效的降低了负载。
2.允许离线授权。SSSD可以缓存远程服务器的用户认证身份,这允许在远程认证服务器宕机时,继续成功授权用户访问必要的资源。
下面来介绍下RHEL5.6的配置方法。
客户端安装sssd
Yum �Cy install sssd
配置/etc/sssd/sssd/conf
domains = test.com
[domain/test.com]
cache_credentials = True
krb5_store_password_if_offline = True
ipa_domain = test.com
id_provider = ipa
auth_provider = ipa
access_provider = ipa
ipa_hostname = ipaclient56.test.com
chpass_provider = ipa
#ipa_dyndns_update = True
ldap_krb5_keytab = /etc/krb5.keytab
ipa_server = _srv_, ipa.test.com
ldap_uri = ldap://172.16.10.158
#debug_level = 4
debug_level = 0xFFF0
ldap_user_search_base = dc=test,dc=com
ldap_group_search_base = dc=test,dc=com
ldap_search_base = dc=test,dc=com
enumerate = true
ldap_schema = IPA
.
注:公司环境和我虚拟机环境不同,配置参数也可能不同。
配置 [root@ipaclient56 ~]# vim /etc/pam.d/system-auth
auth sufficient pam_sss.so use_first_pass
….. ….. …….
account [default=bad success=ok user_unknown=ignore] pam_sss.so
….. ….. …….
password sufficient pam_sss.so use_authtok
….. ….. …….
session optional pam_sss.so
配置[root@ipaclient56 ~]# vim /etc/nsswitch.conf
passwd: files sss
shadow: files sss
group: files sss
…… ……. ……
netgroup: files sss
…… …… ……..
aliases: files nisplus
关闭nscd
[root@ipaclient56 ~]# service nscd stop
停止 nscd: [确定]
开启sssd进程
[root@ipaclient56 ~]# service sssd start
启动 sssd: [确定]
抓取下进程,可以看到正常运行。
[root@ipaclient56 ~]# netstat -antup | grep sssd
tcp 0 1 172.16.10.159:44964 50.23.225.49:389 SYN_SENT 3856/sssd_be
由IPAserver为客户端生成一个密钥表
~]# ipa-getkeytab -s ipa.test.com -p host/ipaclient56.test.com -k ipaclient56.keytab
把这个密钥文件复制到sssd客户端上
Scp ipaclient56.keytab [email protected]:~/
客户端把这个密钥文件重命名为krb5.keytab并移动到/etc下
Mv ipaclient56.keytab /etc/krb5.keytab
测试登入远程登入客户机。
问题解决:
日志:[sssd[ldap_child[3918]]]: Failed to initialize credentials using keytab [(null)]: Decrypt integrity check failed. Unable to create GSSAPI-encrypted LDAP connection.
Failed to initialize credentials using keytab [/etc/krb5.keytab]: Decrypt integrity check failed. Unable to create GSSAPI-encrypted LDAP connection.
解决办法:sssd.conf添加,ldap_krb5_keytab = /etc/krb5.keytab ,IPAserver手动更新客户端keytab。
一些参数作用:
ip_domain 可选,指定这个域的名称,如果没有,使用配置的域名
ipa_hosename 可选,可能被设置在机器的主机名。
ipa_dyndns_update 可选,这个选项告诉SSSD自动更新DNS服务器内置FreeIPA v2这个客户机的IP地。默认关闭。true false
注意:在较旧的系统(如RHEL 5),对于这种行为能稳定可靠地运行,默认在/etc/krb5.conf Kerberos领域必须设置正确。
ipa_dyndns_iface 适用于只有当ipa_dyndns_update是真的。选择接口的IP地址应该用于动态域名更新。默认使用ip地址IPA LDAP连接。
ipa_host_search_base 可选,使用给定字符串作为主机搜索基础对象。默认ldap_search_base 的值。
参考ldap_search_base配置多个搜索基地。
krb5_realm Kerberos领域的名称。这是可选的,默认为“ipa_domain”的值。
config_file_version 显示配置文件的语法版本
reconnection_retries 服务的次数应该试图重新连接在发生数据提供程序崩溃或重启之前放弃 默认值:3
domains 域是一个数据库,其中包含用户信息。SSSD可以同时使用多个域,但至少有一个必须配置或SSSD不会开始。这个参数域的列 表描述你希望他们被查询的顺序。
krb5_rcache_dir 目录的文件系统上SSSD应该存储Kerberos重播缓存文件。
id_provider 为域标识提供者使用。支持id提供商(ipa local ad proxy ldap)
auth_provider 身份验证提供者使用的域。支持身份验证提供者
access_provider 为域访问控制提供者使用。有两个内置访问提供者(除了任何包含在安装后端)内部特殊的供应商
chpass_provider 提供者应该为域处理更改密码操作。支持更改密码提供者
subdomains_provider 提供者应该处理获取的子域。这个值应该总是id_provider一样。支持子域名提供商。
cache_credentials 确定用户凭证也缓存在本地LDB的缓存,用户凭证存储在一个SHA512散列,而不是明文
ldap_schema 指定在目标系统上使用的模式类型的LDAP服务器。根据所选择的模式,默认属性名称从服务器检索可能会有所不同。一些 属性处理的方式也不同。 rfc2307 rfc2307bis IPA AD 默认rfc2307
ldap_default_authtok_type 默认的身份验证令牌的类型绑定DN 目前两种机制支持obfuscated_password password
ldap_default_bind_dn 默认的绑定DN用于执行LDAP操作
ldap_default_authtok 默认的身份验证令牌绑定DN。目前只有明文密码支持
ldap_user_object_class 在LDAP对象类的用户条目
ldap_user_home_directoryLDAP属性,其中包含用户的主目录的名称。
ldap_user_ssh_public_keyLDAP属性,其中包含用户的SSH公钥
ldap_enumeration_refresh_timeout 指定多少秒SSSD必须等待刷新缓存的枚举记录
ldap_group_name LDAP属性,对应的组名
ldap_service_object_class在ldap服务的对象类条目
ldap_service_name LDAP属性,其中包含服务属性的名称和他们的别名
ldap_tls_reqcert 指定检查执行在TLS会话服务器证书,如果有的话。它可以被指定为以下值之一:demand hard try allow never 默认hard
ldap_tls_cacert 指定的文件,其中包含证书的证书颁发机构sssd将识别。
ldap_krb5_keytab 指定要使用的keytab当使用SASL / GSSAPI
ldap_krb5_init_creds 指定id_provider应该初始化Kerberos凭证(TGT)。执行这个动作只有SASL使用GSSAPI机制选择
ldap_krb5_ticket_lifetime指定寿命TGT如果使用GSSAPI的以秒为单位 默认86400
ldap_user_search_base 一个可选的基本DN,搜索范围和LDAP筛选限制LDAP搜索这个属性类型
ldap_group_search_base
krb5_store_password_if_offline 存储用户的密码如果提供者离线和用它来请求一个TGT当供应商再次上线