首页 » Web前端 » PHPLDAPoffWarning技巧_OpenLDAP支配

PHPLDAPoffWarning技巧_OpenLDAP支配

访客 2024-11-20 0

扫一扫用手机浏览

文章目录 [+]

1.安装OpenLDAP

由于CentOS8的仓库中取消了对OpenLDAP-server包的支持.这里利用Symas供应的第三方仓库

PHPLDAPoffWarning技巧_OpenLDAP支配

dnf -y install wget net-tools tar unzip wget -O /etc/yum.repos.d/openldap.repo https://repo.symas.com/configs/SOFL/rhel8/sofl.repo

2.建立源的缓存

PHPLDAPoffWarning技巧_OpenLDAP支配
(图片来自网络侵删)

dnf makecache

3.安装openldap

dnf install -y symas-openldap-servers symas-openldap-clients

4.自启动并启动openldap

systemctl enable slapdsystemctl start slapd

5.openLDAP根本

openLDAP中利用slappasswd来天生密码哈希,再将哈希写入配置文件来修正密码

设置OpenLDAP的管理员根密码,此密码用于全体安装过程

slappasswd -s hao12345678New password: Re-enter new password: {SSHA}8FIP/p+sQ5pxECw5bKbHC7WNbnEzpb4+

6.创建chrootpw.ldif文件,写入如下配置(如:vi /tmp/chrootpw.ldif)

dn: olcDatabase={0}config,cn=configchangetype: modifyadd: olcRootPWolcRootPW: {SSHA}8FIP/p+sQ5pxECw5bKbHC7WNbnEzpb4+

第一行:实行配置文件,这里表示指定为cn=config/olcDatabase={0}config文件.你可以在/etc/openldap/slapd.d目录下就能找到此文件

第二行 changetype指定类型为修正

第三行 add表示添加olcRootPW配置项

第四行 指定olcRootPW配置项的值

在实行ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif之前,olcDatabase={0}config文件,里面是没有olcRootPW这个项.实行看,再次查看,会创造已经添加有此项

注释:

(1).dn配置文件,这里指定为/etc/openldap/slapd.d/cn=config/olcDatabase={0}config文件

(2).changetype指定类型为 modity,变动

(3).add表示添加 olcRootPW配置项

(4).指定olcRootPW配置荐的值

实行如下命令将配置中的操作动态载入openLDAP做事器

ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif#输出如下内容表示成功SASL/EXTERNAL authentication startedSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0modifying entry "olcDatabase={0}config,cn=config"

7.导入基本schema

openldap server默认供应了一些基本schema位于/etc/openldap/schema目录下,这些schema掌握着条款拥有哪些工具类和属性,可以自行选择须要的进入导入,这里将所有schema都导入进入

ls /etc/openldap/schema/.ldif | xargs -I {} ldapadd -Y EXTERNAL -H ldapi:/// -f {}

8.修正域并创建域管理帐户

利用slappasswd命令为域管理员帐户创建密码,记录哈希

首先要天生经处理后的目录管理者明文密码

创建chdomain.ldif文件并写入如下配置

dn: olcDatabase={1}monitor,cn=configchangetype: modifyreplace: olcAccessolcAccess: {0}to by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=admin,dc=mfyxw,dc=com" read by nonedn:olcDatabase={2}mdb,cn=configchangetype: modifyreplace: olcSuffixolcSuffix: dc=mfyxw,dc=comdn:olcDatabase={2}mdb,cn=configchangetype: modifyreplace: olcRootDNolcRootDN:cn=admin,dc=mfyxw,dc=comdn:olcDatabase={2}mdb,cn=configchangetype: modifyreplace: olcRootPWolcRootPW: {SSHA}8FIP/p+sQ5pxECw5bKbHC7WNbnEzpb4+dn:olcDatabase={2}mdb,cn=configchangetype: modifyadd: olcAccessolcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=admin,dc=mfyxw,dc=com" write by anonymous auth by self write by noneolcAccess: {1}to dn.base="" by readolcAccess: {2}to by dn="cn=admin,dc=mfyxw,dc=com" write by read

