Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >OpenLDAP集成sssd同步用户并集成SSH登录

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

作者头像
soundhearer
发布于 2020-10-16 03:06:09
发布于 2020-10-16 03:06:09
3K00
代码可运行
举报
文章被收录于专栏:数据湖数据湖
运行总次数:0
代码可运行

sssd服务是一个守护进程,该进程可以用来访问多种验证服务器,如LDAP,Kerberos等,并提供授权。SSSD是 介于本地用户和数据存储之间的进程,本地客户端首先连接SSSD,再由SSSD联系外部资源提供者(一台远程服务器) (1)避免了本地每个客户端程序对认证服务器大量连接,所有本地程序仅联系SSSD,由SSSD连接认证服务器或SSSD缓存,有效的降低了负载。 (2)允许离线授权。SSSD可以缓存远程服务器的用户认证身份,这允许在远程认证服务器宕机是,继续成功授权用户访问必要的资源。

集成sssd

所有节点安装相关服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
yum -y install openldap-clients sssd authconfig nss-pam-ldapd

将OpenLDAP服务器的/etc/openldap/certs目录下的ldap.key和ldap.crt文件拷贝至OpenLDAP所有客户端节点/etc/openldap/cacerts目录下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh1 ~]# scp ldap.key cdh2.macro.com:/etc/openldap/cacerts/

[root@cdh1 ~]# scp ldap.crt cdh3.macro.com:/etc/openldap/cacerts/

在所有客户端节点上执行如下命令

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh2 cacerts]# cacertdir_rehash /etc/openldap/cacerts/

3.所有节点执行如下命令启用sssd服务(在如下参数中--enableldaptls 如果OpenLDAP服务未启用TLS则将此参数修改为--disableldaptls)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh2 cacerts]# authconfig --enablesssd --enablesssdauth --enablerfc2307bis --enableldap --enableldapauth --enableldaptls --disableforcelegacy --disablekrb5 --ldapserver ldap://cdh1.macro.com --ldapbasedn "dc=macro,dc=com" --enablemkhomedir --update

4.修改/etc/sssd/sssd.conf文件,在执行authconfig命令时会默认生成,如果文件不存在则新建,文件内容如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh2 cacerts]# vim /etc/sssd/sssd.conf
[root@cdh1 home]# cat /etc/sssd/sssd.conf
[domain/default]

autofs_provider = ldap
ldap_schema = rfc2307bis
krb5_realm = MACRO.COM
ldap_search_base = dc=macro,dc=com
krb5_server = cdh1.macro.com
id_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://cdh1.macro.com
ldap_id_use_start_tls = True
ldap_tls_reqcert = allow
cache_credentials = True
ldap_tls_cacertdir = /etc/openldap/cacerts
[sssd]
services = nss, pam, autofs
config_file_version = 2

domains = default
[nss]
homedir_substring = /home

[pam]

[sudo]

[autofs]

[ssh]

[pac]

[ifp]

修改sssd.conf文件权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh2 sssd]# chmod 600 /etc/sssd/sssd.conf

5.启动sssd服务并加入系统自启动

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh2 sssd]# systemctl start sssd
[root@cdh2 sssd]# systemctl enable sssd
[root@cdh2 sssd]# systemctl status sssd

6.至此完成sssd的配置,可以通过id查看用户OpenLDAP的用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[user_w@cdh1 root]$ more /etc/passwd |grep etl_user
[user_w@cdh1 root]$ id etl_user
uid=50001(etl_user) gid=50001(etl_user) groups=50001(etl_user)

OpenLDAP与SSH集成

1.修改配置文件/etc/ssh/sshd_config,使ssh通过pam认证账户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#PasswordAuthentication yes
#PermitEmptyPasswords no
PasswordAuthentication yes

# and ChallengeResponseAuthentication to 'no'.
# WARNING: 'UsePAM no' is not supported in Red Hat Enterprise Linux and may cause several
# problems.
UsePAM yes

2.修改配置文件/etc/pam.d/sshd,以确认调用pam认证文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# pam_selinux.so open should only be followed by sessions to be executed in the user context
session    required     pam_selinux.so open env_params
session    required     pam_namespace.so
session    optional     pam_keyinit.so force revoke
session    include      password-auth
session    include      postlogin
session    required      pam_mkhomedir.so
# Used with polkit to reauthorize users in remote sessions
-session   optional     pam_reauthorize.so prepare

