前言:
现时各位老铁们对“ldap服务器”大概比较看重,咱们都想要剖析一些“ldap服务器”的相关知识。那么小编也在网上汇集了一些对于“ldap服务器””的相关资讯,希望看官们能喜欢,咱们快快来了解一下吧!什么是LDAP
LDAP全称是轻型目录访问协议(Lightweight Directory Access Protocol)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。
LDAP目录以树状的层次结构来存储数据。如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉,也就很容易掌握LDAP目录树这个概念
当公司规模大了之后,会有非常多的系统,如果每一个系统都需要注册一个用户名,每一个系统的用户名与密码可能都不一样。对员工来说就是一件折腾的事情,从公司的IT运维角度来说更是麻烦。所以需要统一认证,单点登录。而LDAP就是最适合在单点登录中使用的系统。
关键字
全称
含义
dc
Domain Component
域名的部分,其格式是将完整的域名分成几部分,如域名为example.com变成dc=example,dc=com(一条记录的所属位置)
uid
User Id
用户Id zuoquantu (一条记录的ID)
ou
Organization Unit
组织单位,组织单位可以包含在其他各种对象(包括其他组织单位),如”oa组” (一条记录的所属组)
cn
Common Name
公共名称,如“Thomas Johansson”(一条记录的名称)
sn
Surname
姓,如”许”
dn
Distinguished Name
“uid=songtao.xu,ou=oa组,dc=example,dc=com”,一条记录的位置(唯一)
rdn
Relative dn
相对辨别名,类似于文件系统中的相对路径,它是与目录树结构无关的部分,如“uid=tom”或“cn= Thomas Johansson”
o:organization(组织-公司)ou:organization unit(组织单元-部门)c:countryName(国家)dc:domainComponent(域名)sn:suer name(真实名称)cn:common name(常用名称)
搭建LDAP服务器的前提条件
准备:
系统:Centos7.7.1908
LDAP:OpenLDAP 2.4.44
关闭防火墙和SELinux(这里都是临时关闭,避免因此出现访问问题)
systemctl stop firewalldsetenforce 0安装 OpenLdap
1、安装OPenLDAP与相关安装包
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel
2、安装完成后直接启动服务并将服务设置为自动启动。运行如下命令
systemctl start slapdsystemctl enable slapdsystemctl status slapd //查看下服务有没有启动
启动完之后检查slapd服务和端口运行
netstat -antup | grep -i 389
3、创建LDAP的根密码
此密码用于整个安装过程,为LADP的管理员根密码,使用slappasswd 生成密码
输入slappasswd后会提示输入密码与确认密码,系统会输出一串SSHA加密后的字符串,拷贝出来放到notepad++中备用。
我设置的密码是admin@admin,加密后的字符串为
{SSHA}rks7qNcDYskN42KmLMSK4UIDe8GMsSwb
slappasswd
4、配置LDAP服务
◆ OPenLdap 2.4不再推荐直接使用配置文件方式,并且极容易出错,修改的所有过程,均使用ldapmodify完成
ls /etc/openldap/slapd.d/cn=config
修改olcDatabase\=\{2\}hdb.ldif文件,修改的字段如下:
olcSuffix :用于保存域信息,更新为自己的域,这里我填的qiang
olcRootDN :根的DN(唯一识别名),根的区别名,它用于根管理员在此节点下做所有的管理
olcRootPW :LDAP管理员的根密码,刚才执行slappasswd命令生成的加密内容就放在这
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
接下来在任意目录下创建 db.ldif文件,但是不能再/etc/openldap/slapd.d/cn=config目录创建。我在root目录下创建的。
◆ 修改db.ldif文件
vim db.ldif
标记黄色的部分改成自己的内容,其他内容可以直接复制
dn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcSuffixolcSuffix: dc=qiang,dc=comdn: olcDatabase={2}hdb,cn=configchangetype: modifyreplace: olcRootDNolcRootDN: cn=Manager,dc=qiang,dc=comdn: olcDatabase={2}hdb,cn=configchangetype: modifyadd: olcRootPWolcRootPW: {SSHA}rks7qNcDYskN42KmLMSK4UIDe8GMsSwb
ldapmodify命令在运行环境中直接修改配置文件,并且不需要重启就生效,具体请看ldapmodify官方文档。
在db.ldif目录下运行命令
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif
要注意的是有三个modifying entry才算全部更新成功。
◆ 修改monitor文件
与修改db.ldif文件类似。在刚刚的db.ldif目录下运行
vim monitor.ldif
在此文件中输入以下内容
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=qiang,dc=com" read by * none
// 修改好后,运行如下命令,不报错就行ldapmodify -Y EXTERNAL -H ldapi:/// -f monitor.ldif
◆ 创建一个基础库,用于保存数据。安装ldap后会有一个example配置,我们复制一份配置文件并赋予它所有权限
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIGchown ldap:ldap /var/lib/ldap/*
完成配置后就可以向数据库中增加schemas,需要增加的有:cosine , nis,inetorgperson
schemas是什么,schemas是数据库表的定义文件,相当于关系数据库中的表的定义。还是有点区别。
◆ 执行ldapadd命令增加,命令如下
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldifldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldifldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
◆ 完成以后创建base.ldif,在库中增加自己管理域下的内容,运行命令
vim base.ldif
在文件中输入以下内容,黄色区域修改自己的,其他直接复制
dn: dc=qiang,dc=comdc: qiangobjectClass: topobjectClass: domaindn: cn=Manager ,dc=qiang,dc=comobjectClass: organizationalRolecn: Managerdescription: LDAP Managerdn: ou=People,dc=qiang,dc=comobjectClass: organizationalUnitou: Peopledn: ou=Group,dc=qiang,dc=comobjectClass: organizationalUnitou: Group
// 将此数据保存到库中,运行命令// 此命令会提示输入ldap的密码,输入的密码与第3步创建的密码一致,我输入的:admin@adminldapadd -x -W -D "cn=Manager,dc=qiang,dc=com" -f base.ldif
到这里基本配置完成
使用工具连接LDAP
我这里使用的是ldapadmin工具连接的LDAP数据库,都可以正常连接。
标签: #ldap服务器 #ldap服务器提供什么服务