CentOS6.4 安装ldap

参考http://kinggoo.com/openldapinstallconf.htm

参考http://linux.it.net.cn/CentOS/server/set/2014/1203/9510.html

参考http://407711169.blog.51cto.com/6616996/1439944

参考http://linuxadmin.blog.51cto.com/2683824/1615515

参考http://ljl2013.blog.51cto.com/186072/1344531

openvpn+ldap  http://oldboy.blog.51cto.com/2561410/986933

LDAP是什么

LDAP是一个用来发布目录信息到许多不同资源的协议。通常它都作为一个集中的地址本使用,不过根据组织者的需要,它可以做得更加强大。

  LDAP最基本的形式是一个连接数据库的标准方式。该数据库为读查询作了优化。因此它可以很快地得到查询结果,不过在其它方面,例如更新,就慢得多。要特别注意的是,LDAP通常作为一个hierarchal数据库使用,而不是一个关系数据库。因此,它的结构用树来表示比用表格好。正因为这样,就不能用SQL语句了。

  简单说来,LDAP是一个得到关于人或者资源的集中、静态数据的快速方式。

LDAP是轻量目录访问协议(Lightweight Directory Access Protocol)的缩写,其实是一话号码簿,类似于我们所使用诸如NIS(Network Information Service)、DNS (Domain Name Service)等网络目录,也类似于你在花园中所看到的树木。

LDAP是一种特殊的数据库。但是LDAP和一般的数据库不同,明白这一点是很重要的。 LDAP对查询进行了优化,与写性能相比LDAP的读性能要优秀很多。

1.1 LDAP的存储规则

区分名(DN,Distinguished Name)

和自然界中的树不同,文件系统/LDAP/电话号码簿目录的每一片枝叶都至少有一个独一无二的属性,这一属性可以帮助我们来区别这些枝叶。

在文件系统中, 这些独一无二的属性就是带有完整路径的文件名。比如/etc/passwd,该文件名在该路径下是独一无二的。当然我们可以有/usr/passwd, /opt/passwd,但是根据它们的完整路径,它们仍然是唯一的。

在LDAP中,一个条目的区分名称叫做“dn”或者叫做区分名。在一个目录中这个名称总是唯一的。比如,我的dn是"uid=aghaffar, ou=People, o=developer.ch"。不可能有相同的dn,但是我们可以有诸如"uid=aghaffar, ou=Administrators, o=developer.ch"的dn。这同上面文件系统中/etc/passwd 和 /usr/passwd的例子很类似。

我们有独一无二的属性,在"ou=Administrators, o=developer.ch" 中uid和在"ou=People, o=developer.ch"中的uid。这并不矛盾。

CN=Common Name 为用户名或服务器名,最长可以到80个字符,可以为中文;

OU=Organization Unit为组织单元,最多可以有四级,每级最长32个字符,可以为中文;

O=Organization 为组织名,可以3—64个字符长

C=Country为国家名,可选,为2个字符长

LDAP目录以一系列“属性对”的形式来存储记录项,每一个记录项包括属性类型和属性值(这与关系型数据库用行和列来存取数据有根本的不同)。

mail = [email protected]

othermailbox = [email protected]

givenname = givenname

sn = test sn

属性可添加,以下一个属性必须赋值:

objectclass=person (值为:person 或 server 或 organization 或 其他自定义的值)

安装LDAP服务

[[email protected] ~]# yum install openldap-* -y

#拷贝配置文件
[[email protected] ~]# cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/
[[email protected] ~]# cd /etc/openldap/
[[email protected] openldap]# cp slapd.conf.obsolete slapd.conf

#创建LDAP管理员密码
[[email protected] openldap]# slappasswd 
New password:                     #密码是weyee2014
Re-enter new password: 
{SSHA}3JbjjtzkRtGIh8dOZK43Bv6Cjydiab91

编辑配置文件

[[email protected] ~]# vim /etc/openldap/slapd.conf
database monitor
access to *
         by dn.exact="cn=admin,dc=dev,dc=com" read    #修改这里
         by * none
database        bdb
suffix          "dc=dev,dc=com"        #修改自己的域名
checkpoint      1024 15
rootdn          "cn=admin,dc=dev,dc=com"        #修改自己的域名和管理员用户
# Cleartext passwords, especially for the rootdn, should
# be avoided.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
# rootpw                secret
# rootpw                {crypt}ijFYNcSNctBYg
rootpw                  {SSHA}3JbjjtzkRtGIh8dOZK43Bv6Cjydiab91    #设置密码

拷贝DB_CONFIG文件到指定目录

