LDAP用户登录流程:

当在客户端输入账号登录系统时,系统根据/etc/nsswitch.conf配置文件获取账号查找顺序,然后再根据PAM配置文件调用相关模块,对账号(/etc/passwd)及密码(/etc/shadow)进行查找并进行匹配。当本地匹配不成功时,会通过后端认证服务器(OpenLDAP服务器)进行验证。

主要的几个配置文件说明:

  • /etc/nsswitch.conf 该文件主要用于名称转换服务,用于系统验证用户身份所读取本地文件或是远程验证服务器文件。

  • /etc/sysconfig/authconfig 主要用于提供身份验证之LDAP功能,该配置文件用来跟踪LDAP身份认证机制是否正确启用。

  • /etc/pam.d/system-auth 主要用于实现用户账户身份验证。

  • /etc/pam_ldap.conf 实现客户端与服务端的交互。(rhel7没有该配置文件)

  • /etc/openldap/ldap.conf 主要用于查询OpenLDAP服务器所有条目信息。

安装客户端软件包

yum install -y openldap-clients nss-pam-ldapd

配置Openldapclient

将LDAP服务器端主机名和IP地址的解析记录写入到/etc/hosts文件,因为我们没有配置DNS方式来解析主机或,所以就简单地写入到hosts文件里。

#echo "192.168.100.200 server0.ultrapower.com" >> /etc/hosts

3种配置图LDAP客户端的方式
1、图形界面配置方式
[root@desktop0 ~]# authconfig-gtk ---默认没有安装该工具,yum install authcongif-gtk 安装之后才能使用。

或者[root@desktop0 ~]# system-config-authentication

L

LDAP server:填写主机名或IP都可以。开头的’ldap://‘可以省略不写。

密钥获取通过http方式,因为我们在服务器端已经安装配置了httpd服务,并且已经把公钥文件cert.pem放到网站默认目录下了。

另外两种配置方式则使用scp方式拷贝密钥文件。

2、字符界面配置方式

[root@desktop0 ~]#authconfig-tui

或者直接输入setup命令,选择Authentication configuration。之后的界面界面同上。

对比修改前后的配置文件:

1、/etc/nsswitch.conf 配置文件

2、/etc/pam.d/system-auth-ac配置文件

3、/etc/nslcd.conf

uri ldap://server0.ultrapower.com/
base dc=ultrapower,dc=com
ssl start_tls
tls_cacertdir /etc/openldap/cacerts

3、命令行配置方式

As the authconfig-tui is deprecated, to configure the LDAP client side, there are two available options: nslcd and sssd.
In this tutorial, the nslcd option will be used, see the authconfig tutorial for the sssd option.

nslcd方式

# authconfig --enableforcelegacy --update
# authconfig --enableldap --enableldapauth --ldapserver="server0.ultrapower.com" --ldapbasedn="dc=ultrapower,dc=com" --update
# scp 方式获取密钥
# authconfig --enableldaptls --update

也可以加上这个参数–enablemkhomedir ,ldap用户在登录系统时自动创建家目录。但是我们要使用nfs服务器上的共享目录,所以这里不需要该参数。

Note1: According to your requirements, you can need to specify the –enablemkhomedir option after the installation of the oddjob-mkhomedir package. The option creates a local user home directory at the first connection if none exists.
Note2: Type # authconfig –help | grep ldap to remember the necessary options.

[root@desktop2 ~]# authconfig --help | grep ldap
--enableldap enable LDAP for user information by default
--disableldap disable LDAP for user information by default
--enableldapauth enable LDAP for authentication by default
--disableldapauth disable LDAP for authentication by default
--ldapserver=<server>
--ldapbasedn=<dn> default LDAP base DN
--enableldaptls, --enableldapstarttls
--disableldaptls, --disableldapstarttls
--ldaploadcacert=<URL>
[root@desktop2 ~]#

ssd方式:

# yum install -y sssd
# authconfig --enableldap --enableldapauth --ldapserver="server0.ultrapower.com" --ldapbasedn="dc=ultrapower,dc=com" --update
# scp root@192.168.100.200:/etc/openldap/certs/cert.pem /etc/openldap/cacerts/
# authconfig --enableldaptls --update

