zoukankan      html  css  js  c++  java
  • Linux LDAP Server--->Clients配置

    Linux Ldap Configuration

    LDAP Server

    Base Software & SysTem Info

    SysTem Info

    系统版本:centos 6.4 

    LDAP Server Machine:10.90.10.222 (此IP为机器的实际IP,自己配置时根据实际情况而定)
    LDAP Clients Machine:10.90.20.245 (此IP为机器的实际IP,自己配置时根据实际情况而定)
    LDAP Client Machine N...... (其余N多的client机器不一一列举,完成一个client配置后,其他机器Clone整个过程即可)

    Base Software

    安装 LDAP 服务 安装 LDAP 服务依赖 配置 LDAP 服务

    • 安装 LDAP
    1.安装服务以及依赖
    yum -y install openldap*
    2.配置LDAP 服务器主机名,更改 hosts 文件
    例如:ldap.example.com
    • 配置 LDAP
    查看生成的文件进行配置
        [root@ldap ~]# ls -l /etc/openldap/slapd.d/
        drwx------ 3 ldap ldap 4096 1月  23 01:13 cn=config
        -rw------- 1 ldap ldap 1281 1月  23 00:48 cn=config.ldif
    配置
        [root@ldap cn=config]# pwd
        /etc/openldap/slapd.d/cn=config
        #vim olcDatabase={2}bdb.ldif
        olcSuffix: dc=example,dc=com (更改此处的 dc=example 为自己的配置)
        olcRootDN: cn=Manager,dc=example,dc=com (同上,此处为管理用户)
        olcRootPW: {SSHA}UgmkHyFXb+qUqvlJoPBfeqQ+5af4smGW(添加此行 为 LDAP 管理者的密码用 slappasswd生成加密的密码)
        olcTLSCertificateFile: /etc/pki/tls/certs/example.pem(添加 LDAP 服务器的 认证)
        olcTLSCertificateKeyFile: /etc/pki/tls/certs/examplekey.pem(同上)
        #vim olcDatabase={1}monitor.ldif
        dn.base="cn=Manager,dc=my-domain,dc=com" (此处更改 manager 为 Manager)
        #copy 配置文件,更改此文件的权限
        cp -rvf /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
        chown -R ldap:ldap  /var/lib/ldap/DB_CONFIG
        updatedb     (命令用来创建或更新slocate命令所必需的数据库文件)
        #配置系统开启 ldap
        vim /etc/sysconfig/ldap
        SLAPD_LDAPS=yes (此项更改为 yes)
    生成证书
        生成证书
        openssl req -x509 -nodes -out /etc/pki/tls/certs/example.pem -keyout /etc/pki/tls/certs/examplekey.pem -days 365
        更改证书权限
        chown -R root:ldap /etc/pki/tls/certs/example*
    启动 LDAP
        service slapd restart
        chkconfig slapd on
    共享 LDAP 服务器生成的 pem 文件 使用 vsftpd 服务和 httpd 服务
        1.install vsftpd httpd
            yum -y install vsftpd httpd
        2.copy pem To vsftpd pub
            cp -rvf /etc/pki/tls/certs/example.pem /var/ftp/pub/
        3. restart vsftpd and chkconfig on
            service vsftpd rsetart
            chkconfig vsftpd on
        4.共享 example.pem 通过 httpd 服务
            ln -s /var/ftp/pub/ /var/www/html/
        5.启动 httpd
            service httpd restart 
            chkconfig httpd on
    安装migrationtools 工具进行 LDAP 的文件转换
        yum -y install migrationtools
    
        #使用 prel 脚本进行文件的转换
        cd /usr/share/migrationtools
    
        #更改脚本是符合之前所做的更改
        vim migrate_common.ph
        $NAMINGCONTEXT{'group'}             = "ou=Groups" (跟上边对应)
        $DEFAULT_MAIL_DOMAIN = "example.com"; (更改自己的域名)
        $DEFAULT_BASE = "dc=example,dc=com"; (更改成自己的域)
        $EXTENDED_SCHEMA = 1; (更改为1 支持更广泛的对象类)
    
        #初始化数据
        ./migrate_base.pl  > /root/base.ldif (生成的结果存成 ldap 专有的文件类型)
    
        #创建 LDAP 用户
        mkdir /home/guests (创建用户宿主目录)
        useradd -d /home/guests/ldapuser1 ldapuser1
        useradd -d /home/guests/ldapuser1 ldapuser2
        useradd -d /home/guests/ldapuser1 ldapuser3
        useradd -d /home/guests/ldapuser1 ldapuser4
        useradd -d /home/guests/ldapuser1 ldapuser5
        #为所创建的用户创建密码
        passwd ldapuser1
        .........
    
        getent passwd (用来察看系统数据库的getent命令)
        #将新建立的账户.密码.组导出
    
        getent passwd | tail -n 5 > /root/users
    
        getent shadow | tail -n 5 > /root/passwords
    
        getent group | tail -n 5 > /root/groups
    
        #更改脚本 188行为         
        open(SHADOW, "/root/passwords") || return;
    
        #进行文件转换
    
        ./migrate_passwd.pl /root/users > /root/users.ldif
    
        ./migrate_group.pl /root/groups > /root/groups.ldif
    
        #将转换过后的用户和组文件 添加到 LDAP 服务器中
    
        ldapadd -x -W -D “cn=Manager,dc=example,dc=com” -f /root/base.ldif (首先导入基本文件) 
    输入 Ldap server 的密码:
        ldapadd -x -W -D “cn=Manager,dc=example,dc=com” -f /root/users.ldif
    输入 Ldap server 的密码:
        ldapadd -x -W -D “cn=Manager,dc=example,dc=com” -f /root/groups.ldif
    输入 Ldap server 的密码:
    
    #产看导入后 LDAP 的数据
    ldapsearch -x -b “dc=example,dc=com” | less

    --------------------------LDAP Server Configuration End--------------------------

    LDAP Server Action

    1.添加 LDAP 用户首先添加LDAP Server 系统组,用户
        groupadd gitlab
        useradd -d /home/guests/zhangsan -g gitlab zhangsan
        useradd -d /home/guests/lisi -g gitlab lisi
        
        passwd zhangsan
        passwd lisi
    2.将新建了用户导出
        getent passwd | tail -n 3 > /root/newuser
        getent shadow | tail -n 3 > /root/newpassword
        getent group | tail -n 1 > /root/newgroup
    3.更改脚本进行用户添加
        cd /usr/share/migrationtools/
        vim migrate_passwd.pl 
        188         open(SHADOW, "/root/newpassword") || return; (更改此处换成新建立用户导出的密码)
    4.导出 ldap 识别的文件
        cd /usr/share/migrationtools/
        ./migrate_passwd.pl /root/newuser > /root/newuser.ldif
        ./migrate_group.pl /root/newgroup > /root/newgroup.ldif
    5.向 LDAP 添加用户
        ldapadd -x -W -D "cn=Manager,dc=example,dc=com" -f /root/newuser.ldif
        ldapadd -x -W -D "cn=Manager,dc=example,dc=com" -f /root/newgroup.ldif
        ldapsearch -x -b "dc=example,dc=com" | less (查看添加成功否)
        

    LDAP Clients

    依赖安装

        yum -y install openldap-clients nss-pam-ldapd

    配置客户端使用 LDAP

    vim /etc/openldap/ldap.conf
    BASE    dc=example,dc=com (替换成自己的域)
    URI     ldap://ldap.example.com ldap://ldap-master.example.com:666 (替换成自己的 URL)
    * TLS_CACERTDIR   http://ldap.example.com/pub/example.pem (此处需要注意由于是使用 httpd 服务将认证文件 example.pem 共享出来的 所以要添加自己的 URL 去读取 pem)
    
    
    vim /etc/nslcd.conf
    #更改文件末尾 uri 为自己的 地址
    131 uri ldap://ldap.example.com/
    132 base dc=example,dc=com
    62 tls_cacertdir http://ldap.example.com/pub/example.pem (更改为自己共享的认证地址)
    vim /etc/pam_ldap.conf 
    20 base dc=example,dc=com (更改成自己的域)
    25 uri ldap://ldap.example.com/ (更改成自己的 ldap 服务器地址)
    267 tls_cacertdir http://ldap.example.com/pub/example.pem (更改成自己的认证发布地址)
    
    
    vim /etc/pam.d/system-auth
    13 account     [default=bad success=ok user_unknown=ignore] pam_ldap.so (添加认证模块)
    18 password    sufficient    pam_ldap.so use_authtok (添加认证模块)
    25 session     optional      pam_ldap.so (添加认证模块) 
    
    
    vim /etc/nsswitch.conf 
    
    33 passwd:     files ldap (添加 ldap)
    34 shadow:     files ldap
    35 group:      files ldap
    57 netgroup:   ldap (更改此项为 ldap)
    61 automount:  files ldap (更改为 ldap)
    
    vim /etc/sysconfig/authconfig 
    
    21 USELDAP=yes

    验证客户端使用 LDAP 登陆

    [root@gitlab ~]# getent  passwd ldapuser1
    ldapuser1:x:500:500:ldapuser1:/home/guests/ldapuser1:/bin/bash
    [root@gitlab ~]# su - ldapuser1
    su: 警告:无法切换到目录/home/guests/ldapuser1: 没有那个文件或目录
        ###此处报出客户端可以读取到 ldap 服务器的用户 但是无法使用 LDAP 用户登录
    因为: LDAP 虽然把用户已经管理起来但是没有给他登录的目录
    所以:此处不能使用 LDAP 用户登录

    配置 LDAP 共享用户目录 使用 NFS 进行共享 客户端使用 autofs 进行挂载配置

    1.登录到 LDAP Server 服务器进行目录共享
        LDAP Server# yum -y install nfs
    
        #vim /etc/exports
        /home/guests    *(rw,sync)
    
        # service nfs restart
        # chkconfig nfs on
    2.客户端配置 autofs 进行挂载 共享的目录
        yum -y install autofs
    
        #配置自动挂在读取配置文件
        [root@gitlab ~]# vim /etc/auto.master 
        /home/guests    /etc/auto.guests (添加此行)
    
        [root@gitlab ~]# vim /etc/auto.guests (创建此文件)
        *       ldap.example.com:/home/guests/&
    
        重启 autofs
        service autofs restart
        chkconfig autofs on
    
        [root@gitlab ~]# su - ldapuser1
        [ldapuser1@gitlab ~]$

    ------------------------------LDAP Clients Configuration End------------------------------

  • 相关阅读:
    java异常处理
    java基础知识和面试
    mysql 坐标查询计算距离
    TypeScript设计模式之工厂
    TypeScript设计模式之单例、建造者、原型
    从C#到TypeScript
    从C#到TypeScript
    【译】Nodejs最好的ORM
    【开源】NodeJS仿WebApi路由
    从C#到TypeScript
  • 原文地址:https://www.cnblogs.com/edwardlogs/p/5158212.html
Copyright © 2011-2022 走看看