[[email protected] ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

删除默认/etc/openldap/slapd.d下面的所有内容

[[email protected] ~]# rm -rf /etc/openldap/slapd.d/*
[[email protected] ~]# chown -R ldap.ldap /etc/openldap

启动服务

[[email protected] ~]# service slapd start
Starting slapd:                                            [  OK  ]
[[email protected] ~]# ps aux |grep slap
ldap      1819  0.0  0.9 489740  9576 ?        Ssl  15:41   0:00 /usr/sbin/slapd -h  ldap:/// ldapi:/// -u ldap
root      1830  0.0  0.0 103244   832 pts/0    S+   15:42   0:00 grep slap
[[email protected] ~]# chkconfig slapd on
[[email protected] ~]# chown -R ldap.ldap /var/lib/ldap/
[[email protected] ~]# chown -R ldap.ldap /etc/openldap/

测试并生成配置文件

[[email protected] ~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
config file testing succeeded        #测试成功

创建一个账号,以备客户端测试登陆

[[email protected] ~]# useradd ldapuser1
[[email protected] ~]# passwd ldapuser1
Changing password for user ldapuser1.
New password: 
Retype new password:             #设置密码为weyee2014
passwd: all authentication tokens updated successfully.

至此,这些用户仅仅是系统上存在的用户(存储在/etc/passwd和/etc/shadow上),并没有在LDAP数据库里,所以要把这些用户导入到LDAP里面去。但LDAP只能识别特定格式的文件 即后缀为ldif的文件(也是文本文件),所以不能直接使用/etc/passwd和/etc/shadow。 需要migrationtools这个工具把这两个文件转变成LDAP能识别的文件。

安装配置migrationtools

[[email protected] ~]# yum install migrationtools -y

编辑migrationtool的配置文件/usr/share/migrationtools/migrate_common.ph

[[email protected] ~]# vim /usr/share/migrationtools/migrate_common.ph 
#大概在第70行
# Default DNS domain        
$DEFAULT_MAIL_DOMAIN = "dev.com";

# Default base 
$DEFAULT_BASE = "dc=dev,dc=com";        #修改成和上文一样的域名

下面利用pl脚本将/etc/passwd 和/etc/shadow生成LDAP能读懂的文件格式,保存在/tmp/下

[[email protected] ~]# /usr/share/migrationtools/migrate_base.pl >/tmp/base.ldif
[[email protected] ~]# /usr/share/migrationtools/migrate_passwd.pl /etc/passwd >/tmp/passwd.ldif
[[email protected] ~]# /usr/share/migrationtools/migrate_passwd.pl /etc/group >/tmp/group.ldif

下面就要把这三个文件导入到LDAP,这样LDAP的数据库里就有了我们想要的用户

#导入base
[[email protected] ~]# ldapadd -x -D "cn=admin,dc=dev,dc=com" -W -f /tmp/base.ldif 
Enter LDAP Password:         #密码是上文中设置的weyee2014
adding new entry "dc=dev,dc=com"

adding new entry "ou=Hosts,dc=dev,dc=com"

adding new entry "ou=Rpc,dc=dev,dc=com"

adding new entry "ou=Services,dc=dev,dc=com"

adding new entry "nisMapName=netgroup.byuser,dc=dev,dc=com"

adding new entry "ou=Mounts,dc=dev,dc=com"

adding new entry "ou=Networks,dc=dev,dc=com"

adding new entry "ou=People,dc=dev,dc=com"

adding new entry "ou=Group,dc=dev,dc=com"

adding new entry "ou=Netgroup,dc=dev,dc=com"

adding new entry "ou=Protocols,dc=dev,dc=com"

adding new entry "ou=Aliases,dc=dev,dc=com"

adding new entry "nisMapName=netgroup.byhost,dc=dev,dc=com"

#导入passwd
[[email protected] ~]# ldapadd -x -D "cn=admin,dc=dev,dc=com" -W -f /tmp/passwd.ldif 
Enter LDAP Password: 
adding new entry "uid=root,ou=People,dc=dev,dc=com"

adding new entry "uid=bin,ou=People,dc=dev,dc=com"

adding new entry "uid=daemon,ou=People,dc=dev,dc=com"

adding new entry "uid=adm,ou=People,dc=dev,dc=com"

adding new entry "uid=lp,ou=People,dc=dev,dc=com"

adding new entry "uid=sync,ou=People,dc=dev,dc=com"

adding new entry "uid=shutdown,ou=People,dc=dev,dc=com"

adding new entry "uid=halt,ou=People,dc=dev,dc=com"

adding new entry "uid=mail,ou=People,dc=dev,dc=com"

adding new entry "uid=uucp,ou=People,dc=dev,dc=com"

adding new entry "uid=operator,ou=People,dc=dev,dc=com"

adding new entry "uid=games,ou=People,dc=dev,dc=com"

adding new entry "uid=gopher,ou=People,dc=dev,dc=com"

adding new entry "uid=ftp,ou=People,dc=dev,dc=com"

adding new entry "uid=nobody,ou=People,dc=dev,dc=com"

adding new entry "uid=dbus,ou=People,dc=dev,dc=com"

adding new entry "uid=vcsa,ou=People,dc=dev,dc=com"

adding new entry "uid=abrt,ou=People,dc=dev,dc=com"

adding new entry "uid=haldaemon,ou=People,dc=dev,dc=com"

adding new entry "uid=ntp,ou=People,dc=dev,dc=com"

adding new entry "uid=saslauth,ou=People,dc=dev,dc=com"

adding new entry "uid=postfix,ou=People,dc=dev,dc=com"

adding new entry "uid=sshd,ou=People,dc=dev,dc=com"

adding new entry "uid=tcpdump,ou=People,dc=dev,dc=com"

adding new entry "uid=mysql,ou=People,dc=dev,dc=com"

adding new entry "uid=ldap,ou=People,dc=dev,dc=com"

adding new entry "uid=ldapuser1,ou=People,dc=dev,dc=com"

#导入group
[[email protected] ~]# ldapadd -x -D "cn=admin,dc=dev,dc=com" -W -f /tmp/group.ldif
时间: 2024-10-25 19:48:03

CentOS6.4 安装ldap的相关文章

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

原文地址:http://54im.com/openldap/centos-6-yum-install-openldap-phpldapadmin-tls-%E5%8F%8C%E4%B8%BB%E9%85%8D%E7%BD%AE.html 钿畑的文章索引 1.概念介绍 2. 环境介绍 2. 准备工作 3. yum部署ldap 4. phpldapadmin安装 5.ldap客户端配置 6.用户目录自动挂载 6.1 服务器端配置 6.2 客户端配置 7.配置TLS传输加密 8.配置openldap双

Gitlab完美安装【CentOS6.5安装gitlab-6.9.2】

摘要: 拆腾了几天,终于在今天找到了快速安装Gitlab的方法.CentOS6.5安装gitlab-6.9.2 参考网址:https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md#installation 安装gitlab版:6.9.2rpm发行文件名:gitlab-6.9.2_omnibus.1-1.el6.x86_64.rpm 安装步骤代码:#sudo yum install openssh-server#sudo

CentOS6.5 安装gitlab以及gitolite迁移gitlab

CentOS6.5 安装gitlab以及gitolite迁移gitlab gitlab 的安装使用以及数据结构 安装 环境: CentOS6.5 基于 nignx + unicorn 搭建的应用环境, 如果想要换成passenger,可以参考网上的文档 ruby环境是基于rbenv搭建的 1: install vim yum install -y vim 2: install git > 1.7.10 install git $ rpm -i 'http://pkgs.repoforge.org

如何在CentOS6上安装Python2.7和Python3.3

原文来自http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos/,个人觉得对在linux安装新版本Python是很有参考意义,因而转载,原文是英文的,本人简单翻译下,大家看懂即可,有不妥的地方请留言. 如何在CentOS 6上同时安装Python 2.7和Python 3.3 本文将介绍如何在CentOS 6上安装Python 2.7和3.3.下面以Python 2.7.6和Python 3.3.5为例进行说明,但本人实

centos6.5安装docker

centos6.5 安装docker 防伪码:吃的苦中苦,方为人上人! 前言:在当今的主流社会中,docker和openstatick是一大主流方向,下面为大家讲解理论知识和实际操作现实中的docker! 理论知识: 相信大家都知道docker是什么?那在这里就不多说了! Docker 基于 Go 语言开发,代码托管在Github上,并遵循Apache 2.0 开源协议. docker的专业叫法是应用容器(Application Container). 为什么要使用docker? 1 .快速交付

CentOS6.5 安装+ Tengine + PHP + MySQL

centos6.5安装+Tengine+php+mysql

Centos6.4 安装fail2ban防暴力破解

Centos6.4 安装fail2ban防暴力破解 一. 安装 curl -O https://codeload.github.com/fail2ban/fail2ban/tar.gz/0.9.0 mv 0.9.0 0.9.0.tar.gz tar zxvf 0.9.0.tar.gz cd fail2ban-0.9.0/ python setup.py build python setup.py install 二.配置(防ssh暴力) vi /etc/fail2ban/jail.conf [s

CentOS-6.5安装配置JDK-7

安装说明 系统环境:centos-6.5 安装方式:rpm安装 软件:jdk-7-linux-x64.rpm 下载地址:http://www.oracle.com/technetwork/java/javase/downloads/java-se-jdk-7-download-432154.html 注:rpm,gz文件区别 初接解Linux的朋友一定对软件的安装特别头疼,同样都是for Linux,但RPM.tar.gz.DEB包还是有很大区别的,这种区别很有可能使你的安装过程进行不下去.那我

centos6.5安装和配置cobbler

Cobbler介绍 Cobbler 是一个系统启动服务(boot server),可以通过网络启动(PXE)的方式用来快速安装.重装物理服务器和虚拟机,支持安装不同的 Linux 发行版和 Windows.该工具使用python开发,小巧轻便(才15k行代码),使用简单的命令即可完成PXE网络安装环境的配置,同时还可以管理 DHCP,DNS,以及yum包镜像. Cobbler 使用命令行方式管理,也提供了基于 Web 的界面管理工具(cobbler-web),还提供了API接口,可以方便二次开发