一、安装与启动

1、安装与启停控制OpenLDAP

#yum -y install openldap openldap-servers openldap-clients openldap-devel compat-openldap wget

CentOS-7.2部署OpenLDAP服务器以及客户端_OpenLDAP

2、启动slapd服务并设置开机启动

#systemctl start slapd
#systemctl enable slapd

CentOS-7.2部署OpenLDAP服务器以及客户端_服务器_02

二、配置OpenLDAP服务器以及相关服务

1、配置OpenLDAP用户认证服务

1)配置OpenLDAP服务器主机名以及FQDN域名解析

#hostnamectl set-hostname fl.fl.com //设置主机名为fl.fl.com
#echo "fl.fl.com" >> /etc/hostname

#配置域名解析

#vi /etc/hosts  //添加如下内容

CentOS-7.2部署OpenLDAP服务器以及客户端_服务器_03

2)生成OpenLDAP服务器全局连接密码

调用slappasswd对管理员密码进行加密

#slappasswd -s passwd000000 -n > /etc/openldap/passwd
#cat /etc/openldap/passwd

CentOS-7.2部署OpenLDAP服务器以及客户端_客户端_04

3)创建x509认证本地LDAP服务证书

LDAP目录服务以明文的方式在网络中传输数据和密码,不安全,所以采用TLS加密机制来处理此问题,使用openssl工具生成X509格式的证书文件(有效期365天)
使用如下命令

#openssl req -new -x509 -nodes -out /etc/openldap/certs/cert.pem -keyout /etc/openldap/certs/priv.pem -days 365

CentOS-7.2部署OpenLDAP服务器以及客户端_服务器_05

4)、修改LDAP证书所属组和权限

#chown -R ldap:ldap /etc/openldap/certs/*
#chmod 600 /etc/openldap/certs/priv.pem

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_06

5)、生成LDAP数据库并设置权限

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

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_07

#slaptest

CentOS-7.2部署OpenLDAP服务器以及客户端_配置文件_08

#chown ldap.ldap /var/lib/ldap/DB_CONFIG

CentOS-7.2部署OpenLDAP服务器以及客户端_OpenLDAP_09

#slaptest

CentOS-7.2部署OpenLDAP服务器以及客户端_服务器_10

6)、设置LDAP日志文件保存日志信息

#echo ‘local4.* /var/log/ldap.log’ >> /etc/rsyslog.conf
#systemctl restart rsyslog
#systemctl enable rsyslog

CentOS-7.2部署OpenLDAP服务器以及客户端_OpenLDAP_11

7)、安装并设置httpd服务

#yum -y install httpd

CentOS-7.2部署OpenLDAP服务器以及客户端_OpenLDAP_12

# cp /etc/openldap/certs/cert.pem /var/www/html/

CentOS-7.2部署OpenLDAP服务器以及客户端_配置文件_13

#systemctl restart httpd
#systemctl enable httpd

CentOS-7.2部署OpenLDAP服务器以及客户端_客户端_14

测试httpd服务器是否正常工作

# wget http://fl.fl.com/cert.pem

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_15


CentOS-7.2部署OpenLDAP服务器以及客户端_服务器_16

8、设置防火墙和SELinux策略(若已关闭防火墙和SElinux则可忽略此步骤)

#firewall-cmd --permanent --add-service=ldap
#firewall-cmd --add-service=http --permanent

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_17

#firewall-cmd --reload
#setenforce 0

CentOS-7.2部署OpenLDAP服务器以及客户端_OpenLDAP_18

2、创建OpenLDAP用户和用户组

1)配置基础用户认证结构

# cd /etc/openldap/schema/
# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f cosine.ldif

CentOS-7.2部署OpenLDAP服务器以及客户端_客户端_19

# ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f  nis.ldif

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_20

2)自定义LDIF文件并导入LDAP服务器

(1)创建/etc/openldap/changes.ldif文件,并配置

vi /etc/openldap/changes.ldif

//添加如下内容

