CentOS7.x 构建SSSD服务与openldap整合
标签(空格分隔):运维系列
一:SSSD 服务介绍:
1.1. SSSD 介绍:
SSSD是自红帽企业版Linux6起新加入的一个守护进程,该进程可以用来访问多种验证服务器,如LDAP,Kerberos等,并提供授权。SSSD是
介于本地用户和数据存储之间的进程,本地客户端首先连接SSSD,再由SSSD联系外部资源提供者(一台远程服务器)。
这样做有一些几点优势:
1.避免了本地每个客户端程序对认证服务器大量连接,所有本地程序仅联系SSSD,由SSSD连接认证服务器或SSSD缓存,有效的降低了负载。
2.允许离线授权。SSSD可以缓存远程服务器的用户认证身份,这允许在远程认证服务器宕机是,继续成功授权用户访问必要的资源。
SSSD无需特殊设置即可运行,当你配置完system-configure-authentication后该服务会自己运行。
SSSD默认配置文件位于/etc/sssd/sssd.conf,你可以通过命令使得SSSD以指定的配置文件运行:
sssd --c /etc/sssd/customfile.conf
1.2 SSSD 的配置格式
配置文件格式如下:
关键字=键值
#####################################################
## [section] ##
## key1 = value1 ##
## key2 = value2,value3 ##
#####################################################
1.3 服务的启动格式
管理SSSD进程
service sssd start 开启
service sssd stop 关闭
使用authconfig命令开启SSSD: #authconfig --enablesssd --update
使用systemctl命令开启SSSD: # systemctl enable sssd
总结:简单来说现在在RHEL6中连接LDAP或Kerberos等认证服务器,都是先有SSSD连接认证服务器取得认证与授权信息,再交于本地客户端程序。
二:在CentOS7.x 安装配置SSSD 服务
2.1 安装 SSSD 服务
yum install sssd*
2.2 配置openldap 与 SSSD 服务的集成
2.1 关于openldap 客户端的验证
openldap 服务端已经配置完成,不会看flyfish 博文 https://blog.51cto.com/flyfish225/4562546 在此不做部署:
安装openldap-client 装包:
yum -y install openldap-clients sssd authconfig nss-pam-ldapd
编辑配置文件:
vim /etc/openldap/ldap.conf
---
BASE dc=flyfish,dc=com
URI ldap://192.168.100.14
#SIZELIMIT 12
#TIMELIMIT 15
#DEREF never
TLS_CACERTDIR /etc/openldap/certs
# Turning this off breaks GSSAPI used with krb5 when rdns = false
SASL_NOCANON on
----
openldap 客户端验证:
ldapsearch -D "cn=admin,dc=flyfish,dc=com" -W |grep dn
2.2 OpenLDAP集成SSH登录并使用sssd同步用户
vim /etc/sssd/sssd.conf
----
[domain/default]
autofs_provider = ldap
cache_credentials = True
ldap_search_base = dc=flyfish,dc=com
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://192.168.100.14
ldap_id_use_start_tls = False
ldap_tls_cacertdir = /etc/openldap/cacerts
ldap_schema = rfc2307bis
[sssd]
services = nss, pam, autofs
domains = default
[nss]
homedir_substring = /home
[pam]
[sudo]
[autofs]
[ssh]
[pac]
[ifp]
[secrets]
[session_recording]
----
chmod 600 /etc/sssd/sssd.conf
service sssd start
chkconfig sssd on
2.3 OpenLdap与SSH集成
2.3.1 启用SSH 的 PAM 认证
vim /etc/ssh/sshd_config
----
UsePAM yes
----
修改配置文件
vim /etc/pam.d/sshd
----
增加这一行:
session required pam_mkhomedir.so
----
# 确保登录成功后创建用户的home目录
修改配置文件
vim /etc/pam.d/password-auth
---
增加一行:
### 添加
auth sufficient pam_ldap.so use_first_pass
### 添加
password sufficient pam_ldap.so use_authtok
### 添加
session optional pam_ldap.so
---
增加pam_ldap.so 模块
修改配置文件
vim /etc/pam.d/system-auth
-----
#auth sufficient pam_sss.so forward_pass
### 添加
auth sufficient pam_ldap.so use_first_pass
### 添加
#account [default=bad success=ok user_unknown=ignore] pam_ldap.so
### 添加
password sufficient pam_ldap.so use_authtok
### 添加
#session optional pam_sss.so
session optional pam_ldap.so
------
重启SSHD 服务
service sshd restart