欢迎大家来到IT世界,在知识的湖畔探索吧!
openldap + phpldapadmin + nginx 搭建部署教程(完整版)
1.什么是LDAP
DAP特点
- LDAP的结构用树来表示,而不是用表格。正因为这样,就不能用SQL语句了
- LDAP可以很快地得到查询结果,不过在写方面,就慢得多
- LDAP提供了静态数据的快速查询方式:Client/server模型,Server 用于存储数,Client提供操作目录信息树的工具,这些工具可以将数据库的内容以文本格式(LDAP 数据交换格式,LDIF)呈现在您的面前
- LDAP是一种开放Internet标准,LDAP协议是跨平台的的Interent协议它是基于X.500标准的,与X.500不同,LDAP支持TCP/IP(即可以分布式部署)
LDAP中提供三种身份认证机制
- 匿名。
- 基本认证:通过用户名和密码进行身份识别,又分为简单密码和MD5密码认证
- LDAP提供的在SSL和TLS安全通道基础上进行的身份认证,包括数字证书的认证。
LDAP端口号:389,636
389 明文端口
636 加密端口 (SSL/TLS)
LDAP目录数据结构
- 在LDAP中目录是按照树型结构组织——目录信息树(DIT) ,DIT是一个主要进行读操作的数据库
- DIT由条目(Entry)组成,条目相当于关系数据库中表的记录;条目是具有分辨名DN(Distinguished Name)的属性-值对(Attribute-value,简称AV)的集合
在目录树中怎么组织数据
cn=Fran Smith,ou=employees,dc=foobar,dc=com
- 在UNIX文件系统中,最顶层是根目录(root),LDAP目录也通常用ROOT做根,通常称为BaseDN
- 因为历史(X.500)的原因,LDAP目录用ou(Organization Unit)从逻辑上把数据分开来。ou 也是一种条目,容器条目
- ou下就是真正的用户条目
2.LDAP基本概念
- dn:每一个条目都有一个唯一的标识名(distinguished Name ,DN),如上图中一个 dn:”cn=baby,ou=marketing,ou=people,dc=mydomain,dc=org” 。通过DN的层次型语法结构,可以方便地表示出条目在LDAP树中的位置,通常用于检索。
- rdn:一般指dn逗号最左边的部分,如cn=baby。它与RootDN不同,RootDN通常与RootPW同时出现,特指管理LDAP中信息的最高权限用户。
- Base DN:LDAP目录树的最顶部就是根,也就是所谓的“Base DN”,如”dc=mydomain,dc=org”。
补充:
常见的两种DN设置:
dn格式就是“cn=Tom,ou=employees,dc=admin,dc=com”
|
基于cn(姓名) |
cn=test,ou=auth,dc=baike,dc=com ,最常见的cn是/etc/group转来的条目 |
|
基于uid(User ID) |
uid=test, ou=auth,dc=baike,dc=com 最常见的cn是/etc/group转来的条目 |
- 结构型(Structural):如person和organizationUnit;
- 辅助型(Auxiliary):如extensibeObject;
- 抽象型(Abstract):如top,抽象型的objectClass不能直接使用。
每个条目都可以有很多属性(Attribute),比如常见的人都有姓名、地址、电话等属性。每个属性都有名称及对应的值,属性值可以有单个、多个,比如你有多个邮箱。
3.安装配置
3.1.安装包说明
|
安装包名称 |
说明 |
|
openldap |
openldap服务端和客户端必须用的库文件 |
|
openldap-servers |
用于启动服务和设置. 包含单独的ldap后台守护程序 |
|
openldap-clients |
在LDAP服务端使用,用户增删改查的命令行环境 |
|
openldap-devel |
devel包,可选择进行安装 |
|
openldap-servers-sql |
支持sql模块,可进行选择性安装 |
|
migrationtools |
通过migrationtools实现OpenLDAP用户及用户组的添加,导入系统账户,可进行选择性安装 |
|
compat-openldap |
openldap兼容性库 |
{SSHA}aAwdh+JnUunpTSLlIw/zQG3t6/rXNI58
修改olcDatabase={2}hdb.ldif文件 将生成的加密字符写进配置文件
vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif
vim /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif
配置数据库
启动slapd
systemctl start slapd
导入Schema
添加用户和组
利用migrationtools 生成
vim /usr/share/migrationtools/migrate_common.ph
生成base.ldif 文件
欢迎大家来到IT世界,在知识的湖畔探索吧!
4.集成phpLDAPadmin web页面
4.1 基于HTTPweb服务器配置(nginx 直接看4.2)
配置http:
vim /etc/httpd/conf.d/phpldapadmin.conf
启动LDAP
登陆页面即可看到(图片是后面补的,创建用户见
https://blog.csdn.net/rockstics/article/details/):
4.2 基于nginx的web服务器配置
关于如何安装OpenLDAP与phpLDAPadmin在一个Nginx服务器,网上很难找到相关的配置,于是不得不FQ找到了下面的配置记录之,
浏览器访问
http://phpldapadmin.nausch.org
如果无法访问,请检查php 版本配置,番外篇中有踩坑说明
番外篇
- 完全启用LDAP
- 使用标准LDAP操作进行管理
- 将其配置数据存储在 LDIF数据库,通常位于/usr/local/etc/openldap/slapd.d目录中。
- 允许即时更改slapd的所有配置选项,通常无需重新启动服务器即可使更改生效。
slaptest -f /usr/local/etc/openldap/slapd.conf -F /usr/local/etc/openldap/slapd.d
测试您是否可以使用上面配置的默认rootdn和rootpw访问cn = config下的条目:
ldapsearch -x -D cn = config -w VerySecret -b cn = config
注意:尽管slapd-config 系统将其配置存储为(基于文本的)LDIF文件,但是您绝对不应直接编辑任何LDIF文件。配置更改应通过LDAP操作执行,例如ldapadd ,ldapdelete或ldapmodify
phpldapadmin nginx配置文件参考2
浏览器请求:
http://ldap01.linoxide.com/phpldapadmin
5.LDAP常用命令说明
ldapmodify -Y EXTERNAL -H ldapi:/// -f modify_syncrepl.ldif
ldapsearch -x -H
ldap://192.168.119.126:389 -b “dc=rockstics,dc=com” |grep uid=ldapuser* 匿名用户可用
ldapsearch -x -H
ldap://192.168.119.126:389 -D “cn=Manager,dc=rockstics,dc=com” -b “ou=People,dc=rockstics,dc=com” -w admin123 |grep uid=ldapuser* 用户认证查询
6.LDAP自助密码服务
参考:
https://ltb-project.org/documentation/self-service-password/latest/config_general
vim /etc/yum.repos.d/ltb-project.repo
yum install self-service-password -y
Openldap 自助密码服务self-service-password 实现用户认证后自己修改密码 需要设置
self-service-password配置文件
/usr/share/self-service-password/conf/config.inc.php:
self-service-password http配置文件
[root@localhost ~]# cat /etc/httpd/conf.d/self-service-password.conf
self-service-password nginx配置文件
下面是根据Linux系统用户生成ldif文件创建Linux用户,如非Linux用户可直接跳过,导入base.ldif后可在图形界面创建用户,
导入账号信息到OpenLDAP数据库
添加用户到用户组的ldif文件
导入数据库
ldapadd -x -w Admin123 -D cn=admin,dc=wmqe,dc=com -f /root/add_user_to_groups.ldif
后记:
CSDN 搜索rockstics 查看完整内容
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/139299.html