最后,我们要获取服务器端公钥文件并测试

把服务器端的密钥文件放到客户机/etc/openldap/cacerts目录下

[root@desktop1 ~]# scp root@192.168.100.200:/etc/openldap/certs/cert.pem /etc/openldap/cacerts/

测试:

[root@desktop1 ~]# ping server0.ultrapower.com  --必须能够ping通服务器主机名
PING server0.ultrapower.com (192.168.100.200) 56(84) bytes of data.
64 bytes from server0.ultrapower.com (192.168.100.200): icmp_seq=1 ttl=64 time=0.417 ms
^C
--- server0.ultrapower.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.417/0.417/0.417/0.000 ms
[root@desktop1 ~]# id testldapuser1
uid=1001(testldapuser1) gid=1001(testldapuser1) groups=1001(testldapuser1)
[root@desktop1 ~]# id testldapuser3
uid=1003(testldapuser3) gid=1003(testldapuser3) groups=1003(testldapuser3)
[root@desktop1 ~]#

切换到ldap用户时提示没有用户目录:

[root@desktop1 ~]# su - testldapuser1
su: warning: cannot change directory to /home/guests/testldapuser1: No such file or directory
-bash-4.2$

如果我们勾选下图选项,则切换到LDAP用户时,会自动创建用户的家目录:

[root@desktop1 ~]# id testldapuser8
uid=1008(testldapuser8) gid=1008(testldapuser8) groups=1008(testldapuser8)
[root@desktop1 ~]# ls /home/
rusky
[root@desktop1 ~]# su - testldapuser8
Creating home directory for testldapuser8.
[testldapuser8@desktop1 ~]$ pwd
/home/guests/testldapuser8

 [testldapuser8@desktop1 ~]$ touch testfile8
  [testldapuser8@desktop1 ~]$ ls
  testfile8

但是会出现一个这样的问题,如果用户在不同的客户机上都创建自己的家目录,无法做到在不同的客户机下共享家目录。比如上面的testldpauser8用户在desktop1上登录时,创建了一个testfile8文件,下一次从desktop2上登录时是看不到这个文件的,因为该文件是保存在客户机本地。所以下一篇文章中,我们将使用NFS服务为每个用户都创建自己自己的共享目录,用户从不同的客户机上登录时,都挂载使用NFS服务器上的共享目录,这样就能保证用户家目录下的文件一致了。

参考文档:

https://www.certdepot.net/ldap-client-configuration-authconfig/

http://www.linuxidc.com/Linux/2016-08/134228.htm

