OpenLDAP配置web管理界面PhpLDAPAdmin服务-centos9stream

之前已经发了一篇关于centos9下面配置openldap多主高可用集群的内容,不会配置ldap集群的请参考:服务器集群配置LDAP统一认证高可用集群(配置tsl安全链接)-centos9stream-openldap2.6.2-CSDN博客

这里跟着前篇文章详细说明如何配置openldap的web管理界面PhpLDAPAdmin;

1、安装http及php、phpldapadmin

###安装必要的包,一般不用特别关注什么版本,直接安装就行,可以在所有server节点安装
###默认这个包应该在epel源,没有配置的可以使用  yum install epel-release -y 安装,不用多说了吧。
###已经安装了httpd或apache的就不用重复安装了。
yum install httpd php phpldapadmin -y

2、配置httpd

###配置httpd服务ip和端口,如果直接使用默认端口的不用改了,如果有多个端口的注意不要与现有http服务冲突
cd /etc/httpd/conf.d/

##这里配置phpldapadmin的参数,注意查看一下php的路径,默认配置了phpldapadmin和ldapadmin两个根路径的别名,也就是说大家可以用   http://192.168.1.11/phpldapadmin或者http://192.168.1.11/ldapadmin访问web服务即可出现登陆界面
##下方Directory模块是配置目录权限,当然这里还可以配置用户访问的服务端口和ip,不会配置的大家尽量挑选一个没有其他服务的主机来配置这个服务吧。具体权限和安全问题就不在这里说了。欢迎大家关注我博客里的其他文章,这里主要是配置了允许访问的ip,allow from
vim phpldapadmin.conf
#
#  Web-based tool for managing LDAP servers
#
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs

<Directory /usr/share/phpldapadmin/htdocs>
  <IfModule mod_authz_core.c>
    # Apache 2.4
    Require local
    Require ip 110.110.11.0/24
    Require ip 198.18.30.0/24
  </IfModule>
  <IfModule !mod_authz_core.c>
    # Apache 2.2
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from 110.110.11.0/24
    Allow from 198.18.30.13
  </IfModule>
</Directory>

3、配置phpldapadmin

###配置根域加上密码的方式登陆,以下只显示需要修改的地方,大家执行查询修改
vim /etc/phpldapadmin/config.php

#不同版本的文件可能不一样,我这里在453行;
$servers->setValue('login','attr','dn');
// $servers->setValue('login','attr','uid');  ##这里注释掉,选择dn方式登陆,当然改成cn也行,当然可以使用uid方式登陆,但前提是你配置了对应uid的操作和访问权限。

#525行左右可配置是否可以让匿名用户登录,这个其实在openldap中本身可以进行设置,大家可以选配,需要配置的话去掉前面的注释符号"//"即可。
// $servers->setValue('login','anon_bind',true);


###另外,还可以配置指定可登录的根域,tls安全链接的安全证书等,基本都是一些安全方面的配置,这里不一一说明了,自己可以修改配置然后访问测试,这个不影响已经配置好的ldap服务。

// $servers->setValue('login','bind_id','');
#  $servers->setValue('login','bind_id','cn=Manager,dc=example,dc=com');

/* Your LDAP password. If you specified an empty bind_id above, this MUST also
   be blank. */
// $servers->setValue('login','bind_pass','');
#  $servers->setValue('login','bind_pass','secret');

/* Use TLS (Transport Layer Security) to connect to the LDAP server. */
// $servers->setValue('server','tls',false);

/* TLS Certificate Authority file (overrides ldap.conf, PHP 7.1+) */
// $servers->setValue('server','tls_cacert',null);
#  $servers->setValue('server','tls_cacert','/etc/openldap/certs/ca.crt');

/* TLS Certificate Authority hashed directory (overrides ldap.conf, PHP 7.1+) */
// $servers->setValue('server','tls_cacertdir',null);
#  $servers->setValue('server','tls_cacertdir','/etc/openldap/certs');

/* TLS Client Certificate file (PHP 7.1+) */
// $servers->setValue('server','tls_cert',null);
#  $servers->setValue('server','tls_cert','/etc/pki/tls/certs/ldap_user.crt');

4、重启httpd服务

直接systemctl restart httpd即可。

systemctl restart httpd

5、界面操作

在可访问到服务的计算机上使用浏览器打开http://192.168.1.11/phpldapadmin

点击左侧的login,显示登录界面。

在登录界面直接输入管理根域和在ldap中设置的rootPW密码

如果已经设置禁止匿名用户登陆的话这里使用anonymous登陆应该是访问不了了

登陆成功后,左侧web界面应该就显示自己登陆的当前域下的情况了,可以点击+号展开查看已有账户。

6、导入功能import测试

