程序员

openLDAP之(安装-备份-迁移+LDAP account

2020-04-04  本文已影响0人  阿嚏_sk

官方文档参考:OpenLDAP Software 2.4 Administrator's Guide: A Quick-Start Guide

这篇文章写的时候已经迁移完毕有段时间了,中间有很多不通的地方,还请谅解,尽量不要直接按照步骤走,可以找寻文章中存在的共性问题,只有自己先了解openLDAP,才可以更好的去看别人的文章,盲目的copy,害人害己(有感而发....)

问题:本次迁移,遇见的最大的问题就是,官方给出的安装步骤很简单,有很多我们需要的配置并没有给出,需要自己长时间的摸索和探究,我所出现的问题就是:密码策略没有配置,导致导入数据一直报passwdFaild错误,希望大家引以为戒,可以更加快速部署好自己的项目。

新老环境对比:     整个过程都是在centos 7 下!

老环境信息:

    (1)安装方式:yum   (这种方式非常简单,网上可随便搜到,非常的多,这里不过多解释)

    (2)LDAP版本:2.4.44

    (3)可视化页面采用:LDAP Account Manager 6.5

新环境信息:(要安装的信息,由于自我行为规范,采用源码编译安装最新版本)

(1)安装方式源码编译:openldap-2.4.49.tgz

(2)LDAP版本:2.4.49

(3)可视化页面界面:LDAP Account Manager 7.1

openLDAP 简单的介绍:

o– organization(组织-公司)

ou – organization unit(组织单元/部门)

c - countryName(国家)

dc - domainComponent(域名组件)

sn – suer name(真实名称)

cn - common name(常用名称)

dn - distinguished name(专有名称)

如图所示(网上找的。。)

安装过程:

下载openldap tar包(官方的!培养好习惯!)

ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.49.tgz

安装

wget ftp://ftp.openldap.org/pub/OpenLDAP/openldap-release/openldap-2.4.49.tgz

 tar zxvf openldap-2.4.49.tgz 

 ./configure --prefix=/data/software/openldap-2.4.49        //指定安装目录,在这里执行请                     //先查找你需要的选项配置,通过./configure -h,安装需要很多依赖项,通过                //yum安装,我这里采用默认配置,

 make depend && make       //构建依赖编译

make test       //构建测试 (非常慢,20~30分钟),网上有很多这个地方报错是因为                             没有安装它的一些依赖项,可以通过yum安装

 make install

配置文件slapd.conf     //官网上给出的是配置slapd.ldif文件,随后指定这个文件导入数据库(经过多方的查找发现除了官方给的文档外,很少有人采用这个方式,经过多天的尝试发现出了错误很难找到对应的方法,最后无奈选择配置slapd.conf,主要是自己没有理解其原理...)

include /data/software/openldap-2.4.49/etc/openldap/schema/core.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/collective.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/corba.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/cosine.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/duaconf.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/dyngroup.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/java.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/inetorgperson.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/nis.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/misc.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/openldap.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/pmi.schema

include /data/software/openldap-2.4.49/etc/openldap/schema/ppolicy.schema

#include包含的是我们同级目录下的schema目录下的文件(一半是.schema结尾,一半是.ldif结尾的,而.ldif结尾的文件是添加到配置slapd.ldif文件的,我们这里采用的是slapd.conf文件,所以对ldif文件不用管,想要了解的同学自行查找)

loglevel        256                                  //配置官方给的日志级别

logfile /data/logs/slapd/slapd.log           //目录

modulepath /data/software/openldap-2.4.49/libexec/openldap       //采用动态模块存放位置

modulepath  ppolicy.la                                                                   //采用动态模块(这个                                                    //模块的作用配置密码策略,passwordDefault,如果老的                //LDAP配置了密码策略,新的LDAP没有配置的话,导入数据目录会失败。)

database    mdb                                                        //本版本默认采用的mdb数据库

maxsize     1073741824                                   //使用mdb必加的配置(非mdb这个去掉)

suffix "dc=*********,dc=com"           //*****位置:写自己的域名(这个域名真假 无所                                                                    谓, 不过尽量与老的LDAP一致

rootdn "cn=root,dc=******,dc=com"        //管理员用户

# Cleartext passwords, especially for the rootdn, should

# be avoid.  See slappasswd(8) and slapd.conf(5) for details.

# Use of strong authentication encouraged.

rootpw      {SSHA}erQRRrDndu3SUmuERooja3yxLza4h06V               ///加密的密码,铭                                                                                                                 ///文也行

# The database directory MUST exist prior to running slapd AND

# should only be accessible by the slapd and slap tools.

# Mode 700 recommended.

directory /data/software/openldap-2.4.49/var/openldap-data        //数据存放位置

# Indices to maintain

index   objectClass eq                    //默认

overlay ppolicy                                    //覆盖(ppolicy需要加的配置以下)

ppolicy_default cn=passwordDefault,ou=Policies,dc=********,dc=com   

ppolicy_hash_cleartext

ppolicy_use_lockout

创建数据库目录

mkdir slapd.d

启动守护进程sladp

1.(简单理解-f  指定启动的配置文件所在位置,-F 将数据导入位置[数据会变成这个格式存储cn=config  cn=config.ldif] 目前不知道为什么这样做)

2.(如何不加-F数据保存到配置文件所写的位置:directory /data/software/openldap-2.4.49/var/openldap-data)

3.如果执行这一步报错,根据报错信息判断,通过yum下载相关配置程序(经过好多次失败才明白,一开始以为配置错误)

/data/software/openldap/libexec/slapd -f /data/software/openldap/etc/openldap/slapd.conf -F /data/software/openldap/etc/slapd.d/

如果修改了配置文件:

配置文件修改后操作(slapd.conf)

slaptest -f /data/software/openldap/etc/openldap/slapd.conf -F /data/software/openldap/etc/slapd.d/

启动守护进程:

启动方式

/data/software/openldap/libexec/slapd

安全的停止:

kill -INT PID

检测服务是否正确配置和运行                                                                                ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts                                                                                                             
 查看目录中的子目录                                                                                               ldapsearch -x -b 'dc=********,dc=com' '(objectclass=*)'

清空所有条目:-w 密码                                                                                                       ldapdelete -x -D "cn=root,dc=********,dc=com" -w ****** -r "dc=*******,dc=com"

备份老LDAP数据

(这个地方网上给出了很多方式,如下)

1.slapcat > ldapdbak.ldif       ///这个方法会将老服务器上的一些不重要的信息也备份进去,根据查找发现有网友给出了过滤的解决办法(牛),

#cat openldap-backup.synax 

/^creatorsName: /d

/^modifyTimestamp: /d

/^structuralObjectClass: /d

/^modifiersName: /d

/^createTimestamp: /d

/^entryUUID: /d 

/^entryCSN: /d

#随后采用

       cat  ldapdbak.ldif  | sed -f openldap-backup.synax > openldap-complete.ldif

#随后导入即可:

slapadd -l openldap-complete.ldif                        ///每次执行到这一步都错,就是因为没有配置密码策                                                                               ///略,原来的LDAP存在,新的没有配置

#####################################################################

还有通过ldapsearch等备份还原的,这个适用于单条单条的信息导入,很麻烦这里不采用。

当然还有更好的办法,那就是,安装完毕后不要再去管openLDAP了,我们一起去配置LDAP Account Manager。他有各种方便的好看的方式提供备份和还原,还能直接将错误的数据删除!!!!。对于openLDAP命令不感冒的同学可以采用这个方式,简单方便好用。

官方文档:INSTALL LDAP Account Manager

https://www.ldap-account-manager.org/lamcms/

下载tar包:选择自己想要的版本,这里我选择7.1 ,老的是6.5

https://www.ldap-account-manager.org/lamcms/releases

所需环境

php7+php-fpm+nginx     (以前用的是apache)(用户我采用的是php用户,自己创建,要统一)

tar xjf ldap-account-manager-<version>.tar.bz2

./configure --with-httpd-user=php --with-httpd-group=php --with-web-root=/data/software/ldap-account-manager

make install      (我当时还在想为啥没有make ,真不需要有!!参考官方大大走)

配置nginx:

(1.官方给出的是访问http://*****/lam,我配置的是直接访问域名)

(2.我采用的php是ip+port,官方给的是fastcgi_pass unix:/var/run/php5-fpm.sock;)

server {

    listen 80;

    server_name  *******;

    access_log /data/logs/nginx/access_lam.log  json;        //这个是我在nginx.conf配置                                                                   //的,大家根据自己状况去配置,不采用不影响。

    charset UTF-8;

    location / {

      index index.html;

      root /data/software/ldap-account-manager;                 //存放位置

      autoindex off;

      location ~ \.php$ {                                      //php模块配置,不要忘了启动php-fpm

                                                                    //这里没有采用sock,使用的是ip+port

        fastcgi_split_path_info ^(.+\.php)(/.+)$;

        fastcgi_pass 127.0.0.1:9000;                               ///ip+port(这里不是官方的)

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME $request_filename;

        include fastcgi_params;

      }

      location ~ ^/(tmp/internal|sess|config|lib|help|locale) {              //不去访问这些位置

        deny all;

        return 403;

      }

    }

}   

启动nginx,大家就可以通过自己配置的server name 访问我们的LDAP Account Manager了。

刚开始的模版配置有很多,这里不过讲解,我们只说备份还原!!!:

老的LDAP Account Manager 进入选择:export

1.填写自己最顶级的DN:*******

2.选择第三个,备份所有子目录   Sub

3.点击保存为文件     save as file

4.导出.ldif文件   ///我们可以在这里选择是否备份带有系统信息的数据!!! //这个文件是可以手动导入的在终                                ///端,当然也可以通过新的LDAP Account Manager进行import

新的LDAP Account Manager导入:

按照步骤走即可!!!!!!

到这里就ok了,第一次写文章,如有不足之处请大家指点留言,希望以后能够坚持写下去,给自己培养一个梳理的好习惯!!

上一篇下一篇

猜你喜欢

热点阅读