LDAP 的安装配置(centos)

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" 可以指定启动端口

转载于:https://my.oschina.net/ashnah/blog/845499

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值