文档章节

LDAP 的安装配置(centos)

a
 ashnah
发布于 2017/02/24 14:09
字数 1787
阅读 529
收藏 0

Centos6系统中LDAP配置

服务器:

安装

yum  install  openldap  openldap-servers  openldap-clients

安装后,把模板文件拷贝到配置文件目录并改名

cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf

执行slappasswd命令,生成密码(此处输入的为123)

slappasswd
New password: 
Re-enter new password: 
{SSHA}ChrYrSofelqU6wrzpPmj/qOWzyh2inDx

编辑配置文件/etc/openldap/slapd.conf

......
include		/etc/openldap/schema/cosine.schema
include		/etc/openldap/schema/core.schema   //include 中包含所需的SCHEMA
......
suffix		"dc=highgo,dc=com" 
rootdn		"cn=Manager,dc=highgo,dc=com" 
rootpw		{SSHA}ChrYrSofelqU6wrzpPmj/qOWzyh2inDx 	//填写slappasswd生成的密码

拷贝数据文件:

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

测试配置文件并生成配置数据slapd.d(slapd.d是真正读取配置的地方,当修改了配置文件时,需要重新生成slapd.d)

root权限执行slaptest:
slapd
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d 
config file testing succeeded

修改修改配置文件和数据目录的权限:(数据目录/var/lib/ldap/在配置文件slapd.conf的directory处)

