CentOS 7部署OpenLDAP+phpLDAPadmin实现统一认证

CentOS 7部署OpenLDAP+phpLDAPadmin实现统一认证


安装OpenLDAP

yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools


安装后查看ldap版本信息
slapd -VV


设置OpenLDAP的管理员密码
slappasswd -s ******

加密后的字段保存下来,后续在配置文件中会用到


修改olcDatabase={2}hdb.ldif文件
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif

修改olcSuffix、olcRootDN这两行,cn 表示openldap管理员用户名

dc表示域名的部分,格式将完整的域名分成几部分,如域名是example.com,分为dc=example,dc=com

在最后一行添加olcRootPW+上一步生成的密码,olcRootPW表示OpenLDAP管理员的密码


修改olcDatabase={1}monitor.ldif文件
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif

修改此处的cn,dc为自己设置的cn,dc


验证配置
slaptest -u

checksum忽略即可,testing succeeded即为成功


启动openldap

复制代码
systemctl enable slapd
systemctl start slapd
systemctl status slapd

OpenLDAP默认监听的端口是389


配置OpenLDAP数据库

复制代码
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap -R /var/lib/ldap
chmod 700 -R /var/lib/ldap

导入Schema

schema文件位于/etc/openldap/schema/下

schema控制着条目拥有哪些对象类和属性,可自行根据需求导入,通常导入前3即可

复制代码
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

验证

ll /etc/openldap/schema/


配置基础数据库

修改migrate_common.ph文件

migrate_common.ph文件主要是用于生成ldif文件使用
vim /usr/share/migrationtools/migrate_common.ph

复制代码
$DEFAULT_MAIL_DOMAIN = "test.com";
$DEFAULT_BASE = "dc=test,dc=com";
$EXTENDED_SCHEMA = 1;

配置openldap基础的数据库
mkdir /etc/openldap/onlineldif -p

vim /etc/openldap/onlineldif/base.ldif

复制代码
dn: dc=test,dc=com
o: test com
dc: test
objectClass: top
objectClass: dcObject
objectclass: organization

dn: cn=Manager,dc=test,dc=com
cn: Manager
objectClass: organizationalRole
description: Directory Manager

dn: ou=People,dc=test,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit

dn: ou=Group,dc=test,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit

导入基础库

ldapadd -x -D "cn=Manager,dc=test,dc=com" -f ./base.ldif -w "前面slappasswd设置的密码"

验证
ldapsearch -x -b 'dc=test,dc=com' '(objectClass=*)'|grep Success


安装phpldapadmin

yum -y install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml phpldapadmin

vim /etc/httpd/conf.d/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 10.10.xx 指定可访问的ip段
    Require all granted
  </IfModule>
  <IfModule !mod_authz_core.c>
    # Apache 2.2
    Order Deny,Allow
    Deny from all
    Allow from 127.0.0.1
    Allow from ::1
  </IfModule>
</Directory>

配置phpldapadmin登录方式

vim /etc/phpldapadmin/config.php

cn为使用用户名登陆

460行,关闭匿名登录
$servers->setValue('login','anon_bind',false);

519行,保证用户属性的唯一性
$servers->setValue('unique','attrs',array('mail','uid','uidNumber','cn','sn'));


设置开机自启并启动

复制代码
systemctl restart httpd
systemctl enable httpd

使用phpldapadmin

http://服务器地址/phpldapadmin/


cn:Manager

密码:设定的管理员密码

账户管理方式:Group下创建组,People下创建账户。不同平台创建不同的组,将账户添加到相应的组,一个账户可有多个组,使一个账户和密码可登陆多个平台。


点击"创建新条目",创建基础域

提交


在Test下新建一个组





新建用户





用zabbix测试LDAP认证




配置用户

用户名称必须是LDAP中已经存在的用户

密码随便写,登陆用的是ldap中的密码

配置群组


验证

登录成功,实现统一认证


参考:

https://blog.csdn.net/a371933136/article/details/111640621?fromshare=blogdetail\&sharetype=blogdetail\&sharerId=111640621\&sharerefer=PC\&sharesource=Wangjiachenga\&sharefrom=from_link

https://cloud.tencent.com/developer/article/2059251

https://cloud.tencent.com/developer/article/1857749?policyId=1003

https://cloud.tencent.com/developer/article/1349446

https://www.cnblogs.com/ywdba668/p/18533333

https://blog.csdn.net/benet1006/article/details/84756674

相关推荐
律宏阔5 小时前
WSL Docker 端口明明空闲,但就是绑不上端口
linux·windows
律宏阔5 小时前
WSL 突然断网,无法 ping 内网或外网
linux·windows
穷人小水滴5 小时前
用容器编译 VirtualBox 虚拟机软件 (ArchLinux, podman)
linux·容器·virtualbox
乱码三千6 小时前
如何优雅地直连无公网 IP 的远程 GPU 服务器
linux·人工智能·程序员
yunwei376 小时前
使用 eBPF 跟踪 Nginx 请求
linux·后端·性能优化
yunwei376 小时前
使用 eBPF 跟踪 MySQL 查询
linux·后端·性能优化
yunwei376 小时前
eBPF 示例教程:使用 XDP 捕获 TCP 信息
linux·后端·性能优化
judezh6 小时前
api 容器一直 unhealthy?我把一个 Agent 运行时的健康检查逐条拆了,查出四个问题
运维·docker
GeW6 小时前
制造业高端化,为什么必须重估Linux和数据库?
linux
GeW6 小时前
工业场景中的Linux与数据库选型:高端化转型的技术底座
linux