[关闭]
@zhangyy 2021-11-10T14:38:00.000000Z 字数 2781 阅读 213

CentOS7.x 构建SSSD服务与openldap整合

运维系列



一:SSSD 服务介绍:

1.1. SSSD 介绍:

  1. SSSD是自红帽企业版Linux6起新加入的一个守护进程,该进程可以用来访问多种验证服务器,如LDAPKerberos等,并提供授权。SSSD
  2. 介于本地用户和数据存储之间的进程,本地客户端首先连接SSSD,再由SSSD联系外部资源提供者(一台远程服务器)。
  3. 这样做有一些几点优势:
  4. 1.避免了本地每个客户端程序对认证服务器大量连接,所有本地程序仅联系SSSD,由SSSD连接认证服务器或SSSD缓存,有效的降低了负载。
  5. 2.允许离线授权。SSSD可以缓存远程服务器的用户认证身份,这允许在远程认证服务器宕机是,继续成功授权用户访问必要的资源。
  6. SSSD无需特殊设置即可运行,当你配置完system-configure-authentication后该服务会自己运行。
  7. SSSD默认配置文件位于/etc/sssd/sssd.conf,你可以通过命令使得SSSD以指定的配置文件运行:
  8. sssd --c /etc/sssd/customfile.conf

1.2 SSSD 的配置格式

  1. 配置文件格式如下:
  2. 关键字=键值
  3. #####################################################
  4. ## [section] ##
  5. ## key1 = value1 ##
  6. ## key2 = value2,value3 ##
  7. #####################################################

1.3 服务的启动格式

  1. 管理SSSD进程
  2. service sssd start 开启
  3. service sssd stop 关闭
  4. 使用authconfig命令开启SSSD #authconfig --enablesssd --update
  5. 使用systemctl命令开启SSSD # systemctl enable sssd
  6. 总结:简单来说现在在RHEL6中连接LDAPKerberos等认证服务器,都是先有SSSD连接认证服务器取得认证与授权信息,再交于本地客户端程序。

二:在CentOS7.x 安装配置SSSD 服务

2.1 安装 SSSD 服务

  1. yum install sssd*

image_1fk46dv4pai313s81q0ffiscqv9.png-199.8kB

image_1fk46ev8g1cim16pl19i3cvb1flnm.png-279.8kB


2.2 配置openldap 与 SSSD 服务的集成

2.1 关于openldap 客户端的验证

  1. openldap 服务端已经配置完成,不会看flyfish 博文 https://blog.51cto.com/flyfish225/4562546 在此不做部署:
  2. 安装openldap-client 装包:
  3. yum -y install openldap-clients sssd authconfig nss-pam-ldapd

image_1fk46v9idg95md91jka14vm44513.png-241.5kB

  1. 编辑配置文件:
  2. vim /etc/openldap/ldap.conf
  3. ---
  4. BASE dc=flyfish,dc=com
  5. URI ldap://192.168.100.14
  6. #SIZELIMIT 12
  7. #TIMELIMIT 15
  8. #DEREF never
  9. TLS_CACERTDIR /etc/openldap/certs
  10. # Turning this off breaks GSSAPI used with krb5 when rdns = false
  11. SASL_NOCANON on
  12. ----

image_1fk478h5c2gn1du81s931a07nqp20.png-81.1kB

  1. openldap 客户端验证:
  2. ldapsearch -D "cn=admin,dc=flyfish,dc=com" -W |grep dn

image_1fk479b541pm31m0c18oie9c1he42d.png-108.1kB

2.2 OpenLDAP集成SSH登录并使用sssd同步用户

  1. vim /etc/sssd/sssd.conf
  2. ----
  3. [domain/default]
  4. autofs_provider = ldap
  5. cache_credentials = True
  6. ldap_search_base = dc=flyfish,dc=com
  7. id_provider = ldap
  8. auth_provider = ldap
  9. chpass_provider = ldap
  10. ldap_uri = ldap://192.168.100.14
  11. ldap_id_use_start_tls = False
  12. ldap_tls_cacertdir = /etc/openldap/cacerts
  13. ldap_schema = rfc2307bis
  14. [sssd]
  15. services = nss, pam, autofs
  16. domains = default
  17. [nss]
  18. homedir_substring = /home
  19. [pam]
  20. [sudo]
  21. [autofs]
  22. [ssh]
  23. [pac]
  24. [ifp]
  25. [secrets]
  26. [session_recording]
  27. ----
  28. chmod 600 /etc/sssd/sssd.conf
  29. service sssd start
  30. chkconfig sssd on

image_1fk47g742vpv4ao19mh7o11hij2q.png-203.5kB

image_1fk47h0eq4gc8sk1hket9q1dvp37.png-237.8kB

2.3 OpenLdap与SSH集成

2.3.1 启用SSH 的 PAM 认证

  1. vim /etc/ssh/sshd_config
  2. ----
  3. UsePAM yes
  4. ----

image_1fk47ql2d1lql99l1dg4lvk1d7b44.png-78.4kB


  1. 修改配置文件
  2. vim /etc/pam.d/sshd
  3. ----
  4. 增加这一行:
  5. session required pam_mkhomedir.so
  6. ----
  7. # 确保登录成功后创建用户的home目录

image_1fk47vogckh51e064sr9r1blu9.png-137.3kB

  1. 修改配置文件
  2. vim /etc/pam.d/password-auth
  3. ---
  4. 增加一行:
  5. ### 添加
  6. auth sufficient pam_ldap.so use_first_pass
  7. ### 添加
  8. password sufficient pam_ldap.so use_authtok
  9. ### 添加
  10. session optional pam_ldap.so
  11. ---
  12. 增加pam_ldap.so 模块

image_1fk489v1q1uimheg91v1o261kjp1j.png-166.7kB

  1. 修改配置文件
  2. vim /etc/pam.d/system-auth
  3. -----
  4. #auth sufficient pam_sss.so forward_pass
  5. ### 添加
  6. auth sufficient pam_ldap.so use_first_pass
  7. ### 添加
  8. #account [default=bad success=ok user_unknown=ignore] pam_ldap.so
  9. ### 添加
  10. password sufficient pam_ldap.so use_authtok
  11. ### 添加
  12. #session optional pam_sss.so
  13. session optional pam_ldap.so
  14. ------

image_1fk48u1hr1urb1ap5crv2d892r20.png-216.6kB

  1. 重启SSHD 服务
  2. service sshd restart
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注