在CentOS 7 / RHEL 7配置OpenLDAP服务

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

它以某种方式用作关系数据库,可用于存储任何信息。LDAP不限于存储信息; 它还用作“单点登录”的后端数据库,其中用户的一个密码在许多服务之间共享。

在本教程中,我们将配置OpenLDAP以进行集中登录,其中用户使用单个帐户登录到多个服务器。
本文仅涉及没有SSL的OpenLDAP配置。如果您想使用SSL配置OpenLDAP,请在完成此帖后按照以下链接进行操作。

一. 环境

Host Name IP Address OS Purpose
node1 192.168.1.10 CentOS 7 LDAP Server
node2 192.168.1.20 CentOS 7 LDAP Client

例如域名为:51cto.com,即:dc=51cto,dc=com

二. 先决条件

1.确保可以访问

LDAP服务器“node1” (192.168.1.10)
LDAP客户端“node2” (192.168.1.20)

2.在每台计算机上创建主机条目以 /etc/hosts 进行名称解析。

192.168.1.10 node1 server
192.168.1.20 node2 client

要么

如果您计划使用主机名而不是IP地址,请使用如何在 CentOS 7 / RHEL 7 上配置DNS服务器的文章配置DNS服务器。
https://www.itzgeek.com/how-tos/linux/centos-how-tos/configure-dns-bind-server-on-centos-7-rhel-7.html

在这里,我将使用IP地址进行所有配置。

如果您计划使用Replication构建LDAP服务器,请跳过本教程并访问在Linux上配置OpenLDAP多主复制。
https://www.itzgeek.com/how-tos/linux/centos-how-tos/configure-openldap-multi-master-replication-linux.html

三. 安装OpenLDAP包

1.在LDAP服务器(node1)上安装以下LDAP RPM软件包。

yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel

2.启动LDAP服务并启用它以在系统引导时自动启动服务。

CentOS 6.*

service slapd start
chkconfig slapd on
chkconfig --list|grep slapd

输出:
slapd           0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭

CentOS 7.*

systemctl start slapd
systemctl enable slapd

3.验证LDAP

netstat -antup | grep -i 389

输出:

tcp        0      0 0.0.0.0:389             0.0.0.0:*               LISTEN      1520/slapd
tcp6       0      0 :::389                  :::*                    LISTEN      1520/slapd

READ:在CentOS 7 / RHEL 7上找不到netstat命令 - 快速修复
https://www.itzgeek.com/how-tos/mini-howtos/netstat-command-not-found-on-centos-7-rhel-7-quick-fix.html

四. 设置LDAP管理员密码

运行以下命令以创建LDAP root密码。我们将在本文中使用此LDAP管理员(root)密码。
用密码替换ldppassword。

slappasswd -h {SSHA} -s ldppassword

以上命令将生成输入密码的加密哈希值,您需要在LDAP配置文件中使用该哈希值。所以记下这一点并把它放在一边。
输出:

{SSHA}d/thexcQUuSfe3rx3gRaEhHpNJ52N8D3

五. 配置OpenLDAP服务器

OpenLDAP服务器配置文件位于 /etc/openldap/slapd.d/ 。要开始配置LDAP,我们需要更新变量 “olcSuffix” 和 “olcRootDN“ 。

  • olcSuffix - 数据库后缀,它是LDAP服务器提供信息的域名。简单来说,它应该更改为您的域名。
  • olcRootDN - 具有对LDAP执行所有管理活动的无限制访问权限的用户的根专有名称(DN)条目,如root用户。
  • olcRootPW - 上述RootDN的LDAP管理员密码。

以上条目需要在/etc/openldap/slapd.d/cn=config/olcDatabase={2}hdb.ldif文件中更新。建议不要手动编辑LDAP配置,因为每次运行ldapmodify命令时都会丢失更改。

请创建一个.ldif文件。

vim db.ldif

添加以下条目。

将加密密码({SSHA} d / thexcQUuSfe3rx3gRaEhHpNJ52N8D3 )替换为您在上一步中生成的密码。

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

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=51cto,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SSHA}d/thexcQUuSfe3rx3gRaEhHpNJ52N8D3

完成ldif文件后,将配置发送到LDAP服务器。

ldapmodify -Y EXTERNAL  -H ldapi:/// -f db.ldif

输出:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

modifying entry "olcDatabase={2}hdb,cn=config"

对/etc/openldap/slapd.d/cn=config/olcDatabase={1 }monitor.ldif (不要手动编辑)文件进行更改,以仅将监视器访问限制为ldap root(ldapadm)用户而不是其他用户。

vim monitor.ldif

使用以下信息。

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=ldapadm,dc=51cto,dc=com" read by * none

更新文件后,将配置发送到LDAP服务器。

ldapmodify -Y EXTERNAL  -H ldapi:/// -f monitor.ldif

