centos7安装LDAP以及phpldapadmin管理界面

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 中设置的管理员账户密码进行登录。

posted @ 2023-05-03 16:50  pollosD  阅读(1172)  评论(0编辑  收藏  举报