RHCSA系列:在RHEL 7中设置基于LDAP的身份验证 - 第14部分

(它是用于和为什么它是什么,),并展示如何建立LDAP服务器和配置客户端使用 红帽企业Linux 7系统反对票来验证我们将通过一些概述基本 LDAP开始这篇文章。

RHCSA系列:设置LDAP服务器和客户端身份验证 - 第14部分

正如我们所看到的,还有其他一些可能的应用场景,但在本指南中,我们将完全集中于 基于LDAP的身份验证。此外,请记住,由于主题的广泛性,我们将仅介绍其基础知识,但您可以参考摘要中概述的文档以获取更详细的信息。 出于同样的原因,你会注意到,我已决定多次提到留出的LDAP工具手册页简洁起见,但相应的解释是在指尖的距离( 人ldapadd的 ,例如)。 也就是说,让我们开始吧。
我们的测试环境
我们的测试环境包括两个 RHEL 7盒:
Server: 192.168.0.18. FQDN: rhel7.mydomain.com
Client: 192.168.0.20. FQDN: ldapclient.mydomain.com
如果你愿意,你可以使用安装在机器中的 第12部分:自动化RHEL 7的安装使用Kickstart作为客户端。

什么是LDAP?

LDAP代表 轻型目录访问协议 ,由一组协议,允许客户端来访问,通过网络集中存储的信息(如目录登录炮弹,绝对路径的主目录,和其他典型系统的用户信息,例如),其应当可从不同地方访问或可供大量最终用户使用(另一示例将是公司中所有雇员的家庭地址和电话号码的目录)。 集中保存这样的(和更多的)信息意味着每个被授予使用权限的人都可以更容易地维护和访问。 下面的图表提供 的LDAP的简化图,并且更详细地描述如下:

LDAP图

上图详细说明。
  1. 在LDAP目录中的条目代表一个单位或信息,并通过所谓的专有名称唯一标识。
  2. 一个属性是一个条目(例如,地址,可用的联系电话号码,以及电子邮件地址)相关联的一条信息。
  3. 每个属性分配由一个空格分隔列表中的一个或多个 。每个条目唯一的值称为相对可分辨名称。
话虽如此,让我们继续服务器和客户端安装。

安装和配置LDAP服务器和客户端

RHEL 7,LDAP是由 OpenLDAP的实施。要安装服务器和客户端,请分别使用以下命令:
# yum update && yum install openldap openldap-clients openldap-servers
# yum update && yum install openldap openldap-clients nss-pam-ldapd
一旦安装完成,我们看看一些东西。除非明确指出,否则应在服务器上单独执行以下步骤: 1.确保 SELinux的不的方式通过使下述 布尔持续,服务器和客户端上得到:
# setsebool -P allow_ypbind=0 authlogin_nsswitch_use_ldap=0
其中需要基于LDAP的认证 allow_ypbind,并且可以通过一些应用需要 authlogin_nsswitch_use_ldap。 2.启用并启动服务:
# systemctl enable slapd.service
# systemctl start slapd.service
请记住,你也可以禁用,重启或停止服务 systemctl还有:
# systemctl disable slapd.service
# systemctl restart slapd.service
# systemctl stop slapd.service
3.由于 slapd的服务为LDAP用户(您可以用 ps -e -o PID,UNAME,通讯验证 | grep的slapd的 )上运行,这样的用户应该拥有,以便在 / var / lib中/ LDAP目录服务器能够修改由管理工具创建的条目,这些条目只能以root用户身份运行(在一分钟内更多)。 改变这个目录的所有权递归之前,请将样本数据库配置文件 的slapd到其中:
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# chown -R ldap:ldap /var/lib/ldap
4.设置一个OpenLDAP的管理用户和分配密码:
# slappasswd
如下图所示:

设置LDAP管理员密码

并创建包含以下内容的 LDIF文件 (ldaprootpasswd.ldif):
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD
哪里:
  1. 密码是以前获得的散列字符串。
  2. CN =配置指示全局配置选项。
  3. olcDatabase代表一个特定的数据库实例名,通常可以发现里面/etc/openldap/slapd.d/cn=config。