RHEL7-openldap安装配置二(客户端安装配置)的更多相关文章

  1. Windows Server - SVN 服务器搭建与项目配置、客户端安装与配置

    本教程以Windows Server 2012 R12 为例搭建SVN服务器,安装部署完成后,客户端可通过SVN客户端访问SVN服务器上的项目,也可以访问网上其他SVN服务器上的项目. 一.首先准备三 ...

  2. Linux下SVN服务器安装配置及客户端安装说明

    原文地址:http://wenku.baidu.com/link?url=h3dVAMx4azpOXEND5HQEE6nliE8-zc0GSQ03yv4cUs1vXMALXF64UsK7kT7kXm_ ...

  3. Linux(Ubuntu 16) 下Java开发环境的配置(二)------Tomcat的配置及常见问题

    前言 相比于java JDK的配置,Tomcat的配置简单的多,简直就相当于直接运行了,本文以Tomcat8.0为例进行配置   1.Tomcat的下载 地址:https://tomcat.apach ...

  4. SAP ECC6安装系列二:安装前的准备工作

    原作者博客 http://www.cnblogs.com/Michael_z/ ======================================== 安装 Java  1,安装 Java, ...

  5. Spring Cloud配置中心客户端读取配置

    微服务连接配置中心来实现外部配置的读取. 引入依赖 <dependencies> <dependency> <groupId>org.springframework ...

  6. MYSQL + MHA +keepalive + VIP安装配置(二)--MHA的配置

    一.总概 1.MHA介绍 MHA(Master High Availability)是自动的master故障转移和Slave提升的软件包.它是基于标准的MySQL复制(异步/半同步).      MH ...

  7. win10与centos7的双系统U盘安装(二:安装以及配置centos系统)

    继续第一篇的讲解,接着就是要进入第二部分——安装以及配置centos系统 特别提醒在安装centos之间,注意自己的win10系统进行备份,便于回复安装失败后的系统 1:安装前准备 安装前准备主要是两 ...

  8. Oracle 客户端安装配置

    电脑上安装了Oracle11G,我远程导出一个10g的数据库数据时,报了错误,猜测可能是我的11G客户端版本的问题.所以下载了10G的客户端 安装. 其实客户端的配置读取的是两个文件监听配置文件lis ...

  9. 配置LANMP环境(1)-- 安装虚拟机VMware与安装CentOS7.2系统

    一.安装虚拟机VMware 1.下载VMware傻瓜式安装 2.配置                二.安装CentOS7.2系统 镜像下载链接 1.放入ios镜像文件之后,启动虚拟机,选择7.0+的 ...

  10. 《LDAP服务器的配置与客户端的测试》RHEL6——第一篇 运维工程师必考

    ldap这种原始的服务器搭建起来比较复杂,同时它也是CE必考的(客户端的搭建). 服务器端的配置: 1.安装openldap-servers软件包 2.查看ldap模板文件的存放位置: 3.拷贝lda ...

随机推荐

  1. Java的四个基本特性和对多态的理解

    Java面向对象的四大基本特性:抽象.封装.继承.多态. 多态的实现方式:重载.继承.接口 Java中多态性的实现 什么是多态 面向对象的三大特性:封装.继承.多态.从一定角度来看,封装和继承几乎都是 ...

  2. 数据库实例: STOREBOOK > 数据文件/退回字段/重做日志组|管理员

    ylbtech-Oracle:数据库实例: STOREBOOK  > 数据文件/退回字段/重做日志组|管理员 数据文件/退回字段/重做日志组|管理员 1. 数据库实例: STOREBOOK  & ...

  3. PHP通用返回值设置

    遇到一个不错的php代码.记录一下. 在写php代码时,经常会遇到需要返回值的情况,可以统一设置一下返回值的格式.下面就是一个不错的例子. 配置类Return.conf.php <?php de ...

  4. go语言之进阶篇字符串操作常用函数介绍

    下面这些函数来自于strings包,这里介绍一些我平常经常用到的函数,更详细的请参考官方的文档. 一.字符串操作常用函数介绍 1.Contains func Contains(s, substr st ...

  5. Tensorflow 模型持久化saver及加载图结构

    主要内容: 1. 直接保存,加载模型; (可以指定加载,保存的var_list) 2. 加载,保存指定变量的模型 3. slim加载模型使用 4. 加载模型图结构和参数等 tensorflow 恢复部 ...

  6. 构建-4 dependencies 依赖管理

    官方文档 Add build dependencies The Gradle build system in Android Studio makes it easy to include exter ...

  7. 异常捕获 UncaughtExceptionHandler MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  8. MySQL 高可用性—keepalived+mysql双主(有详细步骤和全部配置项解释)

    博主QQ:819594300 博客地址:http://zpf666.blog.51cto.com/ 有什么疑问的朋友可以联系博主,博主会帮你们解答,谢谢支持! 前言:生产环境中一台mysql主机存在单 ...

  9. VS2013开发一个简单的asmx接口程序

    一.开发和调试 1:创建一个ASP.NET web应用程序 2:选择空的模板 3:系统生成项目目录 4:右键项目-添加项-新建项 5:选择Web  服务(ASMX) 6:选择之后项目中会有一个Test ...

  10. 了解JavaScript(1)- Hello World

    JavaScript 简介 JavaScript 是一种可以给网页增加交互性的编程语言. 熟悉 JavaScript 的好方法是"站在其他程序员肩膀上",即Web 上有大量 Jav ...