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-openldap openldap兼容性库环境

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验证是否添加成功

LDAP-openldap服务部署和测试(YUM安装)的更多相关文章

  1. Munge服务部署和测试

    1. 概述2. 下载3. 安装3.1 源码简要说明3.2 编译安装3.3 配置3.4 创建munge.key3.5 启动方式 1. 概述 munge是认证服务,用于生成和验证证书.应用于大规模的HPC ...

  2. 部署LNMP环境——Yum安装(113资讯网)

    Yum安装优点:安装东西,方便快捷,特别是不用考虑包依赖 教程(Centos做演示,其他系统大同小异): 1.更换国内Yum源: [root@root xx ]# rm -rf /etc/yum.re ...

  3. NTP服务部署和测试

    1. 概述2. 部署3. 配置4. 客户端配置4.1 客户端安装ntpdate4.2 同步设置 1. 概述 本篇博客主要记录如何部署一台NTP服务器,用于内网时间同步. 时间服务器对于集群内部节点之间 ...

  4. 使用Salt-ssh部署Salt-minion之yum安装(一)

    一.RPM安装篇 使用salt-ssh功能要求客户端系统python版本2.6+ 1.salt-minion端环境: 系统:CentOS 6.5 64bit python版本:2.6.6 2.配置/e ...

  5. MySQL数据库服务器(YUM)安装

    1. 概述2. 部署过程2.1 虚拟机console的NFS服务端配置2.2 虚拟机node15的NFS客户端配置2.3 虚拟机安装MySQL环境2.4 配置MySQL3. 错误及解决3.1 启动失败 ...

  6. OpenStack入门篇(九)之nova服务(控制节点)的部署与测试

    1.Nova介绍 Nova是openstack最早的两块模块之一,另一个是对象存储swift.在openstack体系中一个叫做计算节点,一个叫做控制节点.这个主要和nova相关,我们把安装为计算节点 ...

  7. Slurm任务调度系统部署和测试(源码)(1)

    1. 概述1.1 节点信息2. 节点准备3. 部署NTP服务器4. 部署LDAP服务器5. 部署Munge认证服务6. 部署Mysql数据库服务7. 部署slurm7.1 创建slurm用户7.2 挂 ...

  8. nginx服务部署 说明

    第1章 常用的软件 1.1 常用来提供静态服务的软件   Apache :这是中小型Web服务的主流,Web服务器中的老大哥,   Nginx :大型网站Web服务的主流,曾经Web服务器中的初生牛犊 ...

  9. Centos6 yum安装openldap+phpldapadmin+TLS+双主配置

    原文地址:http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%8 ...

随机推荐

  1. mac上Android环境变量配置

    1.AndroidSDK路径查看 (1)AndroidStudio: 菜单栏AndroidStudio > Preferences > Appearences&Behavior & ...

  2. MySQL重做日志相关

      Ⅰ.事务的实现 这里我们先抛出答案,通过答案再展开分析 特性 实现 A(原子性) redo C(一致性) undo I(隔离性) lock D(持久性) redo/undo 本节针对redo展开分 ...

  3. 为什么内核访问用户数据之前,要做access_ok?【转】

    linuxer 案例 比如内核的如下commit引入了一个严重的安全漏洞(编号CVE-2017-5123): 危害 一个攻击案例可以参考: freebuf <Linux内核Waitid系统调用本 ...

  4. Linux 小知识翻译 - 「小型移动式PC」

    这次介绍下新闻上提到的「小型移动式PC」.(这个当时日本新闻上的内容) 最近,经常在日本的大卖场中看到一种小型的移动式PC.不仅是小巧方便携带,而且价格也便宜.而且,省电功能的加入,使电池能工作更长的 ...

  5. jeDate 日期控件

    写在前面的话: 最近在做一个日期范围的功能,研究了一个12306网站的日期范围选择,他用的是jcalendar.js,没有直接在日历插件里面做判断开始时间小于结束时间 而是自己在代码里面做了判断如下: ...

  6. BZOJ3295:[CQOI2011]动态逆序对(CDQ分治)

    Description 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计 ...

  7. 在环中(Going in Cycle!!, UVa 11090)

    [题目描述] 给定一个 n 个点 m 条边的加权有向图,求平均权值最小的回路. [输入格式] 输入第一行为数据组数 T .每组数据第一行为图的点数 n 和边数 m (n ≤ 50).以下 m 行每行3 ...

  8. P1057 传球游戏

    题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏. 游戏规则是这样的: nnn 个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球 ...

  9. curl实例-通过新浪股票接口获取股票信息

    在学习curl的过程中,我们知道curl是相当于一个简单的浏览器,通过往对应的服务上面发送数据信息,返回服务器的响应结果,这个在Java里面主要是使用封装好的httpclient来进行操作,但是自己认 ...

  10. 判断MS SQLSERVER临时表是否存在

    drop table  #tempcitys select * into #tempcitys from hy_citys 上面的语句第一次运行的时候就肯定出错了,但第二次就不会.因为select * ...