参照前面提供的理论背景下, ldaprootpasswd.ldif文件添加到LDAP目录中的条目。在该条目中,每行代表一个属性:值对(其中dn,changetype,add和olcRootPW是属性,每个冒号右侧的字符串是其对应的值)。 您可能要记住这一点,我们进一步进行,请注意,我们使用相同的通用名称 (cn=)在这篇文章中,其中每一个步骤依赖于前一个的其余部分。 5.现在,通过指定 的URI指的是LDAP服务器,其中只有协议/主机/端口字段允许添加相应的LDAP项。
# ldapadd -H ldapi:/// -f ldaprootpasswd.ldif 
输出应类似于:

LDAP配置

并导入从一些基本的LDAP定义 /etc/openldap/schema目录:
# for def in cosine.ldif nis.ldif inetorgperson.ldif; do ldapadd -H ldapi:/// -f /etc/openldap/schema/$def; done

LDAP定义

6.有无LDAP使用您的域名在其数据库中。 创建另一个 LDIF文件,我们称之为 ldapdomain.ldif ,包含以下内容,免去您的域(域组件DC =)和密码酌情:
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
read by dn.base="cn=Manager,dc=mydomain,dc=com" read by * none
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=mydomain,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=mydomain,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PASSWORD
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=Manager,dc=mydomain,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=mydomain,dc=com" write by * read
然后按如下方式加载:
# ldapmodify -H ldapi:/// -f ldapdomain.ldif

LDAP域配置

7.现在是时候某些条目添加到我们的LDAP目录。 属性和值由冒号 (:)在以下文件中,我们将其命名为 baseldapdomain.ldif
dn: dc=mydomain,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: mydomain com
dc: mydomain
dn: cn=Manager,dc=mydomain,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager
dn: ou=People,dc=mydomain,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=mydomain,dc=com
objectClass: organizationalUnit
ou: Group
将条目添加到LDAP目录中:
# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f baseldapdomain.ldif

添加LDAP域属性和值

8.创建一个LDAP用户名为 ldapuser( 的adduser ldapuser),然后在一个LDAP组创建的定义 ldapgroup.ldif
# adduser ldapuser
# vi ldapgroup.ldif
添加以下内容。
dn: cn=Manager,ou=Group,dc=mydomain,dc=com
objectClass: top
objectClass: posixGroup
gidNumber: 1004
那里 的gidNumber是GID在 / etc /组 ldapuser),并加载它:
# ldapadd -x -W -D "cn=Manager,dc=mydomain,dc=com" -f ldapgroup.ldif
9.添加LDIF文件与用户ldapuser(定义 ldapuser.ldif ):
dn: uid=ldapuser,ou=People,dc=mydomain,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: ldapuser
uid: ldapuser
uidNumber: 1004
gidNumber: 1004
homeDirectory: /home/ldapuser
userPassword: {SSHA}fiN0YqzbDuDI0Fpqq9UudWmjZQY28S3M
loginShell: /bin/bash
gecos: ldapuser
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
并加载:
# ldapadd -x -D cn=Manager,dc=mydomain,dc=com -W -f ldapuser.ldif

LDAP用户配置

同样,您可以删除刚刚创建的用户条目:
# ldapdelete -x -W -D cn=Manager,dc=mydomain,dc=com "uid=ldapuser,ou=People,dc=mydomain,dc=com"
10.允许通过防火墙的通信:
# firewall-cmd --add-service=ldap
11.最后,但并非最不重要的,使客户端使用LDAP进行身份验证。 为了帮助我们在这最后一步,我们将使用 authconfig实用程序(配置体系认证资源的接口)。 使用以下命令,如果在针对LDAP服务器的认证成功后不存在请求用户的主目录,则会创建该主目录:
# authconfig --enableldap --enableldapauth --ldapserver=rhel7.mydomain.com --ldapbasedn="dc=mydomain,dc=com" --enablemkhomedir --update

LDAP客户端配置

概要

在本文中,我们说明了如何针对LDAP服务器设置基本身份验证。为了进一步构成本指南中描述的设置,请参见 第13章- LDAP配置的RHEL 7系统管理员指南中,要特别注意使用TLS安全设置。 使用下面的评论表格可以随意留下任何问题。
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