openldap+sssd实现ldap账号登陆linux服务器

参考文档:

LDAP and Transport Layer Security (TLS) | Ubuntu

https://www.cnblogs.com/yun-xx/p/17961221

踩坑:

最早用的是docker版本openLDAP,没有tls的,结果各种验证不过,看日志隐约感觉是要用tls才行。

于是开始安装openLDAP,中间看了几个编译的版本没成功,最后还是官网的安装一试成功了。

Ubuntu22安装openLDAP:

sudo apt install slapd ldap-utils

配置openLDAP:

sudo dpkg-reconfigure slapd

后续步骤按官网的来,dc=example,dc=com这些名字可以改成自己的,比如xxx。

安装好后开始继续配置TLS,安装按官网文档依葫芦画瓢一路下来

Create the /etc/ssl/ldap01.info info file containing:

organization = Example Company
cn = ldap01.example.com
tls_www_server
encryption_key
signing_key
expiration_days = 365

这里的cn=ldap01.example.com,记得改成你的(比如xxx.com),到时在改/etc/hosts的时候对应配上解析(我是走hosts,没用dns解析)

openLDAP的都配置好后,开始安装配置sssd:

apt install sssd ldap-utils

修改/etc/sssd/sssd.conf(记得权限要600)

[sssd]
config_file_version = 2
services = nss, pam
domains = alpha
[nss]
debug_level = 4
filter_groups = root
filter_users = root
[domain/alpha]
debug_level = 9
auth_provider = ldap
id_provider = ldap
chpass_provider = ldap


ldap_uri = ldaps://xxx.com
ldap_search_base = dc=xxx,dc=com
#ldap_default_bind_dn = cn=admin,dc=xxx,dc=com
ldap_default_authtok_type = password
ldap_default_authtok = 123456
override_homedir = /home/%u
override_shell = /bin/bash
access_provider = permit
sudo_provider = ldap
autofs_provider = ldap
resolver_provider = ldap

ldap_tls_reqcert = never
ldap_id_use_start_tls = true

配置好后测试成功:

### 配置和故障排除:Linux LDAPSSSD集成 #### 一、概述 在现代企业级Linux部署中,通过LDAP(轻量目录访问协议)实现集中化身份验证管理是一种常见做法。为了提高效率并简化配置过程,通常会结合使用System Security Services Daemon (SSSD)[^1]。 #### 二、安装必要的软件包 对于基于Red Hat的企业版Linux发行版本而言,需要先确保已安装sssd-client以及openldap-y ``` #### 三、基础设置 编辑`/etc/sssd/sssd.conf`文件来定义域和服务参数。下面是一个简单的例子: ```ini [sssd] domains = example.com config_file_version = 2 services = nss, pam [domain/example.com] id_provider = ldap auth_provider = ldap chpass_provider = ldap access_provider = simple ldap_uri = ldaps://ldap.example.com/ ldap_search_base = dc=example,dc=com ldap_tls_reqcert = never ``` 请注意,在实际应用中应当启用TLS加密通信,并严格校验证书有效性而不是简单地将其设为never。 #### 四、PAM模块调整 为了让系统能够利用SSSD来进行用户认证,则需修改相应的Pluggable Authentication Modules(PAM)策略文件。一般情况下只需更新/etc/pam.d/system-auth-ac即可满足需求: ```bash 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 required pam_mkhomedir.so skel=/etc/skel umask=0077 session optional pam_sss.so ``` 以上更改使得新创建的家目录自动由pam_mkhomedir.so负责处理;同时允许首次登录时自动生成所需的个人空间结构。 #### 五、NSSwitch配置优化 最后一步是要确认名称服务切换(NSSwitch)数据库正确指向了SSSD作为数据源之一。这可以通过编辑/etc/nsswitch.conf完成: ```plaintext passwd: files sss shadow: files sss group: files sss sudoers: files sss ``` 上述设定表明除了传统的本地账户外,还应该查询来自远端LDAP服务器的信息记录。 #### 六、测试连接性和功能正常性 一旦完成了所有前期准备工作之后,建议立即尝试执行如下命令以检验整个流程是否顺畅无误: ```bash getent passwd testuser@example.com su -l testuser@example.com ``` 如果一切顺利的话,那么就说明已经成功实现Linux平台下针对LDAP用户的无缝接入支持。 #### 故障排查技巧 当遇到无法预期的行为或错误提示时,可以考虑采取以下几个措施帮助定位问题所在: - 查看日志消息:查看/var/log/messages或者journalctl输出寻找任何可能存在的警告或异常情况; - 启用调试模式:临时增加debug_level选项至全局部分以便收集更详细的运行状态报告; - 使用工具辅助诊断:借助ldapsearch这类专用客户端程序直接向目标服务器发起请求从而快速判断网络连通状况及权限分配合理性等问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值