美文网首页程序员
openLDAP之(安装-备份-迁移+LDAP account

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

作者: 阿嚏_sk | 来源:发表于2020-04-04 22:11 被阅读0次

    官方文档参考: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了,第一次写文章,如有不足之处请大家指点留言,希望以后能够坚持写下去,给自己培养一个梳理的好习惯!!

    相关文章

      网友评论

        本文标题:openLDAP之(安装-备份-迁移+LDAP account

        本文链接:https://www.haomeiwen.com/subject/gtlsphtx.html