• LDAP


    LDAP:轻量级目录访问控制协议(AD、one directory)
    用户帐号的集中管理和集中控制

    安装:

    yum install openldap openldap-servers -y
    openldap 协议包
    openldap-servers 服务端程序

    ls /etc/openldap/ 主目录
    ldap.conf 客户端配置文件
    slapd.conf 服务器端配置文件
    /etc/openldap/schema 模板存放位置 nis.schema
    查看是否有已定义好的架构,关于描述Linux系统用户和系统的组的对象类和属性类:
    vim /etc/openldap/schema/nis.schema
    objectclass ( 1.3.6.1.1.1.2.0 NAME 'posixAccount'
    DESC 'Abstraction of an account with POSIX attributes'
    SUP top AUXILIARY
    MUST ( cn $ uid $ uidNumber $ gidNumber $ homeDirectory ) 字段值不能为空
    MAY ( userPassword $ loginShell $ gecos $ description ) ) 字段值可有可无

    修改主配置文件:

    vim /etc/openldap/slapd.conf
    loglevel 增加调试日志输出,配置syslog服务local4.debug /var/log/sldap.log
    include /etc/openldap/schema/nis.schema 包含定义好的架构
    allow bind_v2 定义版本,向下兼容
    pidfile /var/run/openldap/slapd.pid 服务启动后pid文件
    database bdb b伯克利 db数据库
    suffix "dc=bj,dc=name,dc=com" 定义DC
    rootdn "cn=ys,dc=bj,dc=name,dc=com" 区别名称,唯一标识一条记录,管理dn(cn为ldap管理员帐号,不要写ou,管理所有的ou)
    rootpw 123456 管理员密码
    定义密文的管理员密码:slappasswd -h {md5}
    {MD5}4QrcOUm6Wau+VuBX8g+IPg==
    directory /var/lib/ldap 真正数据库的位置,权限为700,所有者及组为ldap
    自定义谁可以访问目录中的内容,并希望用户可以自己修改密码,还可以让用户读取除密码条目以外的其他条目:
    access to attrs=shadowLastChange,userPassword
    by self write
    by * read
    by * auth
    access to *
    by * read
    拷贝数据库的配置文件到/var/lib/ldap/下,并修改属主属组:
    cp /etc/openldap/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    chown ldap.ldap /var/lib/ldap/DB_CONFIG
    启动服务:/etc/init.d/ldap start

    /usr/share/openldap/migration/ 存放着脚本文件
    ldap库模板定义生成ldap目录结构,这些perl脚本的配置信息包含在migrate_common.ph文件中:
    vim /usr/share/openldap/migration/migrate_common.ph修改命名前缀变量:
    $DEFAULT_MAIL_DOMAIN = "bj.name.com";
    $DEFAULT_BASE = "dc=bj,dc=name,dc=com";
    在上面的目录中执行:./migrate_base.pl > /tmp/name.ldif生成可以导入ldap的ldif文件
    可以用vim修改里面的内容,注意开头的顶极组织域不能删除,ou可根据自己的需求进行保留和修改
    建立测试用户:useradd ldap1
    echo "123" |passwd --stdin ldap1
    grep ldap1 /etc/passwd > /tmp/user
    grep ldap1 /etc/group > /tmp/group
    在上面的目录中生成用户和组的ldif文件:
    ./migrate_passwd.pl /tmp/user > /tmp/user.ldif
    ./migrate_group.pl /tmp/group > /tmp/group.ldif

    导入生成的ldif文件:

    ldapadd -x -D "cn=ys,dc=bj,dc=name,dc=com" -w 123456 -f /tmp/name.ldif
    ldapadd -x -D "cn=ys,dc=bj,dc=name,dc=com" -w 123456 -f /tmp/group.ldif
    ldapadd -x -D "cn=ys,dc=bj,dc=name,dc=com" -w 123456 -f /tmp/user.ldif
    -x为简单认证,-D为指定身份,-w输入管理员密码,-f指定ldif文件的位置

    查看检查:

    netstat -tunpl | grep slapd
    ldapsearch -x -w 123456 -h 127.0.0.1 -D "cn=ys,dc=bj,dc=name,dc=com" -b "ou=People,dc=bj,dc=name,dc=com"

    客户端加入ldap服务器进行验证:

    命令方式:authconfig-tui
    用户修改自己的密码:
    ldappasswd -xD "uid=ldap1,ou=People,dc=bj,dc=name,dc=com" -WS
    如果没有S会创建一个新的密码

    使用网页管理ldap:

    yum install httpd php php-ldap
    解压tar xvzf phpldapadmin-1.2.0.4.tgz
    mv phpldapadmin-1.2.0.4 /var/www/html/ldap
    进入/var/www/html/ldap/config目录拷贝配置文件:
    cp config.php.example config.php
    访问:http://localhost/ldap
    用户名:cn=ys,dc=bj,dc=name,dc=com
    或:
    rpm -ivh ldap-account-manager-2.6.0-0.fedora.1.noarch.rpm
    进入/var/www/html/lam/config目录拷贝配置文件:
    cp config.cfg_sample config.cfg
    cp lam.conf_sample ldapserver1.conf
    cp lam.conf_sample ldapsuser1.conf
    chown -R apache.apache *
    编辑ldapserver1.conf和ldapuser1.conf,改写里面的用户名和DC

    httpd通过ldap验证:

    yum install mod_authz_ldap
    编辑/etc/httpd/conf.d/authz_ldap.conf配置文件:
    将以下内容设置在IfModule里:
    <Directory "/var/www/html/">
    AuthzLDAPMethod ldap
    AuthzLDAPServer 192.168.0.17
    AuthzLDAPUserBase ou=People,dc=bj,dc=name,dc=com
    AuthzLDAPUserKey uid
    AuthzLDAPUserScope base
    AuthType basic
    AuthName "ldap@example.com"
    require valid-user
    </Directory>
    重启apache服务

  • 相关阅读:
    iOS- 网络访问JSON数据类型与XML数据类型的实现思路及它们之间的区别
    iOS- AVSpeechSynthesizer——iOS7语音合成器
    iOS- 利用AFNetworking(AFN)
    iOS- 利用AFNetworking(AFN)
    iOS- NSThread/NSOperation/GCD 三种多线程技术的对比及实现
    iOS- 多线程技术的概述及优点
    150. Best Time to Buy and Sell Stock II【medium】
    213. String Compression【easy】
    495. Implement Stack【easy】
    547. Intersection of Two Arrays【easy】
  • 原文地址:https://www.cnblogs.com/super-sos/p/8906556.html
Copyright © 2020-2023  润新知