【1】 LDAP简介
           LDAP(Lightweight Directory Access Protocol) 代表轻量级目录访问协议
           LDAP 是一种非关系型数据库
           LDAP 可扩展性和灵活性良好 安装和配置简单

【2】 几个重要的概念
           dn :    一条记录的位置
           dc :    一条记录的所属区域
           ou :    一条记录的所属组织
           cn/uid: 一条记录的名字/ID

【3】 LDAP数据添充原理
           把一个庞大的学生档案放到LDAP里 具体步骤: 
          1】 建立一个"dc=ourschool,dc=org“的树根" 通过编辑"slapd.conf"来实现
          2】 建立18个系分别是
                 dnu=computer,dc=ourschool,dc=org
                 dnu=film,dc=ourschool,dc=org
                 ...
         3】 在每个系建立专业 如
                dnu=Linux,ou=computer,dc=ourschool,dc=org
                 ... 
         4】 加学生
                dn:cn=xiaoming,ou=linux,ou=computer,dc=ourschool,dc=org
         5】 学生的详细信息
                dn:cn=xiaoming,ou=linux,ou=computer,dc=ourschool,dc=org
                objectClass: organizationalPerson
                cn:xiaoming
                cn:小明
                sn:小明
                description:a good boy
                (以上是一条记录的信息,如果把他保存成LDIF文件,可以导入到LDAP数据库中)
 
【4】 搭建LDAP认证服务器 
        1】 安装服务器软件
               yum -y install openldap openldap-servers
        2】 编译服务器端配置文件(acl 与ldap配合,实现访问控制)
               vim /etc/openldap/slapd.conf
               access to *
                             by * read
                             by * auth
               access to *
                             by self write

              database        bdb
              suffix          "dc=example,dc=com"
              rootdn          "cn=admin,dc=example,dc=com"
              rootpw          123456 

              # Mode 700 recommended.  (默认LDAP存放数据的目录 权限:700)
             directory    /var/lib/ldap
  
        3】利用脚本创建OU,并初始化LDAPS
            a】 vim /usr/usr/share/openldap/migration/migrate_common.ph
                   71:$DEFAULT_MAIL_DOMAIN = "example.com";
                   74:$DEFAULT_BASE = "dc=example,dc=com";
            b】 /usr/share/openldap/migration/migrate_base.pl   > /tmp/example.ldif
            c】 删掉 example.ldif 中多余的选项 (空行不能省略)
                  cat /tmp/example.ldif
       dn: dc=example,dc=com
       dc: example
       objectClass: top
       objectClass: domain


       dn: ou=People,dc=example,dc=com
       ou: People
       objectClass: top
       objectClass: organizationalUnit


       dn: ou=Group,dc=example,dc=com
       ou: Group
       objectClass: top
       objectClass: organizationalUnit

           d】创建并初始化
                 slapadd -vl /tmp/example.ldif
                 生成信息:    
       bdb_db_open: Warning - No DB_CONFIG file found in directory
       /var/lib/ldap: (2)
       Expect poor performance for suffix dc=uplooking,dc=com.
       added: "dc=example,dc=com" (00000001)
       added: "ou=People,dc=example,dc=com" (00000002)
       added: "ou=Group,dc=example,dc=com" (00000003)
 
          e】 解决上步警告
                 cp /etc/openldap/DB_CONFIG.example  /var/lib/ldap/DB_CONFIG
  
      4】 启动LDAP服务
          a】 chown -R ldap  /var/lib/ldap  
                 若不改权限 启动失败
          b】 service ldap start
                  或
                 /etc/init.d/ldap start
          c】 netstat -tunlp  | grep :389
                 验证 服务监听389端口
  
      5】 安装图形管理程序 phpldapadmin
           a】yum -y install httpd php php-ldap
           b】 service httpd restart
           c】 tar zxvf phpldapadmin-1.2.0.4.tgz -C /var/www/html/
           d】 cd /var/www/html/phpldapadmin-1.2.0.4
           e】 vim config/config.php.example config/config.php
            f】 firefox http://localhost/phpldapadmin-1.2.0.4.tgz

           g】 输入用户名 密码登录

                 cn=admin,dc=example,dc=com
                 123456
      6】 以上为LDAP服务器的通用配置

【5】 实现具体功能,用户的非本地验证登录
        1】服务器端利用脚本创建用户文件,并用phpldapadmin导入
             a】for i in {1..50};do useradd user$i ; echo user$i | passwd --stdin user$i;done
             b】 grep ^user /etc/passwd > /tmp/user
                    grep ^user /etc/group  > /tmp/group
             c】 /usr/share/openldap/migration/migrate_passwd.pl  /tmp/user  > /tmp/user.ldif
                    /usr/share/openldap/migration/migrate_group.pl  /tmp/group > /tmp/group.ldif  
             d】 for i in { 1..50 }; do userdel user$i ;done
             e】 导入/tmp/user.ldif 和 /tmp/group.ldif
  
        2】服务器端(192.168.1.221)利用nfs共享用户家目录
             a】 vim /etc/exports
                    /home  *(rw,sync)

             b】 service nfs restart


        3】客户端配置网络验证
            a】 authconfig-tui
                  选上使用ldap和使用ldap验证 配置ldap服务器
            b】 grep ldap /etc/pam.d/system-auth
                  
                   auth        sufficient    pam_ldap.so use_first_pass
                   account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
                   password    sufficient    pam_ldap.so use_authtok
                   session     optional      pam_ldap.so

                    以上是 system-auth文件多出来的内容
                    tail -n 3 /etc/openldap/ldap.conf
      
                   URI ldap://192.168.1.221/
                   BASE dc=example,dc=com
                   TLS_CACERTDIR /etc/openldap/cacerts

                    以上是openldap客户端配置文件 新增内容
   
             c】 rpm -q openldap-clients
                    查看是否安装openldap客户端 若未安装,请安装
 
            d】 配置触发挂载家目录
                  vim /etc/auto.master
                  /home /etc/auto.home
                  vim /etc/auto.home
                  *   -rw   192.168.1.221:/home/&
            e】 service autofs restart
    
             f】 测试成功
       
【6】 开启网络验证后,客户端登录时,优先使用本地/etc/passwd /etc/shadow文件验证,还是优先使用ldap
           grep ldap /etc/nsswitch.conf -n
  36:passwd:      ldap  files 
  37:shadow:      ldap  files 
  38:group:       ldap  files 
 
  由 36 37 38 三行的ldap与files顺序决定



















GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