Centos7.8 安装 openldap+phpldapadmin 最详细步骤

本文借助很多网上知识 做一个汇总,并且自己手动一步步安装,很多openldap安装都是0几年的安装方式,下面给大家演示我一步步安装的详细过程,CentOS7系统安装就不做演示了,直接开肝

这里要说明一下(重要):复制多行命令的时候注意空格换行的问题,如果直接复制命令到终端执行会失败,所以建议大家把命令复制到本地text文本,并且删除空格换行,后面会重点圈出来,防止大家踩坑

一、准备工作

系统:centos 7.8 64位 (这里只要是centos7 都可以安装的)

setp 1:安装并开启CentOS7,登录root用户

这里切换root用户登录管理员密码就ok

# 切换root用户
su root

setp 2: 配置网络网卡,保持网络畅通

切换到network目录下,编辑ifcfg文件(具体名字可能因系统不同而各异,如eth0、eth33...),对该文件进行配置网卡信息

# 进入network网络配置目录
cd /etc/sysconfig/network-scripts/

# 编辑文件
vim ifcfg-ens33

i键进入编辑输入模式,在文件末尾加上(根据需要添加or变更,非必须

# 指定DNS服务器的IP地址,使其可正常解析域名,从而访问外网
DNS1=8.8.8.8
DNS2=4.2.2.2

找到ONBOOT 把值改为yes,ESC键退出编辑模式,然后以命令 :wq 保存并退出该网络配置文件

ping一下是否联通外网

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第1张图片

二、安装openldap包

# yum 安装相关包
yum install -y openldap openldap-clients openldap-servers
 
# 复制一个默认配置到指定目录下,并授权,这一步一定要做,然后再启动服务,不然生产密码时会报错
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
# 授权给ldap用户,此用户yum安装时便会自动创建
chown -R ldap. /var/lib/ldap/DB_CONFIG
 
# 启动服务,先启动服务,配置后面再进行修改
systemctl start slapd
systemctl enable slapd
 
# 查看状态,正常启动则ok
systemctl status slapd

 

三、修改openldap配置文件

到这步的话,需要细心仔细的安装,,从openldap2.4.23版本开始,所有配置都保存在/etc/openldap/slapd.d目录下的cn=config文件夹内,不再使用slapd.conf作为配置文件。配置文件的后缀为 ldif,且每个配置文件都是通过命令自动生成的,任意打开一个配置文件,在开头都会有一行注释,说明此为自动生成的文件,请勿编辑,使用ldapmodify命令进行修改

# AUTO-GENERATED FILE - DO NOT EDIT!! Use ldapmodify

setp 1:生成管理员ldap登录密码 保存后面需要使用

# 生成密码 保存后面配置域的时候需要填写,管理员登录密码
slappasswd -s 123456

{SSHA}PS3T8Lr6IL7hepAhK3PYnKdtU8qe7Jci

setp 2:  新增修改密码配置文件

由于新版的openldap需要通过命令的方式去动态修改ldap配置,所以这里不要在/etc/openldap/slapd.d/目录下创建类似的ldif文件,直接新建一个ldif文件(文件名随意)然后用命令去配置就ok了,如下:

# 先切换目录
cd ~

# 然后新建一个ldif文件并编辑
vim changepwd.ldif

# 文件内容如下 配置完内容ESC :wq保存
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}PS3T8Lr6IL7hepAhK3PYnKdtU8qe7Jci

# 然后输入以下命令配置刚刚新增的文件changepwd.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f changepwd.ldif

出现下图,说明成功:

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第2张图片

可以看到新增了一个entry,这里输入以下命令可以查看我配置文件新增了一个olcRootPW项

# 查看配置文件是否成功的把密码加入进去了

cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{0\}config.ldif

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第3张图片

setp 3: 导入基本的ldap的schema文件

注意这里要依次执行下面的所有命令,core.ldif是默认加载项,不用导入

# 共计12个schema文件需要导入
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

结果图如下:

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第4张图片

可以看到状态都是SASL SSF:0 且都是adding new entry 表示成功

setp 4: 新增文件配置内部域名

此步骤很重要,举例我的管理员用户名为admin dc=ihup 表示公司简称 dc=org 表示域名,根据自己需求进行更改

# 新增编辑文件
vim changedomain.ldif

# 把以下内容都写入进去ESC :wq并保存
# 特别注意:这里可以看到每一段都有空行分割,在编辑的时候dn节点前面不能出现空格否则后面配置出错
# 下面有一段{SSHA}密码是前面生成的加密密码123456
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=ihup,dc=org" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=ihup,dc=org

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=ihup,dc=org

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}PS3T8Lr6IL7hepAhK3PYnKdtU8qe7Jci

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess 
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=ihup,dc=org" write byanonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=admin,dc=ihup,dc=org" write by * read