3.修改配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh2 sssd]# vim /etc/pam.d/password-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        [default=1 success=ok] pam_localuser.so
auth        [success=done ignore=ignore default=die] pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        sufficient    pam_sss.so forward_pass
#auth        sufficient    pam_ldap.so  forward_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
#account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_sss.so use_authtok
#password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     optional      pam_mkhomedir.so umask=0077
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
session     optional      pam_sss.so
#session     optional      pam_ldap.so

4.修改/etc/pam.d/system-auth配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh1 ~]# cat /etc/pam.d/system-auth
#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth        required      pam_env.so
auth        [default=1 success=ok] pam_localuser.so
auth        [success=done ignore=ignore default=die] pam_unix.so nullok try_first_pass
auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
auth        sufficient    pam_sss.so forward_pass
#auth        sufficient    pam_ldap.so  forward_pass
auth        required      pam_deny.so

account     required      pam_unix.so broken_shadow
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 1000 quiet
account     [default=bad success=ok user_unknown=ignore] pam_sss.so
#account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
account     required      pam_permit.so

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
password    sufficient    pam_unix.so sha512 shadow nullok try_first_pass use_authtok
password    sufficient    pam_sss.so use_authtok
#password    sufficient    pam_ldap.so use_authtok
password    required      pam_deny.so

session     optional      pam_keyinit.so revoke
session     required      pam_limits.so
-session     optional      pam_systemd.so
session     optional      pam_mkhomedir.so umask=0077
session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
session     required      pam_unix.so
#session     optional      pam_sss.so
session     optional      pam_ldap.so

5.重启sshd服务

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
systemctl restart sshd

至此就完成了OpenLDAP与SSH的集成。

验证SSH登录

1.确认etl_user用户只存在于OpenLDAP

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh1 ~]# more /etc/passwd |grep etl_user
[root@cdh1 ~]# id etl_user
uid=50001(etl_user) gid=50001(etl_user) groups=50001(etl_user)

2.su切换到etl_user用户

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh1 ~]# su etl_user
[etl_user@cdh1 root]$ cd ~
[etl_user@cdh1 ~]$ pwd
/home/etl_user
[etl_user@cdh1 ~]$ id
uid=50001(etl_user) gid=50001(etl_user) groups=50001(etl_user)

3.ssh登录本机

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh1 ~]# ssh etl_user@localhost
etl_user@localhost's password: 
Last login: Thu Oct  1 22:20:08 2020
[etl_user@cdh1 ~]$ pwd
/home/etl_user
[etl_user@cdh1 ~]$ id
uid=50001(etl_user) gid=50001(etl_user) groups=50001(etl_user)

