大家好,欢迎来到IT知识分享网。
LDAP简介
LDAP (Lightweight Directory Access Protocol),轻型目录访问协议,是一种应用层协议,用于访问和维护分布式目录信息服务。
LDAP 最初设计用于 X.500 目录服务,但与 X.500 相比,LDAP 更为轻量级和灵活,因此更受欢迎。LDAP 最常用于组织内部的 IT 环境中,典型的应用场景是域名服务(DNS)和认证服务(如用户身份验证)等。
LDAP 通过对目录服务进行组织,使之以类似于文件系统的形式呈现。LDAP 目录服务可以包含各种类型的信息,例如组织机构、人员、设备和应用程序等。这些信息可以被组织、管理、搜索、访问和修改。
LDAP 的访问管理方式是基于分层级结构的,并且可以提供安全的身份验证和访问控制。此外,LDAP 还可以集成到其他应用程序中,以便它们可以使用 LDAP 目录服务来管理用户和组织的信息。
尽管 LDAP 最初是为 X.500 目录服务而设计的,但它现在被广泛用于互联网服务中。LDAP 已经成为一个非常重要的基础架构服务。
LDAP安装
yum安装相关包
yum install -y openldap openldap-clients openldap-servers
安装完成后修改配置文件
# 复制一份配置文件模板
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# 配置文件授权给用户ldap,第一步安装会自动创建用户
chown -R ldap. /var/lib/ldap/DB_CONFIG
启动服务,查看运行状态
# 启动服务
systemctl start slapd
# 设置开机自启
systemctl enable slapd
# 查看状态,正常启动则ok
systemctl status slap
查看安装的版本
slapd -V
设置密码
slappasswd -s 123456
# 设置完成会输出一串SSHA,保存好下面配置要用到
{SSHA}tHC7tdNCC34GC9Mc9LDLUUVO15qEUcGZ
新建密码配置文件 从openldap2.4.23版本开始,所有配置都保存在/etc/openldap/slapd.d目录下的cn=config文件夹内,不再使用slapd.conf作为配置文件。配置文件的后缀为 ldif,且每个配置文件都是通过命令自动生成的,任意打开一个配置文件,在开头都会有一行注释,说明此为自动生成的文件,请勿编辑,使用ldapmodify命令进行修改
# 直接使用vim新建
vim changepwd.ldif
文件具体内容如下
# 指定为 cn=config/olcDatabase={0}config 文件。你到/etc/openldap/slapd.d/目录下就能找到此文件
dn: olcDatabase={0}config,cn=config
# 指定类型为修改
changetype: modify
# 表示添加 olcRootPW 配置项
add: olcRootPW
# 此处配置为上面需要保存的那串配置
olcRootPW: {SSHA}tHC7tdNCC34GC9Mc9LDLUUVO15qEUcGZ
执行新增的配置文件
ldapadd -Y EXTERNAL -H ldapi:/// -f changepwd.ldif
# 查看配置文件是否成功的把密码加入进去了
cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif
导入ldap基本都schema文件,共计12个
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/collective.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/corba.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/duaconf.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/dyngroup.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/java.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/misc.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/openldap.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/pmi.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/ppolicy.ldif
新增ldap域名配置文件
# 同样使用vim新建
vim changedomain.ldif
文件具体内容如下,这里假定我的域名设置为test.com,管理员用户为admin
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=admin,dc=test,dc=com" read by * none
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=test,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=test,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}tHC7tdNCC34GC9Mc9LDLUUVO15qEUcGZ //上一步生成的密码
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=test,dc=com" write byanonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=test,dc=com" write by * read
执行配置文件
ldapmodify -Y EXTERNAL -H ldapi:/// -f changedomain.ldif
# 此步如果报错类似ldapmodify: wrong attributeType at line 5, entry "olcDatabase={1}monitor,cn=config",原因是空格问题,解决方法为找到报错的位置,在vim 文件视图下,把空格删除,用vim的大写O进行换行处理
执行成功后输出如下
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}monitor,cn=config"
modifying entry "olcDatabase={2}hdb,cn=config"
modifying entry "olcDatabase={2}hdb,cn=config"
modifying entry "olcDatabase={2}hdb,cn=config"
modifying entry "olcDatabase={2}hdb,cn=config"
再新增三个配置文件,分别如下
cat add-memberof.ldif
###############################################
dn: cn=module{0},cn=config
cn: modulle{0}
objectClass: olcModuleList
objectclass: top
olcModuleload: memberof.la
olcModulePath: /usr/lib64/openldap
###############################################
cat refint1.ldif
################################################
dn: cn=module{0},cn=config
add: olcmoduleload
olcmoduleload: refint
################################################
cat refint2.ldif
##################################################
dn: olcOverlay=refint,olcDatabase={2}hdb,cn=config
objectClass: olcConfig
objectClass: olcOverlayConfig
objectClass: olcRefintConfig
objectClass: top
olcOverlay: refint
olcRefintAttribute: memberof uniqueMember manager owner
##################################################
然后依次执行三个文件
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f add-memberof.ldif
ldapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif
ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif
接下来创建组织,还是以配置文件的形式
cat base.ldif
######################################################
dn: dc=test,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: test Company
dc: test
dn: cn=admin,dc=test,dc=com
objectClass: organizationalRole
cn: admin
dn: ou=People,dc=test,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=test,dc=com
objectClass: organizationalRole
cn: Group
######################################################
执行此配置文件
ldapadd -x -D cn=admin,dc=test,dc=com -W -f base.ldif
输出如下所示表示安装成功
Enter LDAP Password:
adding new entry "dc=test,dc=com"
adding new entry "cn=admin,dc=test,dc=com"
adding new entry "ou=People,dc=test,dc=com"
adding new entry "ou=Group,dc=test,dc=com"
phpldapadmin安装
首先配置好epel源,centos7默认的源基本上没法用,所有需要修改epel源为国内,本次采用阿里源,先简单解释一下yum源和epel源。
yum
是 Red Hat 及其相关的 Linux 发行版中的包管理器,它允许用户从远程服务器下载和安装软件包。在 yum
的配置文件中,我们一般会用到两个源:主要的 yum
源和 EPEL 源。
主要的 yum
源包含了大量的软件包,但是其中有一些受版权保护的软件不能包含在其中。为了使用户能够方便地安装这些软件包,需要使用 EPEL 源。
EPEL 是 Extra Packages for Enterprise Linux 的缩写,它提供了一些额外的 RPM 软件包,包括但不限于 Python、MySQL 等软件包。这些软件包并未包含在原始的 RHEL 或 CentOS 系统中,但是它们可以使用 EPEL 源进行安装。
yum源的配置不再赘述,主要说一下epel源的配置
首先安装epel源
yum install -y epel-release
安装完成后,在/etc/yum.repos.d/目录下会多出来两个文件,这两个文件就是EPEL源的配置文件,如下:
epel.repo epel-testing.repo
查看epel.repo文件中的内容就可以发现其中的地址指向的是:https://mirrors.fedoraproject.org/,而epel-testing.repo这个文件中的软件源的地址也是指向的是:https://mirrors.fedoraproject.org/。我们将其更改为国内的EPEL源。
进入目录
cd /etc/yum.repos.d/
下载阿里云epel源
wget http:``//mirrors.aliyun.com/repo/epel-7.repo
备份默认源文件
cp -p epel.repo epel.repo.bak
cp -p epel-testing.repo epel-testing.repo.bak
删除epel-testing.repo源文件
rm -rf epel-testing.repo
将epel-7.repo中的内容覆盖写入到原来的epel.repo文件中
cp -p epel-7.repo epel.repo
删除epel-7.repo文件
rm -rf epel-7.repo
重新生成缓存
yum clean all
yum makecache
开始安装phpldapadmin
yum install -y phpldapadmin
修改 phpldapadmin 的配置文件 /etc/phpldapadmin/config.php
,将以下行的注释去掉并修改成你实际的 LDAP 服务器地址和管理员账户密码:
$servers->setValue('server','host','your-server-name-or-ip-address');
$servers->setValue('server','port',389);
$servers->setValue('server','base',array('dc=test,dc=com'));
$servers->setValue('login','bind_id','cn=admin,dc=test,dc=com');
安装完成后修改配置文件允许外网访问
vim /etc/httpd/conf.d/phpldapadmin.conf
# 具体修改项为去掉Require all granted这里的所有注释,允许所有访问
启动 Apache 服务器:
systemctl start httpd
启动 phpldapadmin 服务,并设置自动启动:
systemctl start phpldapadmin
ystemctl enable phpldapadmin
打开 浏览器中输入 http://your-server-name-or-ip-address/phpldapadmin
访问 phpldapadmin 了。使用之前在 config.php
中设置的管理员账户密码进行登录。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/34195.html