zoukankan      html  css  js  c++  java
  • 「linux学习」之CentOS下ldap服务器搭建

    1. 安装OpenLDAP

    1.1 环境准备
    lsb_release -a
    LSB Version: :core-4.1-amd64:core-4.1-noarch
    Distributor ID: CentOS
    Description: CentOS Linux release 7.5.1804 (Core)
    Release: 7.5.1804

    下载 openldap, 默认yum已搭建好,yum未搭建成功可以查看我的yum搭建

    yum install openldap openldap-* -y
    安装成功后执行: slapd -VV

    @(#) $OpenLDAP: slapd 2.4.44 (May 16 2018 09:55:53) $
    mockbuild@c1bm.rdu2.centos.org:/builddir/build/BUILD/openldap-2.4.44/openldap-2.4.44/servers/slapd

    设置管理员密码, 会返回一串加密字符串,保存好

    slappasswd -s l root123

    {SSHA}y9iku13lm4jikn8uTwqxry0juyetrjh1

    开始配置文件:

    vim /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

    olcSuffix: dc=root,dc=local

    olcRootDN: cn=Manager,dc=root,dc=local

    olcRootPW: {SSHA}hWP0W7XKBLTSfDgrG0FxZ5DaEr5lkZov

    注: dc中可以设置你想要的用户名即可

    修改监控配置文件:

    vim /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif

    olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
    al,cn=auth" read by dn.base="cn=Manager,dc=root,dc=local" read by * none

    使配置生效:slaptest -u

    返回 config file testing succeeded 算成功

    修改数据库配置: cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

    修改权限:chown ldap:ldap -R /var/lib/ldap

    生效配置: slaptest -u

    启动ldap服务: systemctl start slapd

    设置开机自启动: systemctl enable slapd

    service httpd status

    启动正常, 输入ldapsearch -x,检查输出

    # extended LDIF
    #
    # LDAPv3
    # base <> (default) with scope subtree
    # filter: (objectclass=*)
    # requesting: ALL
    #

    # search result
    search: 2
    result: 32 No such object

    # numResponses: 1

    安装phpldapadmin

    更新本地yum源, 本地yum源没有phpldapadmin的包, 所以需要手动更新

     
    安装php:
    yum install phpldapadmin

    配置文件 vi /etc/httpd/conf.d/phpldapadmin.conf

    注释其他,留下以下部分:

    Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
    Alias /ldapadmin /usr/share/phpldapadmin/htdocs

    <Directory /usr/share/phpldapadmin/htdocs>
    Order Deny,Allow
    Allow from all
    </Directory>

    修改http配置文件:

    vi /etc/httpd/conf/httpd.conf

    1.按下esc, 输入: set nu  

       注释102-106, 尾随加入107-110

       102 #<Directory />
      103 # AllowOverride none
      104 # Require all denied
      105 #</Directory>
      106
      <Directory />

      Options FollowSymLinks
      AllowOverride None
      Order deny,allow
      allow from all

      </Directory> 

    2. 修改监听端口:  为了防止端口冲突建议修改端口

      semanage port -a -t http_port_t -p tcp 888
      Listen 888
      ServerName localhost:888

    修改php配置文件: vim /etc/phpldapadmin/config.php

     1. 找到并注释:// $servers->setValue('login','attr','uid');

     2. 空白部分加入:

     重启httpd服务:systemctl restart httpd

    访问: http://ip:888/phpldapadmin/

    登录LDAP
    DN填写:cn=Manager,dc=root,dc=local
    密码:root123

     

    注意几个问题: 有可能密码错误的问题:

    1. ldif相关问题在修改配置中不允许有多余空格, 最好原文修改,或者注释以后不要留下多余空行或空格, 会直接导致httpd server faild  !!! 

     /etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif

      /etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif

    2. cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG   ---- >> 这条语句执行完不一定数据库就会生效

    发现自己用户名或者密码错误的时候, 不要在怀疑了, 直接查看数据库配置

    cat slapd.ldif ,看数据库中配置文件用户名是否还是系统初始分配的,是,直接修改数据库配置

    vim  DB_CONFIG.example   --- >> 吧红圈部分修改成自己的用户名

    dc=root,dc=local

    cn=Manager,dc=root,dc=local

    重启服务: 

    systemctl restart httpd

    导入schema:

    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

    重启服务: 

    systemctl restart httpd  完成

    如果出现: This base cannot be created with PLA  --- >> cd /etc/openldap/base.ldif  --- >>写入如下四行

                              dn: dc=root,dc=local o: ldap objectclass: dcobject objectclass: organization

                              创建根节点: ldapadd -f base.ldif -x -D cn=Manager,dc=root,dc=local -W

                              Enter LDAP Password: root123 adding new entry "dc=root,dc=local"

       

          或者用户名密码错误, 检查 1/2hdb.ldif,DB_CONFIG.example 这三个文件中配置的用户名密码是否一致

          或者只能匿名登录 ---- >>检查 1/2hdb.ldif,DB_CONFIG.example 这三个文件中配置的用户名密码是否一致

    systemctl restart httpd  完成

     

  • 相关阅读:
    为什么单个TCP连接很难占满带宽
    上传NUnit的单元测试结果和OpenCover的单元测试覆盖率到SonarQube服务中
    使用Visual Studio Code Coverage和nunit上传单元测试覆盖率和单元测试结果到SonarQube上
    java安装1.8的经验和Error: Registry key 'SoftwareJavaSoftJava Runtime Environment'CurrentVers问题处理
    NSubstitute.Analyzers检测NSubstitute用法冲突
    在TeamCity中执行gtest单元测试
    iOS OpenGL ES入门
    iOS 基础知识
    【内推】字节跳动-头条小说&番茄小说
    iOS开发小记(十四)
  • 原文地址:https://www.cnblogs.com/mixiu26/p/10676894.html
Copyright © 2011-2022 走看看