Centos7 安装OpenLDAP 并开启TLS/SSL以及日志功能
前言
Centos7 上面安装的OpenLDAP版本为2.4.44,使用的数据库是BerkeleyDB 5.3.28.
一、BerkeleyDB数据安装
1.下载数据库
https://www.oracle.com/cn/database/technologies/berkeleydb.html
2.解压
tar zxvf db-5.3.28.tar.gz
3.进入到“build_unix”目录进行编译
../dist/configure --prefix=/usr/local/bdb
--prefix:数据库将来要安装的路径
make
4.安装
make install
查看目录是否有文件
二、OpenLDAP安装
1.下载(2.4.44)
https://www.openldap.org/software/download/OpenLDAP/openldap-release/
2.解压
tar -zxvf openldap-2.4.44.tgz
3.进入到“openldap-2.4.44”
4.查看开启TLS/SSL的参数
./configure --help | grep tls
注:默认是“--with-tls=auto”支持模式“openssl,gnutls,moznss”
5.我们使用openssl方式先编译一次看看有没有错误以及警告
./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将来要安装的路径
注:如果出现警告以及错误我们安装相对应的依赖库就可以
查看openssl
yum list openssl*
安装openssl
yum -y install openssl*
安装ICU
yum -y install icu*
安装cyrus sasl
yum -y install cyrus sasl*
6.没有警告或者警告解决我们再次编译
./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
执行“make depend”进行检查,执行完后看看有没有错误
发现“致命错误”我们安装依赖库
yum install -y *ltdl*
安装完再次执行“make depend”,发现没有错误了。我们进行边编译。
make
7.安装
make install
安装完进入文件夹进行查看
8.添加防火墙允许
firewall-cmd --add-service=ldap --permanent
firewall-cmd --zone=public --add-port=636/tcp --permanent
firewall-cmd --reload
三、证书配置
在OpenLDAP目录中创建ssl文件夹并进入
mkdir -p ssl
cd ssl
1.CA证书
生成CA根秘钥
#带上”-des3”参数时,创建的私钥采取Triple DES算法加密,命令执行后会要求输入密码,这样后续在调用此密钥时都会要求输入密码,如 “openssl genrsa -des3 -out ca-key.pem 2048”,这里为了方便省略此参数
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
注:服务器地址要填对
#可以查看生成的根证书
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那个内容一样后面两项留空回车即可
#查看请求文件
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
#修改第42行,证书生成配置文件的工作目录”dir =/etc/pki/CA”修改为当前配置文件工作的目录,如下:
vim openssl.cnf
42 dir = /usr/local/openldap/ssl
签署证书
#需要将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
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/
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
6.启动服务看看是否可以ldaps链接
cd /usr/local/openldap/libexec
./slapd -h "ldap:/// ldaps:///" -d 1
启动成功
使用LDAP Administrator进行链接
7.简单说一下“slapd.conf”配置文件
进入配置文件
vim /usr/local/openldap/etc/openldap/slapd.conf
1)schema
ldif支持的字段是schema来决定的
我们打开schema可以看到,支持的属性很多"sn,serialNumber,等",可以翻到下面还可以看到objectclass属性支持那些值
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)用户名密码
rootdn:用户DN(Manager不用动属于管理员,可以修改dc)
rootpw:密码
3)数据路径
四、本地日志配置
1.查看openldap使用的是LOCAL几
./slapd --help
2.配置日志
打开日志配置文件
vim /etc/rsyslog.conf
添加OpenLDAP日志文件路径
local4.* -/var/log/ldap.log
重启日志服务
systemctl restart rsyslog.service
启动或者停止OpenLDAP服务查看日志输出
tail -f /var/log/ldap.log
注:可以修改日志输出级别
vim /usr/local/openldap/etc/openldap/slapd.conf
新增加级别配置(默认256)
loglevel 4096
number | hex-value | log-name | Logging description |
-1 | 0xFFFF | enable all logging | |
0 | 0x0000 | - | logging inhibited - no logging occurs including critical errors. Not recommended. |
1 | 0x1 | acl | trace function calls |
2 | 0x2 | packets | debug packet handling |
4 | 0x4 | args | heavy trace debugging |
8 | 0x8 | conns | connection management |
16 | 0x10 | BER | print out packets sent and received |
32 | 0x20 | filter | search filter processing |
64 | 0x40 | config | configuration file processing |
128 | 0x80 | ACL | access control list processing |
256 | 0x100 | stats | stats log connections/operations/results |
512 | 0x200 | stats2 | stats log entries sent |
1024 | 0x400 | shell | print communication with shell backends |
2048 | 0x800 | parse | print entry parsing debugging |
4096 | 0x1000 | cache | caching (unused)g |
8192 | 0x2000 | index | indexing (unused) |
16384 | 0x4000 | sync | print syncrepl (replica) logging |
32768 | 0x8000 | none | A misnomer - it will log message that are not categorized including curial messages |
五、远程日志配置
1.服务器端配置
vim /etc/rsyslog.conf
取消下面三行代码注释
$ModLoad imjournal
$ModLoad imudp
$UDPServerRun 514
添加日志路径
local4.* -/var/log/ldap.log
重启日志服务
systemctl restart rsyslog.service
2.客户端配置
打开客户端日志配置文件
vim /etc/rsyslog.conf
添加日志路径(跟服务器地址)
local4.* @192.168.132.128
重启日志服务器
systemctl restart rsyslog.service
注:如是服务端和客户端使用“*.*”可以把所有日志全部输出过去