设为首页 收藏本站
查看: 1657|回复: 0

[经验分享] 在CentOS 7 / RHEL 7配置OpenLDAP服务

[复制链接]

尚未签到

发表于 2019-2-16 09:26:09 | 显示全部楼层 |阅读模式
  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
  例如域名为:运维网.com,即:dc=运维网,dc=com
CentOS 6 无法使用

二. 先决条件

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=运维网,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=ldapadm,dc=运维网,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=运维网,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=运维网,dc=com
dc: 运维网
objectClass: top
objectClass: domain
dn: cn=ldapadm ,dc=运维网,dc=com
objectClass: organizationalRole
cn: ldapadm
description: LDAP Manager
dn: ou=People,dc=运维网,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=运维网,dc=com
objectClass: organizationalUnit
ou: Group
  构建目录结构。

ldapadd -x -W -D "cn=ldapadm,dc=运维网,dc=com" -f base.ldif
  ldapadd命令将提示您输入ldapadm(LDAP root用户)的密码。
输出:

Enter LDAP Password:
adding new entry "dc=运维网,dc=com"
adding new entry "cn=ldapadm ,dc=运维网,dc=com"
adding new entry "ou=People,dc=运维网,dc=com"
adding new entry "ou=Group,dc=运维网,dc=com"
七. 创建LDAP用户
  您可以将本地用户迁移到LDAP,而不是创建新用户。让我们为名为raj的新用户创建一个LDIF文件。

vim raj.ldif
  将以下行粘贴到LDIF文件上方。

dn: uid=raj,ou=People,dc=运维网,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=运维网,dc=com" -f raj.ldif
  输出: - 输入ldapadm密码。
Enter LDAP Password:
adding new entry "uid=raj,ou=People,dc=运维网,dc=com"
  为用户分配密码。

ldappasswd -s password123 -W -D "cn=ldapadm,dc=运维网,dc=com" -x "uid=raj,ou=People,dc=运维网,dc=com"
  参数:
-s指定用户名的密码

-x用户名,密码已更改
-D要对LDAP服务器进行身份验证的可分辨名称。
  验证LDAP条目。

ldapsearch -x cn=raj -b dc=运维网,dc=com
  输出:

# extended LDIF
#
# LDAPv3
# base  with scope subtree
# filter: cn=raj
# requesting: ALL
#
# raj, People, 运维网.com
dn: uid=raj,ou=People,dc=运维网,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=运维网,dc=com" "uid=raj,ou=People,dc=运维网,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=运维网,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://myanbin.github.io/post/openldap-in-centos-7.html
https://www.itzgeek.com/how-tos/linux/centos-how-tos/step-step-openldap-server-configuration-centos-7-rhel-7.html
  使用migrationtools添加用户:
https://www.itzgeek.com/how-tos/linux/centos-how-tos/migrate-local-users-ldap-accounts.html
安装phpldapadmin管理工具:
https://www.linuxidc.com/Linux/2017-07/145436.htm




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-672973-1-1.html 上篇帖子: centos 7 .2 安装samba服务器 下篇帖子: Centos inodes占用100%的问题及解决方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表