Centos7 安装OpenLDAP 并开启TLS/SSL以及日志功能

前言

Centos7 上面安装的OpenLDAP版本为2.4.44,使用的数据库是BerkeleyDB 5.3.28.

一、BerkeleyDB数据安装

1.下载数据库

https://www.oracle.com/cn/database/technologies/berkeleydb.html

07

2.解压

01

tar zxvf db-5.3.28.tar.gz

3.进入到“build_unix”目录进行编译

02

../dist/configure --prefix=/usr/local/bdb

--prefix:数据库将来要安装的路径

03

make

4.安装

04

make install

查看目录是否有文件

05

二、OpenLDAP安装

1.下载(2.4.44)

https://www.openldap.org/software/download/OpenLDAP/openldap-release/

06

2.解压

08

tar -zxvf openldap-2.4.44.tgz

3.进入到“openldap-2.4.44”

09

4.查看开启TLS/SSL的参数

10

./configure --help | grep tls

注:默认是“--with-tls=auto”支持模式“openssl,gnutls,moznss”

5.我们使用openssl方式先编译一次看看有没有错误以及警告

12

./configure --with-tls=openssl CPPFLAGS="-I/usr/local/bdb/include" LDFLAGS="-L/usr/local/bdb/lib -Wl,-rpath,/usr/local/bdb/lib" --prefix=/usr/local/openldap | grep openssl

CPPFLAGS,LDFLAGS:路径为数据库路径

--PREFIX:OpenLDAP将来要安装的路径

注:如果出现警告以及错误我们安装相对应的依赖库就可以

13

查看openssl

yum list openssl*

安装openssl

yum -y install openssl*

11

安装ICU

yum -y install icu*

安装cyrus sasl

yum -y install cyrus sasl*

6.没有警告或者警告解决我们再次编译

14

 ./configure --with-tls=openssl CPPFLAGS="-I/usr/local/bdb/include" LDFLAGS="-L/usr/local/bdb/lib -Wl,-rpath,/usr/local/bdb/lib" --prefix=/usr/local/openldap 

15

执行“make depend”进行检查,执行完后看看有没有错误

16

发现“致命错误”我们安装依赖库

17

yum install -y *ltdl*

安装完再次执行“make depend”,发现没有错误了。我们进行边编译。

18

make

7.安装

19

make install

安装完进入文件夹进行查看

20

8.添加防火墙允许

firewall-cmd --add-service=ldap --permanent
firewall-cmd --zone=public --add-port=636/tcp --permanent
firewall-cmd --reload

三、证书配置

在OpenLDAP目录中创建ssl文件夹并进入

22

mkdir -p ssl
cd ssl

1.CA证书

生成CA根秘钥

#带上”-des3”参数时,创建的私钥采取Triple DES算法加密,命令执行后会要求输入密码,这样后续在调用此密钥时都会要求输入密码,如 “openssl genrsa -des3 -out ca-key.pem 2048”,这里为了方便省略此参数

23

openssl genrsa -out cakey.pem 2048

#可以查看生成的rsa 私钥

openssl rsa -noout -text -in cakey.pem

#option选项,基于安全性考虑,建议修改根密钥权限为600或400

chmod 600 cakey.pem

生成CA根证书

#利用req命令与CA根证书生成自签署的根证书,证书有效期1年; 

#生成证书时,上方红色粗体字部分是要求输入的信息,其中需要注意的是”Common Name”请填写服务器域或IP

openssl req -new -x509 -days 365 -key cakey.pem -out ca.crt

注:服务器地址要填对

24

#可以查看生成的根证书

openssl x509 -noout -text -in ca.crt

2.OpenLDAP服务器证书

生成OpenLDAP服务器私钥

openssl genrsa -out ldapkey.pem 2048

生成OpenLDAP服务器证书签署请求文件

#请求文件需要发给CA中心签署生成证书,相当于公钥;

openssl req -new -key ldapkey.pem -out ldapserver.csr

注:内容跟CA那个内容一样后面两项留空回车即可

25

#查看请求文件

openssl req -noout -text -in ldapserver.csr

3.CA中心签署证书

#复制openssl配置文件
cp /etc/pki/tls/openssl.cnf ./
#创建配置文件所需要的文件夹
mkdir -p newcerts
#创建配置文件所需要的文件
touch index.txt
#将00写入到serial文件中去
echo "00" > serial

26

#修改第42行,证书生成配置文件的工作目录”dir =/etc/pki/CA”修改为当前配置文件工作的目录,如下:

