内容简介: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 ” 登录。
就这样。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
极致:互联网时代的产品设计
戴维•罗斯 / 中信出版集团 / 2016-6 / 49.00元
在不远的未来,日常物品将能够迅速理解我们的需求,改善我们的生活,并随处可见。为了实现这一预期,我们需要能够发现用户使用产品的场景,找到用户高频刚需痛点的产品设计者。 站在下一个转型发展的悬崖上,我们看到技术将更具人性。随着物联网的发展,我们习以为常的数百件日常物品:汽车、钱包、手表、雨伞甚至垃圾桶,都将回应我们的需求,了解我们,学习为我们思考。最先出现的智能硬件为什么是智能手环、无人驾驶汽车......一起来看看 《极致:互联网时代的产品设计》 这本书的介绍吧!