4.ssh远程登录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[root@cdh1 ~]# ssh etl_user@cdh2.macro.com
etl_user@cdh2.macro.com's password: 
Last login: Thu Oct  1 21:41:19 2020 from 192.168.0.171
[etl_user@cdh2 ~]$ pwd
/home/etl_user
[etl_user@cdh2 ~]$ id
uid=50001(etl_user) gid=50001(etl_user) groups=50001(etl_user)
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据湖 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2.OpenLDAP集成SSH登录并使用SSSD同步用户
前面Fayson文章讲《1.如何在CentOS6.5安装OpenLDAP并配置客户端》,安装及配置好OpenLDAP后,如何使用OpenLDAP上的用户登录集群服务器,本篇文章主要介绍OpenLDAP如何与SSH集成并配置SSSD同步用户。
Fayson
2018/03/29
5.4K0
2.OpenLDAP集成SSH登录并使用SSSD同步用户
2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户
温馨提示:要看高清无码套图,请使用手机打开并单击图片放大查看。 Fayson的github:https://github.com/fayson/cdhproject 提示:代码块部分可以左右滑动查看噢 1.文档编写目的 ---- 前面Fayson文章讲《1.如何在RedHat7上安装OpenLDA并配置客户端》,安装及配置好OpenLDAP后,如何使用OpenLDAP上的用户登录集群服务器,本篇文章主要介绍如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户。 内容概述 1.安装O
Fayson
2018/04/18
8.8K1
2.如何在RedHat7中实现OpenLDAP集成SSH登录并使用sssd同步用户
linux下加入windows ad域的
下面是3 种linux下加入 Windows Acitve Directory 并用 AD 验证帐号的方法。 假设您的环境是  AD server:    server.redhat.com
py3study
2020/01/09
4.2K0
Linux下PAM模块学习总结
在Linux中执行有些程序时,这些程序在执行前首先要对启动它的用户进行认证,符合一定的要求之后才允许执行,例如login, su等。在Linux中进行身份或是状态的验证程序是由PAM来进行的,PAM(Pluggable Authentication Modules)可动态加载验证模块,因为可以按需要动态的对验证的内容进行变更,所以可以大大提高验证的灵活性。 一、PAM模块介绍 Linux-PAM(即linux可插入认证模块)是一套共享库,使本地系统管理员可以随意选择程序的认证方式。换句话说,不用(重新编写)
洗尽了浮华
2018/04/11
6K0
Linux下PAM模块学习总结
Centos7.9安装openldap
亲测可用,之前搜索了很多博客,啥样的都有,就是不介绍报错以及配置用处,根本不懂照抄那些配置是干啥的,稀里糊涂的按照博客搭完也跑不起来,因此记录这个。
刘大猫
2025/01/20
1660
LDAP客户端认证配置与应用接入
描述:通过上一篇笔记的学习以及操作,我们已经完成吧账号属性导入了OpenLDAP中,然后通过OpenLDAP用户进行验证登陆所以我们还需对客户端进行配置; 除此之外我们还将常见的开源应用进行接入OpenLDAP之中进行应用;
全栈工程师修炼指南
2022/09/29
3.8K0
LDAP客户端认证配置与应用接入
基于SSSD同步OpenLDAP账号
涉及组件版本为:hdfs-3.2.2,yarn-3.2.2,openldap-2.4.44,spark-3.2.2,krb5-1.15.1
王旭平
2023/02/06
1.9K0
等保测评主机安全之centos密码长度
在《等级测评师初级教程》里,对于密码长度的设置指向了/etc/login.defs里的PASS_MIN_LEN字段。
FB客服
2019/06/18
1.6K0
等保测评主机安全之centos密码长度
HPC集群公网开放安全加固和资源显示
[root@node24 ~]# cat /etc/passwd | tail -31 | awk -F":" '{print $1}' >> user
星哥玩云
2022/07/04
5060
linux 中关于PAM的点滴笔记
pam在linux系统中是非常常用,也是非常重要的一个子系统,然而对于pam,我们可能并没有太多的关注其man 帮助文件的说明,最近读了一下pam的man page, 许多不明白的豁然开朗,这里做一个简单的笔记: A. pam.d 是一个目录,一般情况下 关于pam的配置都在这个目录下,其实还有一个配置文件 pam.conf ,不过一般都不存在,而在pam.conf这个配置文件中,关于语法的格式,在man pam.conf 或者man pam.d 的时候,有这么一段:
qsjs
2020/07/23
2.4K0
centos7主机安全检测脚本和初始化脚本
# 一、主机安全检查脚本 #!/bin/bash ##Filename: CentOS_Check_Script.sh ##Description: Security detection script echo "##########################################################################" echo "#
章工运维
2023/05/19
7790
[openldap]使用openldap认证linux操作系统ssh登录
使用openldap认证linux的ssh登录本来是很简单的,所以这里只是说下基本操作,后面有空会增加一些比较高级的玩法,比如限制哪些用户登录哪些Linux主机,比如允许特定用户sudo,比如开启ssl。
用户9314062
2022/05/20
3.2K0
基于OpenLDAP与Kerberos的Amazon EMR身份认证方案(二):基于SSSD同步LDAP账号
写作本系列文章的背景是我们要在大数据平台/企业数据湖场景下给出中心化的用户身份认证方案。此前,我们实现过Windows AD + Kerberos的集成方案,由于Windows AD是LDAP和Kerberos的双重实现,这种天然优势使得Windows AD可以实现真正意义上的(大数据集群的)Kerberos账号与企业用户账号的统一管理。当我们想在OpenLDAP + Kerberos上实现同样的目标时,发现这一领域的知识与方案琐碎而凌乱,缺少统一连贯,脉络清晰的讲解,在经过大量技术调研和系统梳理后,我们特别撰写了本系列文章,希望可以借此将这一话题全面彻底地阐述清楚。本系列由三篇文章组成,将沿着“如何集成OpenLDAP与Kerberos实现统一认证管理”这一主线推进,在实现过程中会详细介绍使用到的技术和原理并给出完备的执行脚本用于实际环境的搭建。我们假设读者已经具备OpenLDAP和Kerberos的基本知识,不再对两者进行单独介绍。
王旭平
2023/02/06
1.1K0
0893-7.1.6-如何为CDP集群配置LDAP高可用并集成测试
1.文档编写目的 本篇文章主要介绍如何在CDP 7.1.6集群中配置LDAP的高可用。 文档概述 1.如何在CDP7集群配置LDAP高可用 2.验证LDAP的高可用 3.总结 测试环境 1.操作系统Redhat7.2 2.CDP7.1.6 3.使用root用户操作 2.查看主备节点的DN信息 1.主节点DN信息 [root@cdh1 ~]# ldapsearch -b "dc=macro,dc=com" -D "cn=Manager,dc=macro,dc=com" -W |grep dn 2.备节点D
Fayson
2022/09/14
1.4K0
0893-7.1.6-如何为CDP集群配置LDAP高可用并集成测试
12.OpenLDAP管理工具Phpldapadmin的安装及使用
Fayson在前面的文章中有很多关于OpenLDAP的介绍,在文章中均使用的命令行的方式对OpenLDAP进行用户和用户组的添加,添加方式复杂且容易出错。本篇文章Fayson主要介绍OpenLDAP管理工具Phpldapadmin的安装及使用。
Fayson
2018/09/29
13.6K0
等保测评主机安全:CentOS密码修改周期与登录失败处理
本文和等保联系不是很密切,还是说一了些linux里细节一些的东西,所以有可能会浪费你生命中的好几分钟,同时我使用的是centos6。
FB客服
2019/07/09
3.7K0
等保测评主机安全:CentOS密码修改周期与登录失败处理
Ranger同步ldap组问题
按照我们之前的配置,在CDH7.1.1上为Ranger集成OpenLDAP认证这边文章中,我们为Ranger集成了OpenLDAP认证,刚开始给Hive、HDFS、HBase授权的时候,没发现有什么毛病,ldap用户都能正常登录和同步。后来使用Ranger API给用户批量授权时,将大量用户放在同一用户组里,比较好管理。这时我们才发现ldap的用户组没有被Ranger同步过来。
soundhearer
2020/10/16
3.1K1
Ranger同步ldap组问题
Linux之PAM系统模块详解说明
[TOC] 0x00 前言介绍 Q:什么是PAM? 答:PAM 的全称为可插拔认证模块(Pluggable Authentication Modules:简称 PAM /pæm/ ),Linux中的一
全栈工程师修炼指南
2020/10/26
14.1K2
【实用】防暴力破解服务器ssh登入次数
于是乎写出了这个防范措施。防暴力破解服务器ssh登入次数,账号锁定,IP拉黑,日志查看。
释然IT杂谈
2022/10/27
2.2K0
【实用】防暴力破解服务器ssh登入次数
0890-7.1.6-如何在CDP集群配置Kerberos高可用
1.文档编写目的 本篇文章主要介绍如何在CDP 7.1.6集群中配置Kerberos的高可用。 文档概述 1.如何在CDP7集群配置Kerberos高可用 2.验证 3.总结 测试环境 1.操作系统Redhat7.2 2.CDP7.1.6 3.使用root用户操作 2.备节点安装Kerberos服务 1.在备节点安装Kerberos服务,暂时不进行相关配置 [root@cdh1 ~]# yum install -y krb5-server openldap-clients krb5-workstation
Fayson
2022/08/31
1.2K0
0890-7.1.6-如何在CDP集群配置Kerberos高可用
推荐阅读
相关推荐
2.OpenLDAP集成SSH登录并使用SSSD同步用户
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档