yum安装openldap

系统环境信息
操作系统:CentOS release 6.7 基础的环境准备
iptables -F && /etc/init.d/iptables save
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config && setenforce )安装OpenLDAP的相关
yum -y install openldap openldap-servers openldap-clients openldap-devel compat-openldap #其中compat-openldap这个包与主从有很大的关系 安装完后,可以看到自动创建了ldap用户:
[root@base ~ ::&&]#cat /etc/passwd | grep ldap
ldap:x:::LDAP User:/var/lib/ldap:/sbin/nologin 可以通过rpm -qa |grep openldap查看安装了哪些包:
[root@base ~ ::&&]#rpm -qa | grep openldap
openldap-2.4.-.el6.x86_64
openldap-servers-2.4.-.el6.x86_64
compat-openldap-2.3.-.el6.x86_64
openldap-devel-2.4.-.el6.x86_64
openldap-clients-2.4.-.el6.x86_64 )OpenLDAP的相关配置文件信息
/etc/openldap/slapd.conf:OpenLDAP的主配置文件,记录根域信息,管理员名称,密码,日志,权限等
/etc/openldap/slapd.d/*:这下面是/etc/openldap/slapd.conf配置信息生成的文件,每修改一次配置信息,这里的东西就要重新生成
/etc/openldap/schema/*:OpenLDAP的schema存放的地方
/var/lib/ldap/*:OpenLDAP的数据文件
/usr/share/openldap-servers/slapd.conf.obsolete 模板配置文件
/usr/share/openldap-servers/DB_CONFIG.example 模板数据库配置文件 3) OpenLDAP监听的端口:
默认监听端口:389(明文数据传输)
加密监听端口:636(密文数据传输) 4)初始化OpenLDAP的配置
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf 5)修改配置文件
首先,slappasswd生成密文密码123456,拷贝这个到/etc/openldap/slapd.conf里
[root@base ~ 10:04:04&&12]#slappasswd
New password:
Re-enter new password:
{SSHA}6guCnCELUuh3+7DF9NmuA9CgO2uVEej+ 修改后的配置文件内容:红色字体的为修改的部分
[root@base /etc/openldap 10:08:35&&20]#cat /etc/openldap/slapd.conf
include /etc/openldap/schema/corba.schema
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/duaconf.schema
include /etc/openldap/schema/dyngroup.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/java.schema
include /etc/openldap/schema/misc.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/openldap.schema
include /etc/openldap/schema/ppolicy.schema
include /etc/openldap/schema/collective.schema
allow bind_v2
pidfile /var/run/openldap/slapd.pid
argsfile /var/run/openldap/slapd.args
TLSCACertificatePath /etc/openldap/certs
TLSCertificateFile "\"OpenLDAP Server\""
TLSCertificateKeyFile /etc/openldap/certs/password
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=admin,dc=puyi,dc=com" read
by * none
database bdb
suffix "dc=puyi,dc=com"
checkpoint 1024 15
rootdn "cn=admin,dc=puyi,dc=com"
rootpw {SSHA}6guCnCELUuh3+7DF9NmuA9CgO2uVEej+
directory /var/lib/ldap
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub 6)重新生成配置文件信息文件
先检测/etc/openldap/slapd.conf是否有错误:slaptest -f /etc/openldap/slapd.conf [root@base /etc/openldap 10:08:57&&21]#slaptest -f /etc/openldap/slapd.conf
5ad6a916 bdb_db_open: database "dc=puyi,dc=com": db_open(/var/lib/ldap/id2entry.bdb) failed: No such file or directory (2).
5ad6a916 backend_startup_one (type=bdb, suffix="dc=puyi,dc=com"): bi_db_open failed! (2)
slap_startup failed (test would succeed using the -u switch) 这里报错是因为在第三步后没有重新生成配置文件,启动slapd。而是直接修改配置文件去了。先启动slapd: [root@base /etc/openldap 10:10:30&&22]#/etc/init.d/slapd restart
Stopping slapd: [FAILED]
/var/lib/ldap/__db.001 is not owned by "ldap" [WARNING]
/var/lib/ldap/__db.002 is not owned by "ldap" [WARNING]
/var/lib/ldap/__db.006 is not owned by "ldap" [WARNING]
/var/lib/ldap/alock is not owned by "ldap" [WARNING]
/var/lib/ldap/__db.004 is not owned by "ldap" [WARNING]
/var/lib/ldap/__db.005 is not owned by "ldap" [WARNING]
/var/lib/ldap/__db.003 is not owned by "ldap" [WARNING]
Starting slapd: 这里又报错,这是因为没有给/var/lib/ldap授权,授权后chown -R ldap.ldap /var/lib/ldap/,再重启slapd,/etc/init.d/slapd restart,可以看到成功的 [root@base /etc/openldap 10:11:27&&23]#chown -R ldap.ldap /var/lib/ldap/
[root@base /etc/openldap 10:12:19&&24]#/etc/init.d/slapd restart
Stopping slapd: [FAILED]
Starting slapd: [ OK ] 接着回到检测/etc/openldap/slapd.conf是否有错误:slaptest -f /etc/openldap/slapd.conf
[root@base /etc/openldap 10:12:33&&25]#slaptest -f /etc/openldap/slapd.conf
config file testing succeeded 可以看到没问题,然后重新生成配置文件的配置信息:
先删除最先的配置文件生成的信息:rm -rf /etc/openldap/slapd.d/*
重新生成:slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
查看是否生成的是自己修改的配置文件信息:cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif [root@base /etc/openldap 10:13:03&&26]#rm -rf /etc/openldap/slapd.d/*
[root@base /etc/openldap 10:13:55&&27]#slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
config file testing succeeded
[root@base /etc/openldap 10:14:05&&28]#cat /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}bdb.ldif | grep puyi
olcSuffix: dc=puyi,dc=com
olcRootDN: cn=admin,dc=puyi,dc=com 授权:chown -R ldap.ldap /etc/openldap/slapd.d/
重启:/etc/init.d/slapd restart [root@base /etc/openldap 10:14:18&&29]#chown -R ldap.ldap /etc/openldap/slapd.d/
[root@base /etc/openldap 10:15:26&&30]#/etc/init.d/slapd restart
Stopping slapd: [ OK ]
Starting slapd: [ OK ]
7)创建1个管理员账号(此账号用来登陆phpldapadmin)  
编辑ldif文件  #注意与slapd.conf文件中保持一致,下面的命令同理,  
#本人曾在下面的ldapadd命令中将"admin"写成了"amdin",导致一直报" ldap_bind: Invalid credentials (49)"错(每次都是翻回上一条命令执行),排查了3个小时左右才发现。  
[root@localhost ~]# vim admin.ldif #此文件格式必须按照下面的格式编写,[开头不能有空格,中间有个空行]
dn: dc=puyi,dc=com  
objectclass: dcObject  
objectclass: organization  
o: Puyi.Inc  
dc: puyi

dn: cn=admin,dc=puyi,dc=com
  objectclass: organizationalRole 
  cn: admin

插入数据库  
[root@base /etc/openldap 10:39:51&&42]#ldapadd -x -D "cn=admin,dc=puyi,dc=com" -W -f admin.ldif  
Enter LDAP Password: #些密码就是用slappasswd生成的密码,slapd.conf配置文件里的那个。  
adding new entry "dc=puyi,dc=com"
adding new entry "cn=admin,dc=puyi,dc=com"

    到这里为止,OpenLDAP服务端基本上完成了,我们可以通过PhpLDAPAdmin来登录看一下,那先得安装PhpLDAPAdmin

PhpLDAPAdmin的搭建

)安装EPEL仓库,镜像里没有PhpLDAPAdmin这个的安装包,所以得安装EPEL仓库
wget -P /etc/yum.repos.d/ http://mirrors.aliyun.com/repo/epel-6.repo
yum clean all #清除YUM缓存,yum 会把下载的软件包和header存储在cache中,而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令进行清除,
   更精确 的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all一全部清除
yum makecache # 将服务器上的软件包信息 现在本地缓存,以提高 搜索 安装软件的速度
)安装PhpLDAPAdmin
yum install -y phpldapadmin )修改phpldapadmin的配置文件,访问控制权限vim /etc/httpd/conf.d/phpldapadmin.conf,允许谁访问
[root@base /etc/openldap ::&&]#cat /etc/httpd/conf.d/phpldapadmin.conf
Alias /phpldapadmin /usr/share/phpldapadmin/htdocs
Alias /ldapadmin /usr/share/phpldapadmin/htdocs <Directory /usr/share/phpldapadmin/htdocs>
<IfModule mod_authz_core.c>
# Apache 2.4
Require local
</IfModule>
<IfModule !mod_authz_core.c>
# Apache 2.2
Order Allow,Deny
Allow from all
#Deny from 127.0.0.1
#Deny from ::
</IfModule>
</Directory>
)修改配置文件:vim /etc/phpldapadmin/config.php
$servers->setValue('login','attr','dn'); 这一行的注释去掉
//$servers->setValue('login','attr','uid'); 这一行注释掉 )重启httpd服务
[root@base /etc/openldap ::&&]#/etc/init.d/httpd restart
Stopping httpd: [ OK ]
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.159.14 for ServerName
[ OK ]
)在浏览器输入OpenLDAP服务端的IP 10.0.0.138/ldapadmin 登陆:用户 cn=admin,dc=puyi,dc=com 密码:

OpenLDAP的打开日志信息

vim /etc/openldap/slapd.conf #加上loglevel -

这里修改了配置文件,所有得重新生成配置文件的信息
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/ 在 vim /etc/rsyslog.conf加上
local4.* /var/log/slapd/slapd.log 然后重启/etc/init.d/rsyslog restart 创建日志文件目录,授权
mkdir /var/log/slapd
chmod 755 /var/log/slapd/
chown ldap.ldap /var/log/slapd/ 重启slapd服务,/etc/init.d/slapd restart
就可以看到日志信息了cat /var/log/slapd/slapd.log

创建1个具有部门属性的员工

创建1个具有部门属性的员工

编辑ldif文件

#这里其实是先创建1个部门”yunwei”,再在”yunwei”部门创建了1个员工,实际上是两条命令
[root@localhost ~]# vim yunwei.ldif
dn: ou=yunwei,dc=puyi,dc=com
ou: yunwei
objectClass: organizationalUnit dn: cn=hxh,ou=yunwei,dc=puyi,dc=com
ou: yunwei
cn: hxh
sn: hui
objectClass: inetOrgPerson
objectClass: organizationalPerson 插入数据库(admin是管理员,必须用admin来创建)
[root@localhost ~]# ldapadd -x -D "cn=admin,dc=puyi,dc=com" -W -f yunwei.ldif 验证
ldapsearch -x -b 'dc=puyi,dc=com' '(objectClass=*)'

常见对象属性

LDAP为人员组织机构中常见的对象都设计了属性(比如commonName,surname)。下面有一些常用的别名:

属性名称

属性别名

语法

描述

值(举例)

commonName

cn

Directory String

名子

sean

surname

sn

Directory String

姓氏

Chow

organizationalUnitName

ou

Directory String

单位(部门)名称

IT_SECTION

organization

o

Directory String

组织(公司)名称

linuxprobe

telephoneNumber

 

Telephone Number

电话号码

911

objectClass

 

 

内置属性

organizationa

ldif文件示例

http://www.linuxidc.com/Linux/2017-10/147559.htm

ldap yum安装-centos6的更多相关文章

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

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

  2. centos6.5下yum安装lnmp(适合刚入职的新手的方法)

    新入职的员工,开始的时候都是让配环境,本地写代码用的wamp,在lnmp或lamp测试,除非有些土豪公司 用的是(果机). 另外安装时,把整个流程在脑子里先过一篇(记不全也没关系,一回生二回熟),重在 ...

  3. CentOS6.5 yum安装桌面环境

    安装原因 安装centos6.5时选择了minimal CentOS最小化安装方式 需要使用浏览器拨号连接内网 安装过程 通过yum grouplist查询在 group 软件包中,Desktop.D ...

  4. CentOS6.5 搭建基础PHP环境(yum安装)

    转载:闲来无事 » CentOS6.5 搭建基础PHP环境(yum安装) yum安装php环境只需要几条简单的命令就可以实现,OK,各位客官,菜来了.首先确保你的yum源可用,或者网络是通的,不然下载 ...

  5. CentOS6.8通过yum安装MySQL5.7

    Centos6.8通过yum安装mysql5.7 1.安装mysql的yum源 a.下载配置mysql的yum源的rpm包 根据上面3张图片中的操作下载下来的rpm文件可以通过如下命令获取: wget ...

  6. centos6环境下使用yum安装Ambari

    前言: Ambari是apache下面的开源项目,主要通过web UI方式对Hadoop集群进行统一创建和管理,以节省Hadoop集群的运维成本.本文通过安装过程中的截图简要介绍一下相关步骤供需要的朋 ...

  7. centos7和centos6通过yum安装JDK1.8

    centos7和centos6通过yum安装JDK1.8 查看JDK的安装路径# java -version============================查看Linux系统版本信息# cat ...

  8. Linux -- Centos6 yum安装相关问题与处理

    Centos6 yum安装相关问题与处理 由于要使用yum下载文件,突然yum下载不了想要的文件,想更换yum源,结果得重新安装yum 来自本人GitHub地址https://github.com/m ...

  9. centos6 yum 安装memcached

    centos6 yum 安装memcached - 像块石头 - 博客园http://www.cnblogs.com/rockee/archive/2012/08/01/2619160.html yu ...

随机推荐

  1. paper 163: opencv知识点回顾

    From Here: https://zhuanlan.zhihu.com/p/24425116 Python下使用OpenCV 本篇将介绍和深度学习数据处理阶段最相关的基础使用,并完成4个有趣实用的 ...

  2. Codeforces Round #578 (Div. 2) E. Compress Words (双哈希)

    题目:https://codeforc.es/contest/1200/problem/E 题意:给你n个单词,你需要把他合成成一个句子,相邻的两个单词,相邻部分相同的话可以把其中一个的删掉 思路:因 ...

  3. php关键字static使用

    php中static关键字使用: 情景1:静态变量 使用static关键字定义静态变量 静态变量:只存在于函数作用域内,也就是说,静态变量只存活在栈中.一般的函数内变量在函数结束后会释放,比如局部变量 ...

  4. zabbix4.0部署

    1.环境检查 uname -r getenforce systemctl status firewalld.service 2.设置解析,自建yum源(可选) /etc/hosts #!/bin/ba ...

  5. upc组队赛15 Supreme Number【打表】

    Supreme Number 题目链接 题目描述 A prime number (or a prime) is a natural number greater than 1 that cannot ...

  6. Selenium:多表单(frame/iframe)切换(Switch模块)

    frame标签有frameset.frame.iframe三种,frameset跟其他普通标签没有区别,不会影响到正常的定位,而frame与iframe需要切换进去才能定位到其中的元素 比如下面这个网 ...

  7. Git和Github操作

    个人笔记和总结.如有错误欢迎指出https://github.com/zhaozehua0312/leran-gitAndgithub 内容已发布github上

  8. Python里面search()和match()的区别?

    match()函数只检测RE是不是在string的开始位置匹配,search()会扫描整个string查找匹配, 也就是说match()只有在0位置匹配成功的话才有返回,如果不是开始位置匹配成功的话, ...

  9. Java中实现pdf在线查看和下载

    Java中实现PDF的在线查看和下载,可以以servlet来实现. /** * 支持在线打开和下载 * * @param filePath * @param response * @param isO ...

  10. Docker入门 .Net Core 使用Docker全程记录

    https://www.cnblogs.com/flame7/p/9210986.html Docker入门 第一课 --.Net Core 使用Docker全程记录   微服务架构无疑是当前最火热的 ...