zoukankan      html  css  js  c++  java
  • LDAP安装

    一、介绍

    LDAP 全称:Lightweight Directory Access Protocol,即“轻量级目录访问协议”。

    LDAP目录以树状的层次结构来存储数据。如果你对自顶向下的DNS树或UNIX文件的目录树比较熟悉,也就很容易掌握LDAP目录树这个概念了。就象DNS的主机名那样,LDAP目录记录的标识名(Distinguished Name,简称DN)是用来读取单个记录,以及回溯到树的顶部。

    二、名词介绍

    https://baike.baidu.com/item/LDAP#1_1

    三、安装

    环境:centos7

    yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel
    systemctl start slapd
    systemctl enable slapd
    
    #验证
    ss -lnt|grep 389
    

      

    四、配置LDAP

    #1、设置LDAP管理员密码
    [root@admin~]#slappasswd -h {SSHA} -s ldppassword
    {SSHA}Vf9I/lXZ59i4S5A8ghqVHvLYvWVVNXNi
    
    #2、配置OpenLDAP服务器
    ##OpenLDAP服务器配置文件位于 /etc/openldap/slapd.d/ 
    ##olcSuffix - 数据库后缀,它是LDAP服务器提供信息的域名。简单来说,它应该更改为您的域名。
    ##olcRootDN - 具有对LDAP执行所有管理活动的无限制访问权限的用户的根专有名称(DN)条目,如root用户。
    ##olcRootPW - 上述RootDN的LDAP管理员密码。
    
    
    [root@admin~]#cd /etc/openldap/slapd.d/cn=config/
    
    #3、创建a.ldif文件
    [root@admincn=config]#vim  a.ldif 
    [root@admincn=config]#cat   a.ldif 
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcSuffix
    olcSuffix: dc=zhang,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootDN
    olcRootDN: cn=ldapadm,dc=zhang,dc=com
    
    dn: olcDatabase={2}hdb,cn=config
    changetype: modify
    replace: olcRootPW
    olcRootPW: {SSHA}Vf9I/lXZ59i4S5A8ghqVHvLYvWVVNXNi  #上面的管理员密码
    
    #4、将配置发送到LDAP服务器
    [root@admincn=config]#ldapmodify -Y EXTERNAL  -H ldapi:/// -f a.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    modifying entry "olcDatabase={2}hdb,cn=config"
    
    #5、编辑monitor.ldif文件
    [root@admincn=config]#vim monitor.ldif
    [root@admincn=config]#cat  monitor.ldif
    angetype: modify
    replace: olcAccess
    olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external, cn=auth" read by dn.base="cn=ldapadm,dc=zhang,dc=com" read by * none
    
    #6、将monitor.ldif配置发送到LDAP服务器。
    [root@admincn=config]#ldapmodify -Y EXTERNAL  -H ldapi:/// -f monitor.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    
    #7、设置LDAP数据库
    #将示例数据库配置文件复制到/var/lib/ldap并更新文件权限
    [root@admincn=config]#cp  /usr/share/openldap-servers/DB_CONFIG.example    /var/lib/ldap/DB_CONFIG 
    
    #8、添加cosine和nis LDAP模式。
    [root@admincn=config]#ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=cosine,cn=schema,cn=config"
    
    [root@admincn=config]#ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif 
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=nis,cn=schema,cn=config"
    
    [root@admincn=config]#ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
    SASL/EXTERNAL authentication started
    SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
    SASL SSF: 0
    adding new entry "cn=inetorgperson,cn=schema,cn=config"
    
    #9、base.ldif为您的域生成文件
    [root@admincn=config]#vim base.ldif
    [root@admincn=config]#cat  base.ldif
    dn: dc=zhang,dc=com
    dc: zhang
    objectClass: top
    objectClass: domain
    
    dn: cn=ldapadm ,dc=zhang,dc=com
    objectClass: organizationalRole
    cn: ldapadm
    description: LDAP Manager
    
    dn: ou=People,dc=zhang,dc=com
    objectClass: organizationalUnit
    ou: People
    
    dn: ou=Group,dc=zhang,dc=com
    objectClass: organizationalUnit
    ou: Group
    
    #10、构建目录结构(密码是adapadm的密码(ldppassword))
    [root@admincn=config]ldapadd -x -W -D "cn=ldapadm,dc=zhang,dc=com" -f base.ldif
    Enter LDAP Password:     
    adding new entry "dc=zhang,dc=com"
    
    adding new entry "cn=ldapadm ,dc=zhang,dc=com"
    
    adding new entry "ou=People,dc=zhang,dc=com"
    
    adding new entry "ou=Group,dc=zhang,dc=com"
    

      

    五、创建LDAP用户(创建test用户)

    #1、创建test.ldif文件
    [root@admincn=config]#vim test.ldif
    [root@admincn=config]#cat test.ldif 
    dn: uid=test,ou=People,dc=zhang,dc=com
    objectClass: top
    objectClass: account
    objectClass: posixAccount
    objectClass: shadowAccount
    cn: test
    uid: test
    uidNumber: 9999
    gidNumber: 100
    homeDirectory: /home/test
    loginShell: /bin/bash
    gecos: Raj [Admin (at) zhang]
    userPassword: {crypt}x
    shadowLastChange: 17058
    shadowMin: 0
    shadowMax: 99999
    shadowWarning: 7
    
    #2、使用带有上述文件的ldapadd命令在OpenLDAP目录中创建名为“ test” 的新用户。
    
    [root@admincn=config]#ldapadd -x -W -D "cn=ldapadm,dc=zhang,dc=com" -f test.ldif
    Enter LDAP Password:   (密码是adapadm的密码(ldppassword))
    adding new entry "uid=test,ou=People,dc=zhang,dc=com"
    
    
    #3、为用户分配密码。
    -s   指定用户名的密码
    -x   用户名,密码已更改
    -D   要对LDAP服务器进行身份验证的可分辨名称
    
    [root@admincn=config]ldappasswd -s 123456 -W -D "cn=ldapadm,dc=zhang,dc=com" -x "uid=test,ou=People,dc=zhang,dc=com"
    Enter LDAP Password: 密码是adapadm的密码(ldppassword))
    
    #4、验证LDAP条目
    [root@admincn=config]#ldapsearch -x cn=test -b dc=zhang,dc=com
    
    #5、从LDAP中删除条目
    ldapdelete -W -D "cn=ldapadm,dc=zhang,dc=com" "uid=test,ou=People,dc=zhang,dc=com"
    

      

    六、启用LDAP日志记录

    #1、配置Rsyslog以将LDAP事件记录到日志文件/var/log/ldap.log
    [root@admincn=config]#vim /etc/rsyslog.conf
    [root@admincn=config]#egrep ldap /etc/rsyslog.conf
    local4.* /var/log/ldap.log
    #2、重启rsyslog
    systemctl restart rsyslog
    

      

    七、安装phpLDAPadmin

    #1、下载phpldapadmin和httpd
    yum install httpd php -y
    yum -y install phpldapadmin 
    
    
    #2、修改phpldapadmin配置文件
    [root@adminphpldapadmin]#tail -13   /usr/share/phpldapadmin/config/config.php
    */
    $servers = new Datastore();
    $servers->newServer('ldap_pla');
    $servers->setValue('server','name','My LDAP Server');
    $servers->setValue('server','host','0.0.0.0');
    $servers->setValue('server','port',389);
    $servers->setValue('server','base',array('dc=zhang,dc=com')); #修改为自己的域名
    $servers->setValue('login','auth_type','session');
    $servers->setValue('login','bind_id','cn=Manager,dc=zhang,dc=com');   #修改为自己的域名
    $servers->setValue('login','bind_pass','ldppassword'); #填入设定的根节点管理员密码
    $servers->setValue('server','tls',false); 
    
    ?>
    
    #3、修改phpldapadmin的httpd的配置
    
    [root@adminphpldapadmin]#cat /etc/httpd/conf.d/phpldapadmin.conf
    #
    #  Web-based tool for managing LDAP servers
    #
    
    Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
    Alias /ldapadmin /usr/share/phpldapadmin/htdocs
    
    <Directory /usr/share/phpldapadmin/htdocs>
      <IfModule mod_authz_core.c>
        # Apache 2.4
        Require all granted
      </IfModule>
      <IfModule !mod_authz_core.c>
        # Apache 2.2
        Order Deny,Allow
        Deny from all
        Allow from 127.0.0.1
        Allow from ::1
      </IfModule>
    </Directory>
    

      

    4、浏览器访问

    5、登录(密码:ldppassword)

     

  • 相关阅读:
    依赖注入模式【其他模式】
    缓存模式【其他模式】
    限流模式【其他模式】
    规范模式【其他模式】
    服务定位器【其他模式】
    原型继承模式【其他模式】
    Promise【其他模式】
    单态模式【其他模式】
    Git如何永久删除文件(包括历史记录)
    git中如何查看一个文件的修改(更新)历史
  • 原文地址:https://www.cnblogs.com/zhangb8042/p/11015016.html
Copyright © 2011-2022 走看看