Linux LDAP用户同步是为了在多个系统中实现用户数据的同步,这是一种非常高效的方式。在实际应用中,很多企业都会使用类似的技术来实现用户数据的备份和恢复。下面将介绍一种基于Linux的LDAP用户同步实现方法并讲解其实现步骤。
目前创新互联已为上千多家的企业提供了网站建设、域名、雅安服务器托管、网站托管、企业网站设计、石柱土家族网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
1、LDAP的基本介绍
LDAP(Lightweight Directory Access Protocol,轻量目录访问协议),是基于X.500标准制定的一种网络协议,主要用于访问分布式的目录服务。
在LDAP中,有三个常见的LDAP概念,分别是:entry,attribute和DN。
entry(条目):所谓条目是指就像我们平时使用的名片一样,其中包含了很多信息,这些信息都是我们在条目中填写的。
attribute(属性):每个条目都有多个属性,例如姓名,,地址等等。每个属性又有一个或多个值,比如号码就有可能有多个,一个家里可能有多个号码,所以它就是多值属性。
DN(Distinguished Name, 区别名称):DN记录了一个条目的完整路径,比如一般的DN路径格式是:countryName=CN, organizationName=Company, commonName=username, 读作cn=username, o=Company, c=CN。
2、LDAP的用户同步
在实际应用中,经常需要对多台机器上的用户进行同步,这里提供一种基于LDAP的用户同步实现方案:
Step1:搭建LDAP服务器
我们需要搭建一个OpenLDAP服务器,在CentOS下一键安装命令如下:
yum install -y openldap openldap-servers openldap-clients
在安装完成后,我们需要对LDAP进行一些配置:
1. 制作LDAP管理员用户
slappasswd -s ‘password’ 生成加密后的密码
vim manager_pw.ldif #编写管理员密码文件
#manager_pw.ldif内容
dn: olcDatabase={0}config,cn=config
changetype: modify
replace: olcRootPW
olcRootPW: {SHA}4QrcOUm6Wau+VuBX8g+IPg==
2. 修改LDAP配置文件
vim cn=config.ldif #修改LDAP配置文件
#cn=config.ldif内容
dn: cn=config
changetype: modify
replace: olcLogLevel
olcLogLevel: 4278190079
–
replace: olcDbConfig
olcDbConfig: { “maxSize”: 1073741824, “maxDnInCache”: 500000, “minMetadata”: 0
0320230000, “maxPageSize”: 1000, “checkpoint”: 512023 }
–
add: olcAccess
olcAccess: {0}to * by dn.base=”gidNumber=0+uidNumber=0,cn=peercred,cn=external
auth,cn=unixmen,cn=applications,dc=example,dc=com” manage by * none
–
add: olcAllows
ldapmodify -Y EXTERNAL -H ldapi:/// -f manager_pw.iff #装载管理员密码
ldapadd -Y EXTERNAL -H ldapi:/// -f cn=config.ldif #加载配置文件
ldapadd -x -D ‘cn=admin,dc=test,dc=com’ -f ./modules.ldif # 安装相关模块
ldapadd -x -D ‘cn=admin,dc=test,dc=com’ -w password -f schema_base.ldif # 安装基本模式
ldapadd -x -D ‘cn=admin,dc=test,dc=com’ -w password -f custom_schema.ldif # 安装自定义模式
Step2:配置LDAP服务器
完成LDAP服务器的搭建后,我们需要对LDAP服务器进行相应的配置。LDAP配置文件位于/etc/openldap/ldap.conf下。我们需要将binddn和bindpw设为LDAP管理员的DN。以管理员用户cn=admin,dc=test,dc=com为例,可以进行如下设置:
BASE test.com
URI ldap://myldap.test.com
BIND_DN cn=admin,dc=test,dc=com
BIND_PW password
PORT 389
Step3:同步LDAP用户
接下来,我们就可以开始同步LDAP用户了。在LDAP服务器上,使用ldapadd命令添加用户信息(下面以一个普通用户为例):
ldapadd -x -D “cn=admin,dc=test,dc=com” -w “password”
dn: uid=liuwei,ou=People,dc=test,dc=com
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: liuwei
sn: liu
givenName: wei
uid: liuwei
ml: liuwei@test.com
userPassword: {CRYPT}password
loginShell: /bin/bash
uidNumber: 1029
gidNumber: 1029
homeDirectory: /home/liuwei
shadowExpire: -1
shadowFlag: 0
shadowWarning: 7
shadowMin: 8
shadowMax: 999999
shadowLastChange: 11142
EOF
在完成向LDAP服务器添加用户之后,我们需要在其他服务器上进行LDAP用户的同步。同步的时候我们需要使用nslcd服务,配置/etc/nslcd.conf文件,使nslcd连接到LDAP服务器并同步用户信息。
# /etc/nslcd.conf, nslcd configuration file.
#
# See nslcd.conf(5) for detls.
# The user and group nslcd should run as.
uid nslcd
gid ldap
# The uri pointing to the LDAP server to use for name lookups.
# Multiple entries may be specified.
uri ldap://myldap.test.com
# The search base that will be used for all queries.
base dc=test,dc=com
# SSL options
#ssl on
#ssl start_tls
#tls_reqcert never
# The LDAP version to use.
ldap_version 3
# The distinguished name of the search user.
binddn cn=admin,dc=test,dc=com
bindpw password
# The directory where the runtime data will be stored.
# This directory should be mode 0700, owned by nslcd:nslcd.
#runtime_dir /var/run/nslcd
# The location at which the LDAP server will read the configuration.
# This file should be mode 0640, owned by an unprivileged user and
# should contn credentials for binding the server, etc.
#rootpwmoddn cn=admin,dc=test,dc=com
#rootpwmodpw password
#nslcd_params -d
完成以上步骤即可完成LDAP用户的同步,我们可以在其他服务器上通过命令行或者web管理界面查询到刚刚添加的用户信息。
3、
通过此篇文章,我们了解到了如何利用LDAP服务器实现Linux用户的同步。在实际应用中,这种技术可以大大提高企业系统的稳定性和安全性。希望此篇文章对您有所帮助。
相关问题拓展阅读:
samba其实可以改验证方式,不要自己的数据库,直接用系统的密码
1.配置DNS
# vi /etc/resolv.conf
nameserver 192.168.2.30
nameserver 192.168.2.32
禅宽# vi /etc/host.conf
# nslookup 192.168.2.32 DNS查找
# net time SET 192.168.2.32 时间同步,客户端以服务器时间为哗旁准
2.samba
首先确乱袭橡保Linux系统中安装了samba包,并用下述命令来检查samba包的基础库支持,一般的RPM安装都不会有问题。
# bd -b | grep LDAP
HAVE_LDAP_H
从Win2023开始.微软抛弃NT域而采用活动目录来管理Windows域.而活动目录就是微软基于遵守LDAP协议的目录服务.如果用扫描器扫描的话可以发现活动目录的389端扰渗口是打开的.而且微软虽然对这个协议都擅自作了些改动.但都集中在Replication等同步的部分.其他的部分是基本和其他产品兼容的.所以ldapsearch工具可以顺利的搜索AD中的记录.其实AD最缓洞脊大的客户就是微软自己.所以在服务器配置向导中才用DC作为正式的名称.AD这个名称反而次要.AD在配置好之颤笑后就有了健全的目录树结构.AD的用户的objectclass为User,默认的用户记录位于Users下,而Users的objectclass就是Container.这样一个AD用户的DN可能是”cn=username,cn=users,dc=domain-suffix”.AD默认的安全策略不允许”空”绑定(既bind(“”等DN为空的一系列绑定函数).所以必需要有合法验证的绑定才行:
ldapsearch -x -W -D “cn=username,cn=users,dc=domain-suffix” -b “basedn” -h host
或者是
ldap search -x -w cred -D “cn=username,cn=users,dc=domain-suffix” -b “basedn” -h host
其中-x对应API中的iple_bind*().-w/-W 表示需要密码 -D “绑定的DN” -b “开始搜索的DN” -h 接主机的IP或者域名.
举例:我在学校有一台实验用的主机troy配置为”osdn.zzti.edu.cn”主域控制器.假如我在我装有fedora的笔记本osiris上执行ldapsearch,命令如下:
ldapsearch -x -W -D “cn=administrator,cn=users,dc=osdn,dc=zzti,dc=edu,dc=cn” -b “cn=administrator,cn=users,dc=osdn,dc=zzti,dc=edu,dc=cn” -h troy.osdn.zzti.edu.cn
这样就回返回用户administrator的信息:
# extended LDIF
#
# LDAPv3
# base ; with scope sub
# filter: (objectclass=*)
# requesting: ALL
#
# Administrator, Users, osdn.zzti.edu.cn
dn: CN=Administrator,CN=Users,DC=osdn,DC=zzti,DC=edu,DC=cn
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Administrator
description:: 566h55CG6K6h566X5py6KOWfnynnmoTlhoXnva7luJDmiLc=
distinguishedName: CN=Administrator,CN=Users,DC=osdn,DC=zzti,DC=edu,DC=cn
instanceType: 4
whenCreated:8.0Z
whenChanged:4.0Z
uSNCreated: 8194
memberOf: CN=Group Policy Creator Owners,CN=Users,DC=osdn,DC=zzti,DC=edu,DC=cn
memberOf: CN=Domain Admins,CN=Users,DC=osdn,DC=zzti,DC=edu,DC=cn
memberOf: CN=Enterprise Admins,CN=Users,DC=osdn,DC=zzti,DC=edu,DC=cn
memberOf: CN=Schema Admins,CN=Users,DC=osdn,DC=zzti,DC=edu,DC=cn
memberOf: CN=Administrators,CN=Builtin,DC=osdn,DC=zzti,DC=edu,DC=cn
uSNChanged: 13895
name: Administrator
objectGUID:: z44SriNF40SGBgQson8RtA==
userAccountControl: 66048
badPwdCount: 0
codePage: 0
countryCode: 0
badPasswordTime:37500
lastLogoff: 0
lastLogon:43750
pwdLastSet:00000
primaryGroupID: 513
objectSid:: AQUAAAAAAAUVAAAAfA5HVz/NVF7R0u429AEAAA==
adminCount: 1
accountExpires:775807
logonCount: 17
sAMAccountName: Administrator
sAMAccountType:
objectCategory: CN=Person,CN=Schema,CN=Configuration,DC=osdn,DC=zzti,DC=edu,DC
=cn
isCriticalSystemObject: TRUE
# search result
search: 2
result: 0 Success
# numResponses: 2
# numEntries: 1
ldap linux用户 同步的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于ldap linux用户 同步,Linux LDAP用户同步实现,ldap 认证samba 后,密码同步麻烦请教!,如何将域用户导入linux中,如何在Linux下通过ldapsearch查询活动目录的内容的信息别忘了在本站进行查找喔。
成都服务器托管选创新互联,先上架开通再付费。
创新互联(www.cdcxhl.com)专业-网站建设,软件开发老牌服务商!微信小程序开发,APP开发,网站制作,网站营销推广服务众多企业。电话:028-86922220
网站栏目:Linux LDAP用户同步实现 (ldap linux用户 同步)
文章路径:http://www.shufengxianlan.com/qtweb/news30/88480.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联