LDAP应用篇(1)CentOS8接入登录

LDAP应用篇(1)CentOS8接入登录

相比于服务器端的配置,做为客户端接入LDAP的文章和资料就多了许多。能看到的文章都介绍了使用 authconfig 或者 authconfig-tui(此半图形化工具仅V7版本可用) 进行配置的客户端接入方式,十分简单,参照文末的参考资料[1]即可正常完成。

但是对于 CentOS8 系统来说,却略有不同~它取消了 authconfig-tui 工具,同时声明了 authconfig 已经不建议使用,建议改用 authselect 进行配置。经过数天的研究,总算是通过了测试。

测试环境

目前测试客户端的信息如下:

域名/HostnameIPOS
client.example.com192.168.188.221Oracle Linux R8

同时,在 /etc/hosts 中添加服务端地址域名映射。

Linux接入

实际上研究过后回头发现整个步骤还是十分简单的,基本8-9步就可以完成。

安装依赖
# openssl-perl 暂不确定是否需要
yum install openldap-clients sssd sssd-ldap oddjob-mkhomedir -y
在SSSD和LDAP中启用TLS

ldap-client 中创建证书目录 /etc/openldap/certs,当然也可以创建在别的位置,将证书从服务器下载到该目录,也可以通过 openssl 命令从 OpenLDAP 服务端下载到本地证书目录中。

openssl s_client -connect server.example.com:636 -showcerts < /dev/null | openssl x509 -text > /etc/openldap/certs/ca.cert.pem

请注意这个证书目录要在后面的配置中反复使用。

配置LDAP客户端通过SSSD链接LDAP服务器

创建文件 /etc/sssd/sssd.conf ,如果已经存在,则覆写之前的内容。

[sssd]
config_file_version = 2
services = nss, pam,autofs
domains = default

[nss]
homedir_substring = /home

[pam]

[domain/default]
id_provider = ldap
autofs_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldaps://server.example.com:636
ldap_chpass_uri = ldaps://server.example.com:636
ldap_search_base = dc=example,dc=com
ldap_id_use_start_tls = False
ldap_tls_cacertdir = /etc/openldap/certs
cache_credentials = True
ldap_tls_reqcert = demand
entry_cache_timeout = 600
ldap_network_timeout = 3
ldap_connection_expire_timeout = 60

接下来,修改文件权限和所有者:

chmod 600 /etc/sssd/sssd.conf
chown root:root /etc/sssd/sssd.conf
配置 ldap.conf

编辑文件: /etc/openldap/ldap.conf ,添加下面的配置信息:

BASE    dc=example,dc=com
URI     ldaps://server.example.com:636

TLS_CACERT     /etc/openldap/certs/ca.cert.pem
TLS_CACERTDIR /etc/openldap/certs
刷新证书
openssl rehash /etc/openldap/certs
配置mkhomedir来自动创建家目录

选择 sssd 作为认证管理套件,此时会备份原有配置系统文件:

authselect select sssd with-mkhomedir --force

# 返回:
备份保存在 /var/lib/authselect/backups/2022-05-19-14-07-19.3q9Ymg
选择了配置文件 "sssd"。
以下 nsswitch 映射信息被配置集覆盖:
- passwd
- group
- netgroup
- automount
- services

Make sure that SSSD service is configured and enabled. See SSSD documentation for more information.
 
- with-mkhomedir is selected, make sure pam_oddjob_mkhomedir module
  is present and oddjobd service is enabled and active
  - systemctl enable --now oddjobd.service
启用SSSD 和 ODDJOBD 服务
systemctl enable sssd.service --now
systemctl enable oddjobd.service --now
验证LDAP用户登录
# 可以找到用户,但是无法登录
id <username>

这里需要注意下,可能会无法找到用户,可以试着重启一下 SSSD 服务:

systemctl restart sssd.service

用户过滤

如果不出意外,通过上面的配置,类 CentOS8 系统已经可以使用 LDAP 账户登入系统了。然而这里会发现个问题,似乎所有账户都可以直接登录,这显然不是我们需要的,再次打开 SSSD 的配置文件 /etc/sssd/sssd.conf,添加过滤配置:

access_provider = ldap
ldap_access_order = filter
# 符合一般的逻辑操作 & 标识和,| 表示或。
ldap_access_filter = (&(objectclass=shadowAccount)(objectclass=posixAccount)(memberOf=cn=ecs,ou=group,dc=example,dc=com))

这样,只有 memberOf 属性为 cn=ecs,ou=group,dc=example,dc=composixAccount 类型的账户方可登录该服务器。

修改完成后,依旧要记得重启 SSSD 服务。

参考资料

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

雨帝夜泪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值