zoukankan      html  css  js  c++  java
  • LDAP-openldap服务部署和测试(YUM安装)

    1. 概述

    本篇博客主要记录如何部署一台LDAP服务器,用于在内网集群节点中,进行全局用户认证。

    注:有关LDAP的理论部分,参见博客《LDAP协议详解.md》

    本篇博客主要的部署环境为:CentOS6.5_x86_64部署openldap,通过YUM安装相关环境。

    2. 服务端部署过程

    2.1 软件包说明

    软件包软件包说明
    openldap服务端和客户端必须用的库文件
    openldap-clients在LDAP服务端使用,用户增删改查的命令行环境
    openldap-servers用于启动服务和配置,包括单独的LDAP后台守护进程
    openldap-servers-sql支持SQL模块
    compat-openldapopenldap兼容性库环境

    2.2 部署过程

    虚拟机console,通过执行命令:rpm -qa | grep openldap,查看是否已经安装openldap的软件包:

    openldap-clients-2.4.23-32.el6_4.1.x86_64
    openldap-2.4.23-32.el6_4.1.x86_64
    openldap-servers-2.4.23-32.el6_4.1.x86_64

    若没有上述软件包,执行命令:yum -y install openldap openldap-clients openldap-servers
    此过程会同时安装依赖软件包:libtool-ltdl,portserver软件包

    2.3 配置过程

    1. 复制配置文件模板,到系统配置目录下
      cp -a /usr/share/openldap-servers/sldap.conf.obsolete /etc/openldap/slapd.conf
    2. 删除旧的动态配置文件
      rm -rf /etc/openldap/sladp.d/*
    3. 复制数据库配置文件模板,到系统配置目录下
      cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
    4. 修改数据库配置文件所在目录属主
      chown -R ldap.ldap /var/lib/ldap
    5. 生成加密密钥
      虚拟机console执行命令:slappasswd
      提示New password:输入liwanliang
      提示Re-enter new password,输入liwanliang
      将生成的内容:{SSHA}SdorCU0SF/bBERBdPtkSVdWv94Hc826r,复制保存下来
    6. 修改主配置文件,修改内容如下:
      有关openldap的配置详解,参见博客《LDAP-openldap配置文件详解.md》

      database config
      access to *
          by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" manage
          by * none
      database monitor
      access to *
      by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read
          by dn.exact="cn=Manager,dc=liwanliang,dc=com" read
          by * none
      database bdb
      suffix "dc=liwanliang,dc=com"
      checkpoint 1024 15
      rootdn "cn=Manager,dc=liwanliang,dc=com"
      rootpw {SSHA}SdorCU0SF/bBERBdPtkSVdWv94Hc826r
    7. 修改相关目录属性
      虚拟机console执行命令:chown -R ldap.ldap /etc/openldapchown -R ldap.ldap /var/lib/ldap

    8. 删除旧的动态配置文件
      虚拟机console执行命令:rm -rf /etc/openldap/slapd.d/*
    9. 启动服务并设置开机启动
      虚拟机console执行命令:service slapd start && chkconfilg slpad on
      查看是否启动服务:service slapd statusnetstat -tupln|grep slapd
    10. 动态配置文件
      openldap的动态配置文件位于/etc/openldap/slapd.d/下,每次修改了主配置文件/etc/openldap/slapd.conf之后,都需要重新生成动态配置文件,即:
      删除动态配置文件:rm -rf /etc/openldap/slapd.d/*
      重新生成动态配置文件:slaptest -f /etc/openldap/slapd.conf -f /etc/openldap/slapd.d
      修改动态配置目录属性:chown -R ldap.ldap /etc/openldap/slapd.d/

    3. 测试

    上述过程已经部署好了openldap并启动了服务,这仅是第一步,openldap有没有工作,还需要进一步验证和测试。
    虚拟机console执行命令:ldapsearch -x -LLL;如果这个命令报错:【No suce object(32)】,则需要修改配置文件/etc/openldap/ldap.conf
    修改内容如下:

    BASE dc=liwanliang,dc=com
    URI ldap://192.168.80.8
    TLS_CACERTDIR /etc/openldap/certs

    上过过程说明已经基本完成了openldap的部署和测试,可以投入使用

    4. 生成LDIF格式文件

    往openldap数据库存放数据,有多种方式:1. 手动编辑;2. 用工具生成
    手动编辑这里不介绍。工具生成指的是用migrationtools脚本来产生ldif文件

    4.1 安装migrationtools工具

    虚拟机console执行命令:rpm -qa | grep migrationtools,查看系统是否已经安装migrationtools
    若没有安装,执行命令:yum -y installl migrationtools,进行工具安装
    安装完成之后,进入目录/usr/share/migrationtools,修改文件migrate_common.ph,将以下两行修改为:

    4.2 用migrationtools生成ldif文件

    这里是希望用openldap来实现用户认证,因此需要把系统中存在的user和group产生ldif,添加到ldap的数据库中。
    虚拟机console执行命令:
    /usr/share/migrationtools /migrate_base.pl > base.ldif
    /usr/share/migrationtools/migrate_passwd.pl /etc/passwd > passwd.ldif
    /usr/share/migrationtools/migrate_group.pl /etc/group > group.ldif

    4.3 添加ldif到ldap数据库

    上面过程,已经将用户认证时需要的文件/etc/passwd和/etc/group生成ldif文件。
    改用ldap验证时,就需要将这几个文件添加到ldap数据库中。
    虚拟机console执行命令:
    ldapadd -x -D "cn=Manager,dc=liwanliang,dc=com' -c -W -f base.ldif
    ldapadd -x -D "cn=Manager,dc=liwanliang,dc=com" -c -W -f passwd.ldif
    ldapadd -x -D "cn=Manager,dc=liwanliang,dc=com" -c -W -f group.ldif
    提示输入密码时,输入liwanliang,回车

    5. 日志配置

    5.1 openldap的日志级别

    虚拟机console执行命令:slapd -d ?,能够看到以下内容:

    各参数说明如下:

    Any开启所有的函数调用
    Trace跟踪Trace函数调用
    Rackets与函数包处理相关的信息
    Args全面的debug信息
    Conns链接数管理的相关信息
    BER记录包发送和接收的信息
    Filter记录过滤处理的过程
    Config记录配置文件的相关信息
    ACL记录访问控制列表的相关信息
    Stats记录链接,操作系统以及统计信息
    Stats2记录向客户端响应的统计信息
    Shell记录与shell后端通信信息
    Parse记录条目的分析结果信息
    Sync记录数据同步资源消耗信息
    None不记录信息

    5.2 配置日志功能

    1. 修改主配置文件/etc/openldap/slapd.conf,最后一行添加:loglever -1
    2. 虚拟机console执行命令:mkdir -p /var/log/slapd && chown -R ldap.ldap /var/log/sladp
    3. 修改系统日志配置文件,使其重定向日志到ldap日志目录,vim /etc/rsyslog.conf,最后一行添加以下内容:
      local4. * /var/log/slapd/slapd.log
    4. 利用Logrotate自动切割日志
      进入目录/etc/logrotate.d,创建文件ldap,添加以下内容:

      /var/log/slapd/slapd.log {
          prerotate
             /usr/bin/chattr    -a    /var/log/slapd/slapd.log
          endscript
          compress
          delaycompress
          notifempty
          rotate    100
          size    10M
          postroatte
              /usr/bin/chattr    +a    /var/log/slapd/slapd.log
          endsript
      }
    5. 重启日志服务并观察
      虚拟机console执行命令:service rsyslogd restart
      观察日志文件是否更新:tail -f /var/log/slapd/slapd.log

    6. 客户端配置

    这里的客户端端不是指ldap命令行客户端,而是需要通过LDAP服务器验证的客户端节点。
    本篇博客已经部署了KVM虚拟机node11,在node11上配置采用用户采用LDAP验证。

    6.1 基础环境准备

    关闭sssd进程,并安装nslcd进程

    注:有关NSS,NSCD,NSLCD,SSSD服务的区别,参见包括《》

    虚拟机console执行命令:rpm -qa | grep nss-pam-ldapd,查看系统是否已经安装客户端
    若未安装,执行命令:yum -y install nss-pam-ldapd进行安装

    6.2 配置nslcd客户端

    1. 修改nslcd.conf配置文件,vim /etc/nslcd.conf,文末添加内容如下:

      uri ldap://192.168.80.8/
      base dc=liwanliang,dc=com
      ssl no
      tls_cacertdir /etc/openldap/certs
    2. 修改pam_ldap.conf配置文件,vim /etc/pam_ldap.conf,文末添加内容如下:

      uri ldap://192.168.80.8
      ssl no
      tls_cacertdir /etc/openldap/certs
      bind_policy soft
    3. 修改系统认证的PAM配置,vim /etc/pam.d/system-auth,修改内容如下:

    4. 修改名字服务NSS配置文件,vim /etc/nssiwch.conf,修改部分如下:

      passwd:      files     ldap
      shadow:     files     ldap
      group:      files     ldap
    5. 修改系统认证方式配置文件,vim /etc/sysconfig/authconfig,修改部分内容如下:

      USESHADOW=yes    //启用密码验证
      USELDAPAUTH=yes    //启用openldap验证
      USELOCAUTHORIZE=yes    //启用本地验证
      USELDAP=yes        //启用LDAP认证协议
    6. 启动nslcd服务进程
      虚拟机console执行命令:service iptables stop && setenforce 0,即关闭防火墙和selinux
      启动服务,并设置开机启动:service nslcd start && chkconfig nslcd on
    7. 客户端验证
      在虚拟机node11上,执行命令:id liwl01,如果获取到liwl01的用户信息,则说明配置成功

    7. 添加系统用户

    在今后的实践过程中,会存在添加系统进程用户的需求,比如部署Nagios时,需要添加nagios和nagioscmd用户;
    部署slurm任务调度系统时,需要添加munge和slurmadmim用户等。
    这里就需要利用migrationtools来实现往LDAP服务器中添加用户,然后实现全局认证即可。具体过程如下:

    7.1 添加用户

    这里添加用户liwl02
    在虚拟机console中执行命令:useradd -u 501 liwl02
    给liwl02添加密码:passwd liwl02,输入密码两次完成密码添加

    7.2 产生ldif文件

    因为已经生成了base.ldif文件,此次添加用户,不再需要生成base.ldif文件
    虚拟机console执行命令:
    migrate_passwd.pl /etc/passwd > passwd.ldif,该命令创建passwd.ldif
    migrate_group.pl /etc/group > group.ldif,该命令创建group.ldif
    编辑passwd.ldif,只保留以下部分内容,其余删除:

    dn: uid=liwl02,ou=People,dc=liwanliang,dc=com
    uid: liwl02
    cn: liwl02
    objectClass: account
    objectClass: posixAccount
    objectClass: top
    objectClass: shadowAccount
    userPassword: {crypt}$6$VKwyR9xY$GmXIUT9zJqE5/foaPKwgoDPfXS8XnkG1WcqjHoNBmLcMUvbyrOV6BVLXEmc6K140BM9r4fHAL33ZxSzWiZ8c//
    shadowLastChange: 17699
    shadowMin: 0
    shadowMax: 99999
    shadowWarning: 7
    loginShell: /bin/bash
    uidNumber: 501
    gidNumber: 501

    编辑group.ldif,只保留以下部分,其余删除:

    dn: cn=liwl02,ou=Group,dc=liwanliang,dc=com
    objectClass: posixGroup
    objectClass: top
    cn: liwl02
    userPassword: {crypt}x
    gidNumber: 501

    7.3 添加ldif文件至LDAP数据库中

    虚拟机console执行命令, 添加两个文件中新加的内容:
    ldapadd -x -D "cn=Manager,dc=liwanliang,dc=com" -c -W -f passwd.ldif
    ldapadd -x -D "cn=Manager,dc=liwanliang,dc=com" -c -W -f group.ldif
    输入密码liwanliang即可添加进入

    7.4 验证

    在虚拟机node11上,通过执行命令id liwl02验证是否添加成功

  • 相关阅读:
    网页Tab控件
    ivy在eclipse中的重新加载
    es删除文档或者删除索引
    es修改数据
    es中插入数据
    创建es索引-格式化和非格式化
    MySQL常用字符串函数
    python各种类型转换
    python 3.4读取输入参数
    python异常捕获异常堆栈输出
  • 原文地址:https://www.cnblogs.com/liwanliangblog/p/9991499.html
Copyright © 2011-2022 走看看