输出:
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={1}monitor,cn=config"

六. 设置LDAP数据库

将示例数据库配置文件复制到/var/lib/ldap并更新文件权限。

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

添加cosine和nis LDAP模式。

ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

base.ldif为您的域生成文件。

vim base.ldif

使用以下信息。您可以根据自己的要求进行修改。

dn: dc=51cto,dc=com
dc: 51cto
objectClass: top
objectClass: domain

dn: cn=ldapadm ,dc=51cto,dc=com
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager

dn: ou=People,dc=51cto,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=51cto,dc=com
objectClass: organizationalUnit
ou: Group

构建目录结构。

ldapadd -x -W -D "cn=ldapadm,dc=51cto,dc=com" -f base.ldif

ldapadd命令将提示您输入ldapadm(LDAP root用户)的密码。
输出:

Enter LDAP Password:
adding new entry "dc=51cto,dc=com"

adding new entry "cn=ldapadm ,dc=51cto,dc=com"

adding new entry "ou=People,dc=51cto,dc=com"

adding new entry "ou=Group,dc=51cto,dc=com"

七. 创建LDAP用户

您可以将本地用户迁移到LDAP,而不是创建新用户。让我们为名为raj的新用户创建一个LDIF文件。

vim raj.ldif

将以下行粘贴到LDIF文件上方。

dn: uid=raj,ou=People,dc=51cto,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: raj
uid: raj
uidNumber: 9999
gidNumber: 100
homeDirectory: /home/raj
loginShell: /bin/bash
gecos: Raj [Admin (at) 51Cto]
userPassword: {crypt}x
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7

使用带有上述文件的ldapadd命令在OpenLDAP目录中创建名为“ raj ” 的新用户。

ldapadd -x -W -D "cn=ldapadm,dc=51cto,dc=com" -f raj.ldif

输出: - 输入ldapadm密码。
Enter LDAP Password:
adding new entry "uid=raj,ou=People,dc=51cto,dc=com"

为用户分配密码。

ldappasswd -s password123 -W -D "cn=ldapadm,dc=51cto,dc=com" -x "uid=raj,ou=People,dc=51cto,dc=com"

参数:
-s指定用户名的密码

-x用户名,密码已更改

-D要对LDAP服务器进行身份验证的可分辨名称。

验证LDAP条目。

ldapsearch -x cn=raj -b dc=51cto,dc=com

输出:

# extended LDIF
#
# LDAPv3
# base <dc=51cto,dc=com> with scope subtree
# filter: cn=raj
# requesting: ALL
#

# raj, People, 51cto.com
dn: uid=raj,ou=People,dc=51cto,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: raj
uid: raj
uidNumber: 9999
gidNumber: 100
homeDirectory: /home/raj
loginShell: /bin/bash
gecos: Raj [Admin (at) 51Cto]
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7
userPassword:: e1NTSEF9MkE2eUhIS0pJQVRnMHBCdkpVWjR5Q3JvTkJLTzdBTWY=

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

从LDAP中删除条目(可选)。

ldapdelete -W -D "cn=ldapadm,dc=51cto,dc=com" "uid=raj,ou=People,dc=51cto,dc=com"

八. 防火墙-Firewall

将LDAP服务添加到防火墙(TCP 389)。

firewall-cmd --permanent --add-service=ldap
firewall-cmd --reload

九. 启用LDAP日志记录

配置Rsyslog以将LDAP事件记录到日志文件/var/log/ldap.log。

vim /etc/rsyslog.conf

将以下行添加到/etc/rsyslog.conf文件中。

local4.* /var/log/ldap.log

重新启动rsyslog服务。

systemctl restart rsyslog

十. LDAP客户端(node2)配置以使用LDAP服务器

在客户端计算机上安装必要的LDAP客户端软件包。

yum install -y openldap-clients nss-pam-ldapd

执行以下命令将客户端计算机添加到LDAP服务器以进行单点登录。将“192.168.1.10”替换为LDAP服务器的IP地址或主机名。

authconfig --enableldap --enableldapauth --ldapserver=192.168.1.10 --ldapbasedn="dc=51cto,dc=com" --enablemkhomedir --update

重新启动LDAP客户端服务。

systemctl restart nslcd

十一. 验证LDAP登录

使用getent命令从LDAP服务器获取LDAP条目。

getent passwd raj

输出:

raj:x:9999:100:Raj [Admin (at) 51Cto]:/home/raj:/bin/bash

要验证LDAP,请使用客户端计算机上的LDAP用户“ raj ” 登录。


就这样。

十二. 参考

https://www.itzgeek.com/how-tos/linux/centos-how-tos/step-step-openldap-server-configuration-centos-7-rhel-7.html

原文地址:http://blog.51cto.com/moerjinrong/2149584