olcSuffix:用于保存域信息,更新为自己的域

olcRootDN: 根的DN(唯一识别名),根的差异名,它用于根管理员在此节点下做所有的管理

olcRootPW: LDAP的管理员的根的密码,刚才实行slappasswd命令天生的加密内容

9.载入修正

ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif#如下是运行成功SASL/EXTERNAL authentication startedSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0modifying entry "olcDatabase={1}monitor,cn=config"modifying entry "olcDatabase={2}mdb,cn=config"modifying entry "olcDatabase={2}mdb,cn=config"modifying entry "olcDatabase={2}mdb,cn=config"modifying entry "olcDatabase={2}mdb,cn=config"

启用memberof模块(开启memberof支持并新增用户支持memberof配置)

这个模块的浸染是当你建一个组的时候,把一些用户添加到这个组里去,它会自动给这些用户添加一个memberOf属性,有很多运用须要检讨这个属性

10.创建add_memberof.ldif文件并写入如下配置

dn: cn=module{0},cn=configcn: modulle{0}objectClass: olcModuleListobjectclass: topolcModuleload: memberof.laolcModulePath: /usr/lib64/openldapdn: olcOverlay={0}memberof,olcDatabase={2}mdb,cn=configobjectClass: olcConfigobjectClass: olcMemberOfobjectClass: olcOverlayConfigobjectClass: topolcOverlay: memberofolcMemberOfDangling: ignoreolcMemberOfRefInt: TRUEolcMemberOfGroupOC: groupOfUniqueNamesolcMemberOfMemberAD: uniqueMemberolcMemberOfMemberOfAD: memberOf

11.创建refint1.ldif文件并写入如下配置

dn: cn=module{0},cn=configadd: olcmoduleloadolcmoduleload: refint

12.创建refint2.ldif文件并写入如下配置

dn: olcOverlay=refint,olcDatabase={2}mdb,cn=configobjectClass: olcConfigobjectClass: olcOverlayconfigobjectClass: olcRefintConfigobjectClass: topolcOverlay: refintolcRefintAttribute: memberof uniqueMember manager owner

13.依次实行如下命令

ldapadd -Q -Y EXTERNAL -H ldapi:/// -f add_memberof.ldif输出结果:adding new entry "cn=module{0},cn=config"输出结果:adding new entry "olcOverlay={0}memberof,olcDatabase={2}mdb,cn=config"dapmodify -Q -Y EXTERNAL -H ldapi:/// -f refint1.ldif输出结果:modifying entry "cn=module{0},cn=config"ldapadd -Q -Y EXTERNAL -H ldapi:/// -f refint2.ldif输出结果:adding new entry "olcOverlay=refint,olcDatabase={2}mdb,cn=config"

14.创建组织及管理角色

下面来创建一个叫做Maple的组织,并在其下创建一个admin的组织角色(该组织角色内的用户具有管理全体LDAP的权限)和People和Group两个组织单元

创建base.ldif文件并写入如下配置

dn: dc=mfyxw,dc=comobjectClass: topobjectClass: dcObjectobjectClass: organizationo: mapledc: mfyxwdn: cn=admin,dc=mfyxw,dc=comobjectClass: organizationalRolecn: admindn: ou=People,dc=mfyxw,dc=comobjectClass: organizationalUnitou: Peopledn: ou=Group,dc=mfyxw,dc=comobjectClass: organizationalRolecn: Group

载入修正

ldapadd -x -D cn=admin,dc=mfyxw,dc=com -W -f base.ldifEnter LDAP Password: adding new entry "dc=mfyxw,dc=com"adding new entry "cn=admin,dc=mfyxw,dc=com"adding new entry "ou=People,dc=mfyxw,dc=com"adding new entry "ou=Group,dc=mfyxw,dc=com"

通过以上的所有步骤,就已经设置好了一个LDAP目录树:个中基准dc=mfyxw,dc=com是该树的根节点,其下有一个管理域cn=admin,dc=mfyxw,dc=com和两个组织单元ou=People,dc=mfyxw,dc=com和ou=Group,dc=mfyxw,dc=com

15.关闭匿名访问