chown –R ldap /etc/openldap/*
chown –R ldap /var/lib/ldap/*  

启动服务

service slapd start

建立root.ldif文件,用以添加rootdn

dn:dc= highgo,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: highgo

dn:cn=Manager,dc= highgo,dc=com
objectclass:organizationalRole

添加rootdn:

ldapadd -x -D "cn=Manager,dc= highgo,dc=com" -w 123 -f root.dif

确认rootd已经添加:

ldapsearch -x -D "cn=Manager,dc= highgo,dc=com" -w 123 -b "dc= highgo,dc=com"
结果:
# highgo.com
dn: dc=highgo,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: highgo
dc: highgo

# Manager, highgo.com
dn: cn=Manager,dc=highgo,dc=com
objectClass: organizationalRole
cn: Manager

TSL连接配置:

生成ssl数字证书并签名。

若有签名的ssl证书,则只需要把证书拷贝到相应目录下,并在配置文件中写明路径即可。

若没有,可以使用以下步骤生成自签名的证书:

cd /etc/pki/CA
(1)生成根秘钥:
openssl genrsa -out private/cakey.pem 2048

(2)生成自签名的根证书:
openssl req -new -x509 -key private/cakey.pem -out cacert.pem

(3)初始化CA:
mkdir private newcerts
# touch newcerts index.txt serial
# echo "00" > serial
(4)创建cacerts文件夹
cd  /etc/openldap/
mkdir cacerts

(5)生成ldap服务器的秘钥和证书
cd  /etc/openldap/cacerts
生成服务器的私钥
openssl genrsa -out server.key
为ldap生成证书签署请求(所填内容与根证书相同)
openssl req -new -key server.key -out server.csr
ca根据请求签发证书,得到.crt证书文件
openssl ca -in server.csr -out server.crt

拷贝证书到ldap配置目录 并设置权限

cp /etc/pki/CA/cacert.pem /etc/openldap/cacerts

chown -R ldap /etc/openldap/cacerts/server.crt
chmod 644 /etc/openldap/cacerts/server.crt
chown -R ldap /etc/openldap/cacerts/server.key
chmod 400 /etc/openldap/cacerts/server.key

chown -R ldap /etc/openldap/cacerts/cacert.pem
chmod 644 /etc/openldap/cacerts/cacert.pem

配置/etc/openldap/slapd.conf

在 OpenLDAP 服务器上,将以下内容添加到 /etc/openldap/slapd.conf 文件的 global 
段下面。TLSCertificateFile 和 TLSCertificateKeyFile 指定了证书文件和私钥文件的路径

TLSCACertificatePath     /etc/openldap/cacerts/cacert.pem
TLSCertificateFile      /etc/openldap/cacerts/server.crt
TLSCertificateKeyFile   /etc/openldap/cacerts/server.key

编辑/etc/sysconfig/ldap,开启加密支持

vim /etc/sysconfig/ldap
    SLAPD_LDAPS=yes

重新生成slapd.d目录

rm -rf slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap /etc/openldap/slapd.d

重启LDAP服务

service slapd restart

通过命令netstat -ntulp |grep slapd可以看到389(普通连接)端口和636(加密端口都已经启动)

netstat -ntulp |grep slapd
tcp        0      0 0.0.0.0:636                 0.0.0.0:*                   LISTEN      4550/slapd          
tcp        0      0 0.0.0.0:389                 0.0.0.0:*                   LISTEN      4550/slapd          
tcp        0      0 :::636                      :::*                        LISTEN      4550/slapd          
tcp        0      0 :::389                      :::*                        LISTEN      4550/slapd       

关闭防火墙

iptables -F
iptables -X

 

可能出现的问题:

ldap_bind: Invalid credentials (49)    提示密码不正确

解决方案:

参考 http://www.linuxfly.org/post/671/
清空slapd.d:
rm -rf /etc/openldap/slapd.d/*
重新生成slapd.d	
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d	
修改权限	
chown -R ldap.ldap slapd.d/	
	
重新拷贝 DB_CONFIG	
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG	
	
重启	
service slapd restart

客户端:

安装

yum install -y openldap-clients

编辑配置文件 /etc/openldap/ldap.conf 以支持TSL传输

加入以下内容:

TLS_REQCERT  never 
ssl start_tls
tls_checkpeer yes
#TLS_CACERTDIR   /etc/openldap/cacerts
#tls_cacertfile /etc/openldap/cacerts/cacert.pem

Centos7系统中的LDAP配置

服务器

安装

yum  install  openldap  openldap-servers  openldap-clients

执行slappasswd命令,生成密码(此处输入的为123)

slappasswd
New password: 
Re-enter new password: 
{SSHA}ChrYrSofelqU6wrzpPmj/qOWzyh2inDx

centos7系统中LDAP没有配置文件slapd.conf,所以需要以下的设置:

vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
修改如下内容:
olcSuffix: dc=highgo,dc=com
olcRootDN: cn=Manager,dc=highgo,dc=com
olcRootPW: {SSHA}ChrYrSofelqU6wrzpPmj/qOWzyh2inDx

vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
修改olcAccess的dn.base 内容与上面的rootdn一样
olcAccess: {0}to * by dn.base="cn=Manager,dc=highgo,dc=com" read by * none

vim  /etc/openldap/slapd.d/cn\=config.ldif
添加如下内容:
olcAllows: bind_v2

拷贝数据文件 并 权限

cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown -R ldap.ldap /var/lib/ldap

测试配置文件:

slaptest -u
56e7c83d ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
56e7c83d ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
config file testing succeeded

启动

service slapd start

导入要使用的SCHEMA

cd /etc/openldap/schema/
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f core.ldif//一般默认有

建立root.ldif文件并添加rootdn(与Centos6相同)

vim root.ldif
添加如下内容
dn:dc= highgo,dc=com
objectClass: top
objectClass: dcObject
objectClass: organization
o: highgo

dn:cn=Manager,dc= highgo,dc=com
objectclass:organizationalRole
ldapadd -x -D "cn=Manager,dc= highgo,dc=com" -w 123 -f root.dif

TSL连接配置

生成ssl数字证书并签名。

若有签名的ssl证书,则只需要把证书拷贝到相应目录下,并在配置文件中写明路径即可。

若没有,可以使用以下步骤生成自签名的证书:(与Centos6相同)

cd /etc/pki/CA
(1)生成根秘钥:
openssl genrsa -out private/cakey.pem 2048

(2)生成自签名的根证书:
openssl req -new -x509 -key private/cakey.pem -out cacert.pem

(3)初始化CA:
mkdir private newcerts
# touch newcerts index.txt serial
# echo "00" > serial
(4)创建cacerts文件夹
cd  /etc/openldap/
mkdir cacerts

(5)生成ldap服务器的秘钥和证书
cd  /etc/openldap/cacerts
生成服务器的私钥
openssl genrsa -out server.key
为ldap生成证书签署请求(所填内容与根证书相同)
openssl req -new -key server.key -out server.csr
ca根据请求签发证书,得到.crt证书文件
openssl ca -in server.csr -out server.crt

配置证书路径

vim  /etc/openldap/slapd.d/cn=config.ldif
olcTLSCACertificatePath: /etc/openldap/cacerts/cacert.pem
olcTLSCertificateFile: /etc/openldap/cacerts/server.crt
olcTLSCertificateKeyFile: /etc/openldap/cacerts/server.key

开启系统加密支持

vim /etc/sysconfig/slapd
SLAPD_URLS="ldapi:/// ldap:/// ldaps:///"

测试配置文件(同centos6)

slaptest -u
56e7c83d ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif"
56e7c83d ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif"
config file testing succeeded

重启

service slapd restart

关闭防火墙

iptables -F
iptables -X

客户端

配置与centos相同

安装

yum install -y openldap-clients

编辑配置文件 /etc/openldap/ldap.conf 以支持TSL传输

加入以下内容:

TLS_REQCERT  never 
ssl start_tls
tls_checkpeer yes
#TLS_CACERTDIR   /etc/openldap/cacerts
#tls_cacertfile /etc/openldap/cacerts/cacert.pem

 

 

补充:

-H指定url和端口:
ldapsearch -D "cn=Manager,dc=example,dc=com" -w 123 -b "dc=example,dc=com" -H ldaps://192.168.10.35:636
ldapsearch -D "cn=Manager,dc=example,dc=com" -w 123 -b "dc=example,dc=com" -H ldap://192.168.10.35:389  
TSL加密连接:url前缀为ldaps,端口为636
普通连接:url前缀为ldap,端口为389

-h -p指定url和端口
ldapsearch -x -D "cn=Manager,dc=example,dc=com" -w 123 -h 192.168.10.35 -p 389
ldapsearch -x -D "cn=Manager,dc=example,dc=com" -w 123 -h 192.168.10.35 -p 636 不好用
ldapsearch -x -D "cn=Manager,dc=example,dc=com" -w 123 -h ldaps://192.168.10.35 -p 636  OK
-h直接指定ip只能用普通连接,TSL无法连接(默认前缀为ldap)
TSL连接时,需要在-h指定前缀ldaps

slapd -h "ldap://:666 ldaps://:777" 可以指定启动端口

© 著作权归作者所有

a
粉丝 7
博文 9
码字总数 12555
作品 0
济南
私信 提问
在CentOS 7 / RHEL 7配置OpenLDAP服务

OpenLDAP是OpenLDAP项目开发的轻量级目录访问协议的开源实现。LDAP是一种Internet协议,电子邮件和其他程序用于从服务器查找联系人信息。它是在OpenLDAP公共许可下发布的; 它适用于所有主要的...

898009427
2018/07/24
0
0
统一用户登录管理认证LDAP 客户端部署

1、环境: 操作系统:CentOS release 6.8 (Final) ip:192.168.31.155 操作系统:CentOS Linux release 7.2.1511 (Core) ip:192.168.31.156 2、操作过程: 客户端配置文件 2.1、CentOS5 /et...

027ryan
2017/10/24
0
0
centos 单机部署 LDAP 服务

安装: Centos使用yum安装LDAP很简单: yum -y install openldap openldap-servers openldap-clients openldap-devel (centos已经安装了openldap包,这里全部重装一下. ) 配置: 主配置文件 /etc...

求学ing
2015/11/24
335
0
Linux加入windows AD域

linux加入域中,一般都会想到加入LDAP中,这样管理起来方便,不过在linux下LDAP配置起来可不是很容易的,在企业办公环境中一般windows AD域占据霸主地位,配置方便嘛,针对生产环境的linux集...

China_OS
2013/12/07
12.4K
0
Squid配置LDAP认证

我在Centos 6.6上部署了Squid 3.5.5,现在的问题是,我想用LDAP认证,但找不到squid_ldap_auth这个程序文件 Configure文件是这样配置的 如Configure所示,我的Squid是安装在/usr/local/squi...

Merdark
2015/06/17
1K
1

没有更多内容

加载失败,请刷新页面

加载更多

Spring Security 自定义登录认证(二)

一、前言 本篇文章将讲述Spring Security自定义登录认证校验用户名、密码,自定义密码加密方式,以及在前后端分离的情况下认证失败或成功处理返回json格式数据 温馨小提示:Spring Security...

郑清
18分钟前
1
0
php yield关键字以及协程的实现

php的yield是在php5.5版本就出来了,而在初级php界却很少有人提起,我就说说个人对php yield的理解 Iterator接口 在php中,除了数组,对象可以被foreach遍历之外,还有另外一种特殊对象,也就是继承...

冻结not
31分钟前
1
0
servlet请求和响应的过程

本文转载于:专业的前端网站➥servlet请求和响应的过程 1.加载 Servlet类被加载到Java虚拟机中,并且实例化。在这个过程中,web容器(例如tomcat)会调用Servlet类的公开无参构造函数,产生一...

前端老手
31分钟前
2
0
golang 1.13 errors 包来了,不用写“err 气功波”代码

引 这篇是对 errors 包 的姿势挖掘 气功波错误代码 从 http.Get()返回的错误 判断 syscall.ECONNREFUSED 错误.以前要对 go 标准库 error 结构有点熟悉,才能写出下面的代码 func CmdErr(err ...

guonaihong
35分钟前
23
0
喜玛拉雅已听书单

时间倒序排 书名 作者 状态 唐砖 孑与2 进行中 死灵之书(克苏鲁神话合集) 阿卜杜拉·阿尔哈萨德 进行中 赡养人类 刘慈欣 完结 赡养上帝 刘慈欣 完结 中国太阳 刘慈欣 完结 中国太阳 刘慈欣...

Alex_Java
36分钟前
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部