时间: 2024-11-08 02:52:26

在CentOS 7 / RHEL 7配置OpenLDAP服务的相关文章

如何在CentOS系统中安装配置SNMP服务

CentOS(Community Enterprise Operating System,中文意思是:社区企业操作系统)是Linux发行版之一,现在有一大部分服务器在使用此操作系统:SNMP(简单网络管理协议)能够使网络管理员提高网络管理效能,及时发现并解决网络问题以及规划网络的增长.网络管理员还可以通过SNMP接收网络节点的通知消息以及告警事件报告等来获知网络出现的问题.本文主要介绍如何在CentOS系统中安装配置SNMP服务. 工具/原料 CentOS操作系统 方法/步骤 使用SNMP服务前

Centos7 安装配置OpenLdap服务及OpenLdap管理工具

我们上一篇文章中介绍了,Centos7+Openvpn使用Windows AD(LDAP)验证登录的配置介绍.说到LDAP服务,我们知道不止windows有,linux下也有,比如openldap,sambaLDAP服务,具体就不多介绍了,我们今天主要介绍一下Centos7 安装配置OpenLdap及Ldap管理工具等操作,为后面的Centos7+Openvpn+openldap验证登录做好基础. 我们首先配置一个指定源,我们源地址指向了阿里云的仓库源 cd /etc/yum.repos.d v

CentOS下使用Bind配置DNS服务

一.DNS简介 二.Bind安装 三.Bind配置 四.Bind检查配置文件 五.验证 六.常见错误 七.待整理 一.DNS简介 DNS(Domain Name Service),域名解析服务. 发展史: 1.早期计算机比较少时人们通过创建修改自己计算机上的hosts文件来实现IP与域名的对应关系. 2.为了统一管理,更快地更新到最新的hosts文件,人们统一到一台ftp服务器上下载hosts文件. 3.当计算机爆炸性增长时,通过统一到ftp服务器上下载更新hosts文件不现实,于是产生了多级域

CentOS 7快速安装配置NFS服务

Server IP ADD:192.168.153.138 Client IP ADD:192.168.153.140 NFS Server安装配置: 关闭selinux vim /etc/selinux/config #SELINUX=enforcing #SELINUXTYPE=targeted SELINUX=disabled //新增部分 systemctl stop firewalld systemctl disable firewalld yum remove firewalls y

CentOS系统下安装配置ftp服务

安装配置步骤: rpm -ivh /opt/bak/vsftpd-2.2.2-11.el6.x86_64.rpm --本地安装vsftpd ll /etc/vsftpd/  --查看vsftpd的配置文件 里面一共有四个配置文件: vsftpd.conf 为主配置文件, ftpusers为黑名单用户配置文件,通常我们的系统用户还有根用户都是放在这个配置文件里面的,因为这些用户的权限很大,如果使用ftp服务可能造成一些问题, user_list为用户列表文件(可以通过在配置文件vsftpd.con

CentOS 6 / RHEL 6配置bonding 4模式

实现bond 802.3ad or 4 模式:(IEEE 802.3ad), 方式:创建一个整合的组,这个组会共享网速和网络双工(duplex)设置.模式 4 会根据 IEEE 802.3ad 标准使用活动组中的所有网络接口 1.需要交换机配合配置, 2.两端负载均衡模式:基于源IP和目的IP 系统配置: /etc/modprobe.d/bonding.conf alias bond1 bonding options bond1 mode=4 miimon=100 lacp_rate=fast

在CentOS 6.5上安装OpenLDAP并配置LDAP方式用户登录

1.安装PHP和apache 如果没有EPEL的源需要安装下 yum install epel-release 若没有下载下来,就创建/etc/yum.repo.d/epel.repo [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedo

CentOS 6.5配置nfs服务

CentOS 6.5配置nfs服务 网络文件系统(Network File System,NFS),一种使用于分散式文件系统的协议,由升阳公司开发,于1984年向外公布.功能是通过网络让不同的机器.不同的操作系统能够彼此 分享个别的数据,让应用程序在客户端通过网络访问位于服务器磁盘中的数据,是在Unix系统间实现磁盘文件共享的一种方法. NFS的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享. 演示环境介

CentOS 7 配置DHCP服务

DHCP就不详细介绍了,DHCP的功能,可以用路由器或者交换机(若支持)等配置,也可以通过搭建服务器(Linux和windows)来实现其功能,现在就来说说CentOS 7版本配置DHCP服务的步骤报错分析. DHCP服务需要提供的几项参数 1).IP地址和子网掩码: 2).默认网关: 3).租约时间(如果时间到期需续约,如果客户端不续约,服务器将会回收分配的该IP地址): 4).DNS服务器地址(有内部DNS服务器和运营商的DNS服务器,可根据组网来配置). 搞明白DHCP服务提供的几项参数时