创建disabled_anon.ldif文件并添加如下配置

dn: cn=configchangetype: modifyadd: olcDisallowsolcDisallows: bind_anondn: cn=configchangetype: modifyadd: olcRequiresolcRequires: authcdn: olcDatabase={-1}frontend,cn=configchangetype:modifyadd: olcRequiresolcRequires: authc

载入修正

ldapadd -Y EXTERNAL -H ldapi:/// -f disabled_anon.ldifSASL/EXTERNAL authentication startedSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0modifying entry "cn=config"modifying entry "cn=config"modifying entry "olcDatabase={-1}frontend,cn=config"

通过以上的所有

16.安装phpLDAPadmin

此业务须要增加php-ldap模块支持

利用Remi供应的仓库的php,利用如下命令安装

dnf install -y dnf-utils https://rpms.remirepo.net/enterprise/remi-release-8.rpm#查询php的版本dnf module list php -y#重置php列表dnf module list reset php -y #启用php8.1 dnf -y module enable php:remi-7.4#安装php81-php-ldapdnf -y install php74-php-ldap

17.添加nginx的源

vi /etc/yum.repos.d/nginx.repo

[nginx-stable]name=nginx stable repobaseurl=http://nginx.org/packages/centos/$releasever/$basearch/gpgcheck=1enabled=1gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true[nginx-mainline]name=nginx mainline repobaseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/gpgcheck=1enabled=0gpgkey=https://nginx.org/keys/nginx_signing.keymodule_hotfixes=true

18.安装nginx

dnf makecache && dnf -y install nginx

19.安装php

dnf -y install php74 php74-php-ldap php-fpm php-ldap php-xml php-cli php-common php-devel

修正php-fpm的www.conf文件

vi /etc/php-fpm.d/www.conf

;listen = /run/php-fpm/www.socklisten = 127.0.0.1:9000

由于CentOS8中默认不供应openLDAP-serers包,phpLDAPadmin包也默认不供应

可以直接在Release- leenooks/phpLDAPadmin高下载release包

phpLDAPadmin的github地址: https://github.com/leenooks/phpLDAPadmin/releases

cd /usr/share/nginx/html && \wget https://github.com/leenooks/phpLDAPadmin/archive/refs/tags/1.2.6.3.tar.gz

将下载好的包移动到Nginx的web根目录下,解压并重命名为pla

tar xf 1.2.6.3.tar.gz && mv phpLDAPadmin-1.2.6.3 phpLDAPadmin && \cp phpLDAPadmin/config/config.php.example phpLDAPadmin/config/config.php && \chown -R nginx.nginx /usr/share/nginx/html

本次配置中利用二级域名mapleldap访问该业务,设置好DNS解析后在Nginx中根据实际情形增加配置

(/etc/nginx/nginx.conf)

server { listen 443 ssl; server_name mapleldap.mfyxw.com; root /usr/share/nginx/html/phpLDAPadmin/htdocs/; location / { index index.php; location ~ \.php(.)$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_split_path_info ^(.+\.php)(.)$; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param HTTPS on; include fastcgi_params; } }}

20.启动nginx和php

systemctl enable php-fpm && systemctl start php-fpm && \ systemctl enable nginx && systemctl start nginx

phpLDAPadmin目录下的config目录,将config.php.example复制为config.php

配置DN登录(修正/usr/share/nginx/html/phpLDAPadmin/config/config.php)

默认利用UID或DN登录,修正为cn

$servers->setValue('login','attr','cn');

关闭匿名

$servers->setValue('login','anon_bind',false);

设置用户属性的唯一性,这里利用了cn和sn,以确保用户名的唯一性

$servers->setValue('unique','attrs',array('mail','uid','uidNumber','cn','sn'));

去除警告信息

$config->custom->appearance['hide_template_warning'] = true;

做事验证

实行命令,查看是否安装成功

