在CentOS 7 / RHEL 7配置OpenLDAP服务

栏目: 服务器 · 发布时间: 7年前

内容简介:OpenLDAP是OpenLDAP项目开发的轻量级目录访问协议的开源实现。LDAP是一种Internet协议,电子邮件和其他程序用于从服务器查找联系人信息。它是在OpenLDAP公共许可下发布的; 它适用于所有主要的Linux发行版, AIX, Android, HP-UX, OS X, Solaris, Windows和z/OS。它以某种方式用作关系数据库,可用于存储任何信息。LDAP不限于存储信息; 它还用作“单点登录”的后端数据库,其中用户的一个密码在许多服务之间共享。在本教程中,我们将配置Open

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

二. 先决条件

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服务并启用它以在系统引导时自动启动服务。

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=itzgeek,dc=local

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=itzgeek,dc=local

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

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

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

对/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=itzgeek,dc=local" read by * none

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

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

六. 设置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=itzgeek,dc=local
dc: itzgeek
objectClass: top
objectClass: domain

dn: cn=ldapadm ,dc=itzgeek,dc=local
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager

dn: ou=People,dc=itzgeek,dc=local
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=itzgeek,dc=local
objectClass: organizationalUnit
ou: Group

构建目录结构。

ldapadd -x -W -D "cn=ldapadm,dc=itzgeek,dc=local" -f base.ldif

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

输出:

Enter LDAP Password: 
adding new entry "dc=itzgeek,dc=local"

adding new entry "cn=ldapadm ,dc=itzgeek,dc=local"

adding new entry "ou=People,dc=itzgeek,dc=local"

adding new entry "ou=Group,dc=itzgeek,dc=local"

七. 创建LDAP用户

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

vim raj.ldif

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

dn: uid=raj,ou=People,dc=itzgeek,dc=local
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) ITzGeek]
userPassword: {crypt}x
shadowLastChange: 17058
shadowMin: 0
shadowMax: 99999
shadowWarning: 7

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

ldapadd -x -W -D "cn=ldapadm,dc=itzgeek,dc=local" -f raj.ldif

输出: - 输入ldapadm密码。

Enter LDAP Password:

adding new entry "uid=raj,ou=People,dc=itzgeek,dc=local"

为用户分配密码。

ldappasswd -s password123 -W -D "cn=ldapadm,dc=itzgeek,dc=local" -x "uid=raj,ou=People,dc=itzgeek,dc=local"

参数:

-s指定用户名的密码

-x用户名,密码已更改

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

验证LDAP条目。

ldapsearch -x cn=raj -b dc=itzgeek,dc=local

输出:

# extended LDIF
#
# LDAPv3
# base <dc=itzgeek,dc=local> with scope subtree
# filter: cn=raj
# requesting: ALL
#

# raj, People, itzgeek.local
dn: uid=raj,ou=People,dc=itzgeek,dc=local
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) ITzGeek]
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=itzgeek,dc=local" "uid=raj,ou=People,dc=itzgeek,dc=local"

八. 防火墙-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=itzgeek,dc=local" --enablemkhomedir --update

重新启动LDAP客户端服务。

systemctl restart  nslcd

十一. 验证LDAP登录

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

getent passwd raj

输出:

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

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

就这样。


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Head First Rails

Head First Rails

David Griffiths / O'Reilly Media / 2008-12-30 / USD 49.99

Figure its about time that you hop on the Ruby on Rails bandwagon? You've heard that it'll increase your productivity exponentially, and allow you to created full fledged web applications with minimal......一起来看看 《Head First Rails》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具