vim openssl.cnf
42 dir = /usr/local/openldap/ssl

27

签署证书

#需要将OpenLDAP服务器生成的csr请求文件发给CA中;

#生成证书会有两次确认,”y”即可;

#如果重新签署证书,需要先将index.txt的内容用index.txt.old还原

openssl ca -days 365 -cert ca.crt -keyfile cakey.pem -in ldapserver.csr -out ldapserver.crt -config openssl.cnf

28

4.复制证书、秘钥到工作目录

#主要涉及CA中心的证书,CA中心为OpenLDAP服务器签署的证书与私钥

mkdir -p /usr/local/openldap/etc/openldap/ssl/ca
cp ca.crt /usr/local/openldap/etc/openldap/ssl/ca
cp ldapserver.crt  /usr/local/openldap/etc/openldap/ssl/
cp ldapkey.pem  /usr/local/openldap/etc/openldap/ssl/

29

5.修改OpenLDAP配置文件“slapd.conf”

cd /usr/local/openldap/etc/openldap/
vim slapd.conf

添加下面内容

TLSCACertificateFile /usr/local/openldap/etc/openldap/ssl/ca/ca.crt
TLSCertificateFile /usr/local/openldap/etc/openldap/ssl/ldapserver.crt
TLSCertificateKeyFile /usr/local/openldap/etc/openldap/ssl/ldapkey.pem

30

6.启动服务看看是否可以ldaps链接

cd /usr/local/openldap/libexec
./slapd -h "ldap:/// ldaps:///" -d 1

启动成功

31

使用LDAP Administrator进行链接

32

33

34

35

36

37

38

39

7.简单说一下“slapd.conf”配置文件

进入配置文件

vim /usr/local/openldap/etc/openldap/slapd.conf

1)schema

ldif支持的字段是schema来决定的

45

我们打开schema可以看到,支持的属性很多"sn,serialNumber,等",可以翻到下面还可以看到objectclass属性支持那些值

46

47

MUST:为必须出现属性

MAY:可以使用的属性

常用的schema

include         /usr/local/openldap/etc/openldap/schema/cosine.schema
include         /usr/local/openldap/etc/openldap/schema/nis.schema
include         /usr/local/openldap/etc/openldap/schema/inetorgperson.schema
include         /usr/local/openldap/etc/openldap/schema/openldap.schema
include         /usr/local/openldap/etc/openldap/schema/dyngroup.schema

2)用户名密码

48

rootdn:用户DN(Manager不用动属于管理员,可以修改dc)

rootpw:密码

3)数据路径

49

四、本地日志配置

1.查看openldap使用的是LOCAL几

./slapd --help

40

2.配置日志

打开日志配置文件

vim /etc/rsyslog.conf

添加OpenLDAP日志文件路径

local4.*                                                -/var/log/ldap.log

41

重启日志服务

systemctl restart rsyslog.service

启动或者停止OpenLDAP服务查看日志输出

tail -f /var/log/ldap.log

42

注:可以修改日志输出级别

vim /usr/local/openldap/etc/openldap/slapd.conf

新增加级别配置(默认256)

loglevel 4096

numberhex-valuelog-nameLogging description
-10xFFFF enable all logging
00x0000-logging inhibited - no logging occurs including critical errors. Not recommended.
10x1acltrace function calls
20x2packetsdebug packet handling
40x4argsheavy trace debugging
80x8connsconnection management
160x10BERprint out packets sent and received
320x20filtersearch filter processing
640x40configconfiguration file processing
1280x80ACLaccess control list processing
2560x100statsstats log connections/operations/results
5120x200stats2stats log entries sent
10240x400shellprint communication with shell backends
20480x800parseprint entry parsing debugging
40960x1000cachecaching (unused)g
81920x2000indexindexing (unused)
163840x4000syncprint syncrepl (replica) logging
327680x8000noneA misnomer - it will log message that are not categorized including curial messages

五、远程日志配置

1.服务器端配置

vim /etc/rsyslog.conf

取消下面三行代码注释

$ModLoad imjournal
$ModLoad imudp
$UDPServerRun 514

43

添加日志路径

local4.*                                                -/var/log/ldap.log

44

重启日志服务

systemctl restart rsyslog.service

2.客户端配置

打开客户端日志配置文件

vim /etc/rsyslog.conf

添加日志路径(跟服务器地址)

local4.*                                                @192.168.132.128

重启日志服务器

systemctl restart rsyslog.service

注:如是服务端和客户端使用“*.*”可以把所有日志全部输出过去


(5)