[root@servertest tmp]# ldapsearch -H ldap://192.168.80.33:389 -w H@oskksk7777 -D "cn=admin,dc=mfyxw,dc=com" -b "dc=mfyxw,dc=com"#或者利用下面命令,会提示输入密码[root@servertest tmp]#ldapsearch -H ldap://192.168.80.33:389 -W -D "cn=admin,dc=mfyxw,dc=com" -b "dc=mfyxw,dc=com"# extended LDIF## LDAPv3# base <dc=mfyxw,dc=com> with scope subtree# filter: (objectclass=)# requesting: ALL## mfyxw.comdn: dc=mfyxw,dc=comobjectClass: topobjectClass: dcObjectobjectClass: organizationo: Maple Companydc: mfyxw# admin, mfyxw.comdn: cn=admin,dc=mfyxw,dc=comobjectClass: organizationalRolecn: admin# People, mfyxw.comdn: ou=People,dc=mfyxw,dc=comobjectClass: organizationalUnitou: People# Group, mfyxw.comdn: ou=Group,dc=mfyxw,dc=comobjectClass: organizationalRolecn: Groupou: Group# search resultsearch: 2result: 0 Success# numResponses: 5# numEntries: 4

-H

实行主机IP及端口

-w

绑定DN的密码

-D

所绑定的做事器的DN

-b

指定搜索起始点

附上忘却管理员密码修正方法

天生管理员密码

slappasswd -s H@oskksk7777{SSHA}r+OePPYRhIopx6qw1WNC1bQ3gCzi8E1h

创建修正管理员根密码文件: changerootpw.ldif

dn: olcDatabase={0}config,cn=configchangetype: modifyreplace: olcRootPWolcRootPW: {SSHA}r+OePPYRhIopx6qw1WNC1bQ3gCzi8E1h

运行如下命令修正管理员根密码

[root@servertest tmp]# ldapadd -Y EXTERNAL -H ldapi:/// -f changepwd.ldifSASL/EXTERNAL authentication startedSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0modifying entry "olcDatabase={0}config,cn=config"

创建域管理员密码文件changedomain.ldif

dn: olcDatabase={2}mdb,cn=configchangetype: modifyreplace: olcRootPWolcRootPW: {SSHA}0ainWmcTshqjOR8nyNyhknYChWBfcHxp

运行如下命令修正域管理员密码

[root@servertest tmp]# ldapmodify -Y EXTERNAL -H ldapi:/// -f chandomainpw.ldif SASL/EXTERNAL authentication startedSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0modifying entry "olcDatabase={2}mdb,cn=config"

为LDAP用户设置密码

ldappasswd -H ldapi:/// -Y EXTERNAL -S "cn=maple,ou=people,dc=mfyxw,dc=com"

查看ldap版本号及检测

slapd -VVslaptest -u

加载日志模块

创建日志模块文件 loglevel.ldif

dn: cn=configchangetype: modifyreplace: olclogLevelolcLogLevel: stats

运行如下命令添加日志

[root@servertest tmp]# ldapmodify -Y EXTERNAL -H ldapi:/// -f loglevel.ldifSASL/EXTERNAL authentication startedSASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=authSASL SSF: 0modifying entry "cn=config"

配置rsyslog.conf

cat <<EOF> /etc/rsyslog.conflocal4. /var/log/slapd.logEOF

创建日志文件并授权

touch /var/log/slapd.logchown ldap.ldap /var/log/slapd.log

重启rsyslog

systemctl restart rsyslog

相关文章

介绍百度码,技术革新背后的智慧之光

随着科技的飞速发展,互联网技术已经成为我们生活中不可或缺的一部分。而在这个信息爆炸的时代,如何快速、准确地获取信息,成为了人们关注...

Web前端 2025-01-03 阅读1 评论0

介绍皮箱密码,开启神秘之门的钥匙

皮箱,作为日常生活中常见的收纳工具,承载着我们的珍贵物品。面对紧闭的皮箱,许多人却束手无策。如何才能轻松打开皮箱呢?本文将为您揭秘...

Web前端 2025-01-03 阅读1 评论0

介绍盗号器,网络安全的隐忧与应对步骤

随着互联网的快速发展,网络安全问题日益突出。盗号器作为一种非法工具,对网民的个人信息安全构成了严重威胁。本文将深入剖析盗号器的原理...

Web前端 2025-01-03 阅读1 评论0