Stay hungry Stay foolish

Open LDAP部署步骤

Posted on By blue

目录



Open LDAP部署步骤

1、LDAP介绍

LDAP是指“Lightweight Directory Access Protocol(轻量目录访问协议)”

目录是一个特殊的数据库,它的数据经常被查询,但是不经常更新。不像普通的数据库,目录不包括对事件(transaction)的支持也不包括回滚特性。目录是很容易被复制的,以便增加它的可用性和可靠性。当目录被复制时,临时的数据不一致情况是允许出现的,只要最终这些数据得到同步即可。

LDAP可以实现的功能有:

  • 公钥基础设施
  • 共享日历
  • 共享地址簿
  • 存储DHCP,DNS,……
  • 系统级的配置管理(跟踪多台服务器的配置)
  • 集中认证 (PosixAccount)

2、服务端安装

2.1、安装前检查

关闭防火墙:

service iptables stop
chkconfig iptables off

关闭selinux:

//临时生效
setenforce 0

//永久生效
vim /etc/selinux/config
SELINUX=disabled

2.2、服务端安装

$ yum install -y openldap openldap-servers openldap-clients

2.3、修改配置

拷贝LDAP配置文件

$ cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
$ cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
$ vim /etc/sysconfig/ldap    #确保SLAPD_LDAP和SLAPD_LDAPI=yes

重置密码

$ slappasswd
New password: root
Re-enter new password: 
{SSHA}ClVhg38c85aUMKvTF0vYP8+k9UwrraTS

编辑LDAP服务主配置文件

$ vim /etc/openldap/slapd.conf
 
#日志输出
loglevel 256  	

#设置目录树的后缀
找到by dn.exact="cn=Manager,dc=my-domain,dc=com" read这一行
改为by dn.exact="cn=admin,dc=navinfo,dc=com" read
 
找到suffix "dc=my-domain,dc=com"这一行
改为suffix "dc=douyu,dc=com"
 
#设置LDAP管理员的DN(这里管理员的名字是admin)
找到rootdn "cn=Manager,dc=my-domain,dc=com"这一行
改为rootdn "cn=root,dc=douyu,dc=com"
 
#设置LDAP管理员的密码
将rootpw secret改为 {SSHA}pfAJm+JJa4ec2y8GjTc8uMEJpoR5YKMn
口令也可以用明文,或者通过运行slappasswd以便替换配置文件里面的密码
 
#同时请确保有如下两行
pidfile /var/run/openldap/slapd.pid  
argsfile /var/run/openldap/slapd.args

配置日志输出

vim /etc/rsyslog.conf

#添加如下内容
#save ldap log
local4.* /var/log/slapd/sldap.log

mkdir /var/log/slapd 
#修改权限
chown ldap:ldap /var/log/slapd/

#重启日志服务
service rsyslog restart

修改权限

#备份/etc/openldap/slapd.d目录
$ cp -rfa /etc/openldap/slapd.d /etc/openldap/slapd.d.bak  
$ rm -rf /etc/openldap/slapd.d/*
 
#分配权限
$ chown -R ldap.ldap /etc/openldap
$ chown -R ldap.ldap /var/lib/ldap
 
$ service slapd start  #启动下服务,用来生成/var/lib/ldap/*.bdb文件
 
#测试并生成配置文件
$ slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
$ chown -R ldap:ldap /etc/openldap/slapd.d
 
#重启服务
$ service slapd restart && chkconfig --level 2345 slapd on

验证是否启动成功

ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts

如果执行命令,成功返回搜索结果,表示ldap启动成功。

2.4、导入系统用户

系统上的用户信息存储在/etc/passwd和/etc/shadow上,并没有在LDAP数据库里,所以要把这些用户导入到LDAP里面去。但LDAP只能识别后缀为ldif的文件(也是文本文件),故不能直接使用/etc/passwd和/etc/shadow。

可以使用migrationtools这个工具把这两个文件转变成ldif文件。

$ yum install migrationtools -y
$ cd /usr/share/migrationtools/
 
$ vim migrate_common.ph    
将DEFAULT_MAIL_DOMAIN的值修改为douyu.com
将DEFAULT_BASE的值修改为dc=douyu,dc=com
 
#使用迁移脚本migrate_base.pl为目录创建基本的数据结构
$ ./migrate_base.pl > /tmp/base.ldif
 
#将/etc/passwd和/etc/shadow生成LDAP能读懂的文件格式,保存在/tmp/下
$ ./migrate_passwd.pl /etc/passwd > /tmp/passwd.ldif
$ ./migrate_group.pl /etc/group > /tmp/group.ldif
 
#把这三个ldif文件导入到LDAP,然后LDAP的数据库里就有了我们想要的用户
$ ldapadd -x -D "cn=admin,dc=navinfo,dc=com" -W -f /tmp/base.ldif
$ ldapadd -x -D "cn=admin,dc=navinfo,dc=com" -W -f /tmp/passwd.ldif
$ ldapadd -x -D "cn=admin,dc=navinfo,dc=com" -W -f /tmp/group.ldif
 
#查看数据库中基本的层次结构
$ ldapsearch -x -H ldap://127.0.0.1 -b 'dc=navinfo,dc=com'
 
$ service slapd restart

3、客户端安装

3.1、安装前检查

关闭防火墙:

service iptables stop
chkconfig iptables off

关闭selinux:

//临时生效
setenforce 0

//永久生效
vim /etc/selinux/config
SELINUX=disabled

3.2、客户端安装

yum install -y openldap  openldap-clients -y

修改配置文件:

vi /etc/openldap/ldap.conf

#修改为server上的信息
BASE	dc=douyu,dc=com
URI	ldap://serverHostName:389/

验证连接情况:

ldapsearch -x -LLL

如果执行命令,成功返回搜索结果,表示ldap启动成功。

4、图形管理界面安装

进入Apache Directory: http://directory.apache.org/studio/ 下载安装即可。

安装完成后,添加连接信息,即可实现图形化管理LDAP

5、说明

服务端守护进程

  • slapd:主 LDAP 服务器
  • slurpd:负责与复制 LDAP 服务器保持同步的服务器

客户端没有守护进程,可以执行以下命令

  • ldapadd:打开一个到 LDAP 服务器的连接,绑定、修改或增加条目
  • ldapsearch:打开一个到 LDAP 服务器的连接,绑定并使用指定的参数进行搜索
  • 对本地系统上的数据库进行操作的几个程序:
  • slapadd:将以 LDAP 目录交换格式(LDIF文件)指定的条目添加到 LDAP 数据库中
  • slapcat:打开 LDAP 数据库,并将对应的条目输出为 LDIF 文件格式

LDAP相关的简称如下

  • dn – distinguished name(专有名称,区别名,主键),一条记录的位置
  • o – organization(组织-公司)
  • ou – organization unit(组织单元-部门),一条记录的所属组织
  • c – countryName(国家)
  • dc – domainComponent(域名组件),一条记录的所属区域
  • sn – sure name(真实名称)
  • cn – common name(常用名称),一条记录的名字/ID

6、参考资料

LDAP服务器的概念和原理简单介绍 :http://seanlook.com/2015/01/15/openldap_introduction/

OpenLDAP(2.4.3x)服务器搭建及配置说明 :http://seanlook.com/2015/01/21/openldap-install-guide-ssl/