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

相关推荐
海盗12342 分钟前
.NET编码规范03-C#命名规范大全
linux·服务器·.net
WZF-Sang4 分钟前
TCP和UDP协议
linux·服务器·网络·c++·学习·tcp/ip·udp
做个文艺程序员10 分钟前
Linux第11篇:存储管理——磁盘分区、LVM 与文件系统
linux·运维·服务器
懂AI的老郑10 分钟前
工业检测场景下智能体的应用:从自动化到智能化
运维·自动化
天空'之城20 分钟前
Linux 系统编程 14:Reactor 反应堆模式
linux·开发语言·网络编程·reactor 反应堆模式
法号:行颠30 分钟前
《Linux内核源码全景解读:从上电到用户态》之 目录
linux
运维大师32 分钟前
【云原生与DevOps】08-多云容灾架构设计:跨Region自动切换实践
运维·云原生·devops
一氧化二氢.h41 分钟前
AI大模型批量自动化评测脚本
运维·人工智能·自动化
mounter6253 小时前
深入解析 RDMA 中的 Address Handler (AH) 缓存:AWS EFA 驱动的硬件演进与软件复用艺术
linux·kernel·rdma·hashtable·hash table·address handle
jarreyer9 小时前
【AI Agent】大模型自动化载体
运维·自动化