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. 数据库实例: STOREBOOK > 用户 > 编辑 用户: SYSTEM

    ylbtech-Oracle:数据库实例: STOREBOOK  >  用户  >  编辑 用户: SYSTEM 编辑 用户: SYSTEM 1. 一般信息返回顶部 1.1, 1.2, 2 ...

  2. AD各种布线方法总结

    1.常规布线:不详细说了,是个人就知道怎么弄.需要说明的是在布线过程中,可按小键盘的*键或大键盘的数字2键添加一个过孔:按L键可以切换布线层:按数字3可设定最小线宽.典型线宽.最大线宽的值进行切换. ...

  3. AI 经典书单 | 人工智能学习该读哪些书

    转载 2018年01月16日 00:00:00   人工智能相关岗位中,涉及到的内容包含: 算法.深度学习.机器学习.自然语言处理.数据结构.Tensorflow.Python .数据挖掘.搜索开发. ...

  4. jQuery UI全教程之一(dialog的使用教程)

    jQuery UI目前的版本已经更新到了1.8.7.个人感觉和easyui相比起来,jQuery UI在界面的美观程度和可定制型更强一些.所以再次将一些jQuery UI组件的用法说明一下,方便日后查 ...

  5. 重装linuxserver简易流程

             项目开发软件开发非常重要的一个环节,而能够拥有一个安全健康的server来使System正常高效的执行也是非常有必要的.由于是搭建在外网上的server.时不时会受到各种病毒的侵袭, ...

  6. 【大数据】下载Windows版本的Redis 转

    https://www.cnblogs.com/tommy-huang/p/6093813.html 下载Windows版本的Redis   1.打开官网http://redis.io/点击Downl ...

  7. Java-Shiro(四):Shiro

    https://blog.csdn.net/visket2008/article/details/78539334 不错的视屏教程,很实用:https://www.bilibili.com/video ...

  8. 如何把本地代码提交到git(码云)、github代码管理项目上

    前提必须安装了git工具 以下命令操作都是通过git bash操作. 将本地代码提交到码云空项目操作: D:\>mkdir inek_winprop D:\>cd inek_winprop ...

  9. yield python

    原文:http://pyzh.readthedocs.io/en/latest/the-python-yield-keyword-explained.html 3. (译)Python关键字yield ...

  10. Setting a maximum attachment size

      By default IBM® Lotus® iNotes™ allows a maximum attachment size of 50,000K (50MB). You can increas ...