dn:olcDatabase={2}hdb,cn=config
changetype:modify
replace:olcSuffix
olcSuffix:dc=fl,dc=com

dn:olcDatabase={2}hdb,cn=config
changetype:modify
replace:olcRootDN
olcRootDN:cn=Manager,dc=fl,dc=com

dn:olcDatabase={2}hdb,cn=config
changetype:modify
replace:olcRootPW
olcRootPW:{SSHA}4P124Z9SfxL+Sq6436wEMXEjki5ycDdp//此处为你之前生成的密钥

dn:cn=config
changetype:modify
replace:olcTLSCertificateFile
olcTLSCertificateFile:/etc/openldap/cert/cert.pem

dn:cn=config
changetype:modify
replace:olcTLSCertificateKeyFile
olcTLSCertificateKeyFile:/etc/openldap/cert/priv.pem

dn:cn=config
changetype:modify
replace:olcLogLevel
olcLogLevel:-1

dn:olcDatabase={1}monitor,cn=config
changetype:modify
replace:olcAccess
olcAccess:{0} to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=fl,dc=com" read by * none

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_21

(2)将新的配置文件更新到slapd服务程序

#ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/changes.ldif

CentOS-7.2部署OpenLDAP服务器以及客户端_服务器_22

(3)创建/etc/openldap.base.ldif文件

vi /etc/openldap/base.ldif

#base.ldif
dn:dc=fl,dc=com
dc:fl
objectClass:top
objectClass:domain

dn:ou=People,dc=fl,dc=com
ou:People
objectClass:top
objectClass:organizationalUnit

dn:ou=Group,dc=fl,dc=com
ou:Group
objectClass:top
objectClass:organizationalUnit

CentOS-7.2部署OpenLDAP服务器以及客户端_客户端_23

(4)创建目录的结构服务

# ldapadd -x -W -D cn=Manager,dc=fl,dc=com -f /etc/openldap/base.ldif

CentOS-7.2部署OpenLDAP服务器以及客户端_OpenLDAP_24

3、创建Linux本地用户和本地用户组

# mkdir /home/guests
# useradd -d /home/guests/ldap1 ldapuser1
# passwd ldapuser1

CentOS-7.2部署OpenLDAP服务器以及客户端_客户端_25

4、迁移本地账号为LDAP账号

1)安装并设置migrationtools

# yum -y install migrationtools

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_26

# vi /usr/share/migrationtools/migrate_common.ph

修改71行和74行,注释掉原有内容,添加如下内容

$DEFAULT_MAIL_DOMAIN = "fl.com";
$DEFAULT_BASE = "dc=fl,dc=com";

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_27

2)将当前系统中的用户迁移至目录服务

# cd /usr/share/migrationtools/
# grep ":10[0-9][0-9]" /etc/passwd > passwd
# ./migrate_passwd.pl passwd users.ldif
# ldapadd -x -w passwd000000 -D cn=Manager,dc=fl,dc=com -f users.ldif

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_28

3)将当前系统中的用户组迁移至目录服务

# grep ":10[0-9][0-9]" /etc/group > group
# ./migrate_group.pl group groups.ldif
# ldapadd -x -w passwd000000 -D cn=Manager,dc=fl,dc=com -f groups.ldif

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_29


CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_30

5、测试LDAP用户配置文件

# ldapsearch -x cn=ldapuser1 -b dc=fl,dc=com

CentOS-7.2部署OpenLDAP服务器以及客户端_配置文件_31

#cat /etc/passwd |grep ldapuser

id ldapuser1

CentOS-7.2部署OpenLDAP服务器以及客户端_配置文件_32

三、配置OpenLDAP客户端及相关服务

请准备另一台虚拟机,作为客户端,保证2台虚拟机在同一网段中

1、配置LDAP客户端

1)配置客户端IP和域名解析

# vi /etc/sysconfig/network-scripts/ifcfg-eth0

修改静态IP地址为 192.168.100.21

CentOS-7.2部署OpenLDAP服务器以及客户端_服务器_33


CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_34

vi /etc/hosts

CentOS-7.2部署OpenLDAP服务器以及客户端_OpenLDAP_35

测试 ping ​​fl.fl.com​

CentOS-7.2部署OpenLDAP服务器以及客户端_配置文件_36

2)安装客户端所需软件包

# yum -y install openldap-clients nss-pam-ldapd authconfig-gtk pam_krb5

CentOS-7.2部署OpenLDAP服务器以及客户端_OpenLDAP_37

3)运行并设置客户端认证工具

(①以GUI GNOME为例)

以下二选一 ①或②

# system-config-authentication

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_38


CentOS-7.2部署OpenLDAP服务器以及客户端_配置文件_39


然后单击【下载CA证书】按钮,在弹出的框内,填写服务器上的证书地址

CentOS-7.2部署OpenLDAP服务器以及客户端_服务器_40


CentOS-7.2部署OpenLDAP服务器以及客户端_配置文件_41


配置认证

#authconfig --enableldap --enableldapauth --ldapserver="fl.fl.com" --ldapbasedn="dc=fl,dc=com" --update
#authconfig --enableldaptls --update

CentOS-7.2部署OpenLDAP服务器以及客户端_服务器_42

#cd /etc/openldap/cacerts
#wget http://fl.fl.com/cert.pem

②若您不是GNOME界面,也可使用如下命令进行操作,以命令界面为例

修改配置文件

1、/etc/nsswitch.conf 配置文件

33-35行修改为如下内容

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_43


58行

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_44

62行

CentOS-7.2部署OpenLDAP服务器以及客户端_客户端_45


配置认证

#authconfig --enableldap --enableldapauth --ldapserver="fl.fl.com" --ldapbasedn="dc=fl,dc=com" --update
#authconfig --enableldaptls --update

CentOS-7.2部署OpenLDAP服务器以及客户端_客户端_46

authconfig-tui

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_47


CentOS-7.2部署OpenLDAP服务器以及客户端_服务器_48

4)验证是否可用LDAP全局账号

# id  ldapuser1

CentOS-7.2部署OpenLDAP服务器以及客户端_OpenLDAP_49

2、挂载LDAP用户目录客户端,请在服务器端进行操作

1)在LDAP服务器上配置NFS服务

安装NFS服务

# yum -y install  nfs-utils  rpcbind

CentOS-7.2部署OpenLDAP服务器以及客户端_客户端_50

vi /etc/exports

/home/guests/ldap1 192.168.100.20(rw,sync,root_squash)

CentOS-7.2部署OpenLDAP服务器以及客户端_服务器_51

systemctl restart nfs-server rpcbind //重启nfs-server和rpcbind服务

#systemctl enable nfs-server rpcbind

CentOS-7.2部署OpenLDAP服务器以及客户端_客户端_52

showmount -e 192.168.100.20 //显示NFS服务端的共享列表

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_53


2)在LDAP客户机上设置自动挂载

(1)修改/home目录权限

chmod 1777 /home/

CentOS-7.2部署OpenLDAP服务器以及客户端_客户端_54

(2)手动挂载LDAP用户主目录到客户端

#showmount  -e  192.168.100.20

CentOS-7.2部署OpenLDAP服务器以及客户端_配置文件_55

#mkdir /home/guests/ldap1 -p //创建本地挂载点,作为LDAP账号的主目录。
#mount -t nfs fl.fl.com:/home/guests/ldap1 /home/guests/ldap1

CentOS-7.2部署OpenLDAP服务器以及客户端_客户端_56

#su  - ldapuser1     //再次尝试切换到ldapuser1用户

CentOS-7.2部署OpenLDAP服务器以及客户端_OpenLDAP_57

(3)设置开机自动挂载LDAP用户主目录

#vi /etc/fstab

192.168.100.20:/home/guests/ldap1 /home/guests/ldap1 nfs defaults 0 0 //增加的配置行

CentOS-7.2部署OpenLDAP服务器以及客户端_CentOS_58