LDAP安装
环境 :
- Centos 7.9
- Openldap 2.4.44
- sssd 1.16.5
简要概述流程: 服务端使用ldap提供服务 客户端使用sssd去认证服务器 并获得访问权限
LDAP服务端配置
1.需要安装的包
2.初试化配置及配置 (位置:/etc/openldap)
2.1 清除初试配置文件
mv slapd.d slapd.d.bak
2.2 配置
- 获取配置文件
cp /usr/share/openldap-servers/slapd.ldif ./slapd.ldif - 配置如下图
(1) 导入模块
include: file:///etc/openldap/schema/core.ldif
include: file:///etc/openldap/schema/collective.ldif
include: file:///etc/openldap/schema/corba.ldif
include: file:///etc/openldap/schema/cosine.ldif
include: file:///etc/openldap/schema/duaconf.ldif
include: file:///etc/openldap/schema/dyngroup.ldif
include: file:///etc/openldap/schema/inetorgperson.ldif
include: file:///etc/openldap/schema/java.ldif
include: file:///etc/openldap/schema/misc.ldif
include: file:///etc/openldap/schema/nis.ldif
include: file:///etc/openldap/schema/openldap.ldif
include: file:///etc/openldap/schema/pmi.ldif
include: file:///etc/openldap/schema/ppolicy.ldif
(2) 修改管理员条目与主域
这里的密码最好用SHA加密后的密码,可能会因为过于简单,而无法进行认证
slappasswd -h {SHA} -s 密码
- 修改ldap.conf (目的是:为了设置ldap服务器的域名与是否加密)
- 预处理与启动配置
1.mkdir slapd.d
2.slapadd -n 0 -F slapd.d -l slapd.ldif
3. chown -R ldap:ldap slapd.d
4.cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
5.chown -R ldap:ldap /var/lib/ldap/
启用配置
systemctl restart slapd
注意:/var/lib/ldap slapd.d 文件夹及其子文件是否都是ldap:ldap
2.3 添加条目 (位置:~)
- 增加基本域 domain.ldif
添加条目
ldapadd -x -D cn=csadmin,dc=cs,dc=cn -W -f domain.ldif
- 增加用户条目
添加条目
ldapadd -x -D cn=csadmin,dc=cs,dc=cn -W -f usr.ldif
查询所有条目
ldapsearch -x -LLL
LDAP客户端配置(使用SSSD认证)
SSSD安装(我是自带的 所以如果没有请自己查找如何安装)
yum install sssd*
配置与启动配置 (位置: /etc/sssd/)
1.创建配置文件sssd.conf
touch sssd.conf
2.添加配置文件信息(整个信息都需要复制与稍微修改)
- 添加权限
chmod 600 sssd.conf - 启动配置
systemctl restart sssd
将用户家目录作为共享文件夹挂载到其他节点
目的:除了使用户身份统一外,还要使用户的数据可以统一
vim /etc/exports
/home/ 192.168.234.0/24(rw,sync,no_root_squash,no_subtree_check)
##这里其实不推荐将/home作为挂载地址 可以选择别的路径作为家目录
在其他节点:mount 客户端IP地址:/home /home
测试是否成功
- 执行下面的脚本(目的是为了添加ldap用户条目家目录 这个脚本没有必要一定执行 没有用户目录可以看TLS加密那篇文章 后面有写如何设置)
authconfig \
--enablesssd \
--enablesssdauth \
--enableldap \
--enableldapauth \
--enablemkhomedir \
--disableforcelegacy \
--disableldaptls \
--ldapserver=${ADDR1},${ADDR2} \
--ldapbasedn="dc=${DOMAIN%.*},dc=${DOMAIN#*.}" \
--enableshadow \
--update
- 测试语句:
id 用户名
su - 用户名 切换用户 mkdir test 用户内操作 ctrl+D登出用户
问题:
ldapadd 添加到用户到数据库中 但是正确的用户和组
1.uid被占用
2.本地的sssd没有做 sssd是钥匙 只有拥有sssd才能进入数据库 获得用户相关信息
- 注意:/certs文件夹的属主组 安装新证书时 曾经证书的残留是否删除 和 证书Host最好指向IP地址
3./var/lib/ldap/ 保存条目数据
莫听穿林打叶声,何妨吟啸且徐行。竹杖芒鞋轻胜马,谁怕?一蓑烟雨任平生。
料峭春风吹酒醒,微冷,山头斜照却相迎。回首向来萧瑟处,归去,也无风雨也无晴。