这里测试一下创建用户组,当然其他配置的ldif文件或者配置内容都可以在这里导入进行创建或配置,条件是当前登陆的管理域账户有权限操作写入。

ldap可以批量导入如账户,直接点击左侧的import按钮会打开账户导入界面,可以直接选择ldif文件或者将编写号的ldif内容直接粘贴到对话框中,任选其一,然后点击Proceed按钮

这里直接粘贴编写内容测试一下

如果出现以下错误,这里很可能是因为当前的服务节点不是主节点,或者当前节点处于同步状态,所以应切换至主节点去操作

大家可以点击左侧的monitor按钮查看ldap集群的连接情况,这里面127.0.0.1一般就是当前phpldapadmin服务所在的本地server了, 其他ip表示是其他ldapserver的ip。

当然phpldapadmin可以设置连接其他server,但前提是有对应的远程操作权限,大约在/etc/phpldapadmin/config.php的第329行:

我一般不会改这里,最好是在每个server上都配置各自的phpldapamin服务,因为如果server的ldap服务down掉基本上其他服务可能都down了,所以还不如每个都独立后基于这些web服务再用haproxy配置高可用。

如果是可操作的正常节点,这里应该就导入成功了,刷新一下左侧的ou=Group即可查看到自己创建的用户组

7、web界面创建用户

前面使用导入功能可以直接操作ldif文件内容进行创建或导入,创建用户同样可以直接使用import功能,但这里主要展示交互界面通过web界面添加用户,

首先点击ou=people或者自己准备的其他域,或者先创建一个ou,再在对应ou下创建用户。我这里使用migrationtools的方式导入的系统账户,所以默认就有了ou=Group和ou=People两个ou,下面我们在ou=People下创建用户

首先:点击左侧dc下的ou=Peopel组,摊开下拉菜单,点击Create new entry here 按钮,或者点击左侧的ou=People后再点击右侧的Create a child entry按钮

弹出下面界面,选择Generic Ucer Account

弹出一下对话框,

对话框中,firstname,lastname以及commonname都可以按照自己的需求填写就行,

UserID这里要注意了,不要与现有系统的用户名重复,

输入密码的时候建议大家使用ldappasswd生成加密字符串填写,当然也可以用默认的clear也就是明文的方式填写, 如果使用加密字符串需要点击下拉箭头选择加密方式。

uid这里不让随便修改了,应该是防止重复,如果觉得不方便大家就是用前面的ldif文件导入方式创建吧,如果出现重复会给予警告, 当然我们也可以在openldap中设置起始uid的编号

GidNumber这里需要选择已有的用户组id,如果没有则需要先创建用户组再来创建用户。

home directory就是用户登陆后的默认文件夹,这里一般是/home/userid,可以自行指定,如果配置好ldap的登陆后,一般会自动创建这里指定的文件夹,如果发现登陆时没有对应文件夹应在系统中创建对应的文件夹。

login shell就是默认登陆时启动的shell服务,一般都是bash了。

然后再点击Create Object按钮

弹出再次确认的窗口,这里会让用户再确认一遍用户信息,确认后点击Commit提交创建,点击Cancel就取消掉了。

提交后会默认进入当前已创建用户的update界面,不想更新的话就可以忽略了,现在可以在系统中使用 id $uerid的命令查看用户id和用户组信息,也可以直接使用这里的user id 和password明文密码进行登陆了:

结束语

phpldapadmin的web界面还可以进行导出备份等操作,页面也可以进行用户、用户组、用户组织以及组映射的创建和维护操作,这里大家都可以自己进行测试,如果错误直接操作删除或者重新配置更新即可。

当然最大的好处还是在与ldap账户的统一管理。

后面大家有什么问题欢迎大家一起讨论

相关推荐
长弓聊编程18 分钟前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
cherub.25 分钟前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++
梅见十柒1 小时前
wsl2中kali linux下的docker使用教程(教程总结)
linux·经验分享·docker·云原生
Koi慢热1 小时前
路由基础(全)
linux·网络·网络协议·安全
传而习乎1 小时前
Linux:CentOS 7 解压 7zip 压缩的文件
linux·运维·centos
soulteary1 小时前
突破内存限制:Mac Mini M2 服务器化实践指南
运维·服务器·redis·macos·arm·pika
我们的五年1 小时前
【Linux课程学习】:进程程序替换,execl,execv,execlp,execvp,execve,execle,execvpe函数
linux·c++·学习
IT果果日记2 小时前
ubuntu 安装 conda
linux·ubuntu·conda
Python私教2 小时前
ubuntu搭建k8s环境详细教程
linux·ubuntu·kubernetes
羑悻的小杀马特2 小时前
环境变量简介
linux