配置如图:

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第5张图片

编辑好 确保换行没有任何空格就保存,然后配置

# 上面配置文件执行一下

ldapmodify -Y EXTERNAL -H ldapi:/// -f changedomain.ldif

出现下图,说明配置成功,要确保插入了5条数据

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第6张图片

setp 5: 启用memberof.ldif功能,这里需要添加三个文件

到此步骤就完成了一大半了,喝杯咖啡or红牛继续配置把,奥里给!

第一个文件 add-memberof.ldif

# 第一个文件add-memberof.ldif (文件名可自定义 前面说了)
vim add-memberof.ldif

# 写入以下内容并保存
dn: cn=module{0},cn=config
cn: modulle{0}
objectClass: olcModuleList
objectclass: top
olcModuleload: memberof.la
olcModulePath: /usr/lib64/openldap

第二个文件 refint1.ldif

# 第二个文件refint1.ldif文件
vim refint1.ldif

# 写入以下内容并保存
dn: cn=module{0},cn=config
add: olcmoduleload
olcmoduleload: refint

第三个文件 refint2.ldif

# 第三个文件refint2.ldif文件
vim 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

setp 6: 最后一步创建一个组织和管理员

最后一步创建一个组织,并在其组织下创建一个admin角色(该组织角色内的用户具有管理整个LDAP的权限)

# 新增一个配置文件
vim base.ldif 

# 写入以下内容(cn=admin,dc=ihup,dc=org 根据自己需求更改)
dn: dc=ihup,dc=org
objectClass: top
objectClass: dcObject
objectClass: organization
o: Ihup Company
dc: ihup

dn: cn=admin,dc=ihup,dc=org
objectClass: organizationalRole
cn: admin

dn: ou=People,dc=ihup,dc=org
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=ihup,dc=org
objectClass: organizationalRole
cn: Group

创建成功如下图,通过以上的所有步骤,就设置好了一个ldap目录树,其中准dc=ihup,dc=org是该树 的根节点,其下有一个管理域cn=admin,dc=ihup,dc=org,和两个组织单元 ou=People,dc=ihup,dc=org和ou=Group,dc=ihup,dc=org

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第7张图片

四、安装phpldapadmin LDAP管理UI页面

这步安装根据自己需求来,也可以在你本地安装ldap的客户端来管理ldap就好了,但是我个人觉得phpldapadmin页面还挺方便的

setp 1: 安装phpldapadmin包

# yum安装phpldapadmin
yum install -y phpldapadmin

如果出现没有找到可用的软件包,就说明yum源有问题,这时候就需要更新yum源

# 针对出现没有可用的安装包的解决办法,更新yum源
yum localinstall http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

然后再次重新执行yum install -y phpldapadmin 进行安装

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第8张图片

安装完成!

setp 2: 修改配置文件

这里只修改了2.4版本,如果不知道apache的版本,使用 以下命令进行查询

# 查询apache 版本
rpm -qa|grep httpd

修改配置文件 这里是放开外网访问,修改为 Require all granted

# 修改phpldapadmin配置文件 放开外部端口访问
vim /etc/httpd/conf.d/phpldapadmin.conf

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第9张图片

修改uid登录方式和关闭匿名登录和用户属性的唯一性

# 修改文件
vim /etc/phpldapadmin/config.php


# 找到找到398行,把这里的uid改为cn
$servers->setValue('login','attr','cn');

# 找到460行,把true改为false 关闭匿名登录
$servers->setValue('login','anon_bind',false);

# 找到519行,设置用户属性的唯一性,这里我将cn sn给添加上
$servers->setValue('unique','attrs',array('mail','uid','uidNumber','cn','sn'))

如下图

找到398行,把这里的uid改为cn

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第10张图片

找到460行,把true改为false 关闭匿名登录

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第11张图片

找到519行,设置用户属性的唯一性,这里我将cn sn给添加上

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第12张图片

最后重启服务,访问页面

# 重启Apache服务
systemctl start httpd  
 
systemctl enable httpd

Centos7.8 安装 openldap+phpldapadmin 最详细步骤_第13张图片

phpldapadmin官方文档:

http://phpldapadmin.sourceforge.net/wiki/index.php/Main_Page

到此所有安装已完成,后续phpldapadmin,可参考官方文档配置,有任何安装问题可以私聊我,也可在评论区留言,收到后我会及时回复大家,谢谢大家支持!

你可能感兴趣的:(linux,LDAP,统一身份认证,centos,LDAP)