来一发CentOS 6.2 应用 OpenLDAP
小知识:CentOS完全免费,不存在REDHATAS4需要序列号的问题。因为任务须要,比来简略研讨了一下RedHat(CentOS)上的OpenLDAP,发明6.2的设置装备摆设和之前的版本,特殊是5.*的很纷歧样。
简介
Linux刊行版中供给的OpenLDAP软件依照一个客户机/办事器模子完成了轻量级目次拜访协定(LDAP)。LDAP的设计目标是供给一种有用的办法来查找和治理信息。OpenLDAP软件和包供给了创立目次信息树(一个重要停止读操作的数据库)的对象。本文向您展现若何存储用户的帐号信息,并修正身份验证办事来应用LDAP获得所须要的信息。外部细节其实不主要,由于这些对象可以将数据库的内容以文本格局(LDAP数据交流格局,LDIF)出现在您的眼前。
LDAP信息被组织成属性和值的组合,称为条目(entry)。条目能够会具有必需的属性或可选属性。一个条目标属性必需要遵守/etc/openldap/schema/形式文件中界说的规矩。规矩包括在条目标objectclass属性中。看一下上面的关系,我们可以看出posixAccountobjectclass中包括了暗码文件条目标信息(posixAccountuserPassword是文件条目标base64编码)。
.LDAP目次条目和Linux暗码文件之间的关系
LDAP为作为容器应用的特别条目供给了将这些条目组织成树构造的功效。在这个例子中,我们将应用一个容器People保留用户帐号信息,应用别的一个容器Groups保留组帐号信息。所生成的目次信息树如所示。
.用户帐号信息应用的目次信息树
让我们来看一下若何设置装备摆设OpenLDAP办事器,若何将信息从体系文件迁徙到LDAP目次中,若何设置装备摆设OpenLDAP客户机经由过程LDAP对用户停止身份验证。在应用一个集中的身份验证数据库时,应当经由过程应用复制技巧采取第二个LDAP办事器供给高可用性,如许在主办事器涌现成绩时,就能够应用第二个LDAP办事器呼应客户机的要求。因为诸如暗码之类的身份验证数据会经由过程收集停止传输,是以愿望应用TSL协定树立加密通讯衔接。
设置装备摆设LDAP办事器
我应用CentOS6.2上的包来构建办事器:
openldap-clients-2.4.23-20.el6.x86_64
openldap-2.4.23-20.el6.x86_64
openldap-servers-2.4.23-20.el6.x86_64
[*]openldap:包括OpenLDAP设置装备摆设文件、库和文档
[*]openldap-servers:包括slapd和slurpd办事器、迁徙剧本和相干文件
[*]openldap-clients:包括客户机法式,用来拜访和修正OpenLDAP目次
OpenLDAP包在办事器上装置了许多法式:
[*]守护过程:slapd:主LDAP办事器
slurpd:担任与复制LDAP办事器坚持同步的办事器
[*]对收集上的目次停止操作的客户机法式。上面这两个法式是一对儿:
ldapadd:翻开一个到LDAP办事器的衔接,绑定、修正或增长条目
dapsearch:翻开一个到LDAP办事器的衔接,绑定并应用指定的参数停止搜刮
[*]对当地体系上的数据库停止操作的几个法式:
slapadd:将以LDAP目次交流格局(LDIF)指定的条目添加到LDAP数据库中slapcat:翻开LDAP数据库,并将对应的条目输入为LDIF格局
关于RH5.*来讲,OpenLDAP的重要办事器设置装备摆设文件是/etc/openldap/slapd.conf。slapd.conf文件中包含一系列全局设置装备摆设选项。然则至多CentOS6.2的设置装备摆设文件曾经换处所了,找了良久才找到这篇《DirectoryServers》,我们可以转换之前的slapd.conf为最新的格局:
~]#slaptest-f/etc/openldap/slapd.conf-F/etc/openldap/slapd.d/
详细设置可以参考《DirectoryServers》。假如只是简略的测试,其实须要更改的也很少:
至于设置启动运转级别及启动ldap办事,比拟简略,此处略去不讲。
迁徙暗码和shadow信息
我的装置包里貌似没有MigrationTools,也懒得去装,是以以下LDIF全体为手工编写:
base.ldif条目:
#catbase.ldifdn:dc=vnxldap,dc=comdc:vnxldapdescription:LDAPAdminobjectClass:dcobjectobjectClass:organizationalUnitou:rootobjectdn:ou=People,dc=vnxldap,dc=comou:PeopleobjectClass:topobjectClass:organizationalUnitdn:ou=Group,dc=vnxldap,dc=comou:GroupobjectClass:topobjectClass:organizationalUnit
迁徙ldapuser信息:
#grepldapuser/etc/passwdldapuser:x:500:500::/home/ldapuser:/bin/bash#catpasswd.ldifdn:uid=ldapuser,ou=People,dc=vnxldap,dc=comuid:ldapusercn:ldapuserobjectClass:accountobjectClass:posixAccountobjectClass:topobjectClass:shadowAccountuserPassword:{SSHA}oVzczxYaRDM6RrPNZhScAII6RH2Y7333shadowLastChange:13048shadowMax:99999shadowWarning:7loginshell:/bin/bashuidNumber:500gidNumber:500homeDirectory:/home/ldapusergecos:ldapuser
迁徙ldapuser组:
#grepldapuser/etc/groupldapuser:x:500:#catgroup.ldifdn:cn=ldapuser,ou=Group,dc=vnxldap,dc=comobjectClass:posixGroupobjectClass:topcn:ldapuseruserpassword:{crypt}xgidNumber:500
在LDAP办事器上,应用OpenLDAP客户机对象ldapadd将以上条目拔出到数据库中。简略身份验证必需要应用-x选项指定。在LDAP设置装备摆设文件中界说的rootdn身份验证辨认名是“cn=Manager,dc=vnxldap,dc=com”。关于简略身份验证来讲,必需应用暗码。选项-W强迫提醒输出暗码。这个暗码就是在LDAP设置装备摆设文件中指定的rootpw参数的值。
#ldapadd-x-D"cn=Manager,dc=vnxldap,dc=com"-w123456-fbase.ldif#ldapadd-x-D"cn=Manager,dc=vnxldap,dc=com"-w123456-fgroup.ldif#ldapadd-x-D"cn=Manager,dc=vnxldap,dc=com"-w123456-fpasswd.ldif
设置装备摆设LDAP客户机
用来设置客户机包含:
[*]nss_ldap-226-6:包含两个LDAP拜访客户机:nss_ldap和pam_ldap
[*]nss_ldap是一组C库扩大,它许可LDAP目次办事器用作一个用户和组信息的主源
[*]pam_ldap是一个Linux-PAM模块,它支撑身份验证功效
LDAP身份验证要想准确地任务,须要设置装备摆设两个办事:体系定名办事和身份验证办事。
体系定名办事(NSS)须要设置装备摆设为应用LDAP来解析诸如用户和组帐号之类的资本。例如,在运转敕令ls-l时,假如某个文件inode给出文件的一切者是“user501”,那末定名办事就须要将“uid501”解析成用户名,并在ls敕令输入成果中输入。平日来讲,这是经由过程查找/etc/passwd文件中的一切用户帐号完成的。因为用户如今都存储在LDAP目次中,是以体系须要设置装备摆设成同时对passwd文件和LDAP目次中的帐号停止解析。这类功效是经由过程/usr/lib/libnss_ldap.so库供给的。
身份验证办事是现实向LDAP验证用户身份的办事。可拔出身份验证模块(PAM)供给了当地Linux身份验证办事。上面我们将设置装备摆设PAM先对当地的/etc/passwd文件检讨用户帐号,然后再对LDAP办事器停止检讨。PAMLDAP模块可以用来将身份验证重定向到LDAP目次上。/lib/security/pam_ldap.soPAM模块供给了LDAP身份验证功效。
身份验证自己是由PAM法式履行的,它从身份验证候选机制中获得用户名,将其绑定到OpenLDAP办事器上,检索与这个uid条目(用户名条目)相干的DN;从身份验证候选机制中获得暗码,然后应用这个DN和暗码试图将其绑定到OpenLDAP办事器上。假如绑定胜利,PAM会申报说这个用户曾经胜利经由过程了pam_ldap.so供给的身份验证测试。依据PAM的设置装备摆设分歧,在用户看到敕令行提醒符之前能够会履行其他测试。
我们可以采取两种办法来设置装备摆设LDAP客户机。一种疾速而简略的办法是运转/usr/sbin/authconfig-gtk,并在两个屏幕中输出信息。别的一种办法是经由过程编纂客户机LDAP设置装备摆设文件/etc/ldap.conf,然后修正/etc/nsswitch.conf、/etc/sysconfig/authconfig和/etc/pam.d/system-auth。
起首让我们来看一下若何运转authconfig-gtk:
发明Redhat5和CentOS6又纷歧样,以下是Redhat5的界面:
RedHat5测试经由过程:
以下是CentOS6界面:《参考Redhat官网》
LaunchingtheAuthenticationConfigurationToolUI
ToopentheAuthenticationConfigurationTool:
[*]OpentheSystem.
[*]SelecttheAdministrationmenu.
[*]SelecttheAuthenticationitem.
Alternatively,runthesystem-config-authenticationcommand。
下去先来个白色正告,必定要强行应用TLS验证或HTTS:
那就选择TLS验证好了,上面也选择LDAP暗码(即简略暗码),又报错:
敕令行也不可:
#authconfig--enableldap--enableldapauth--ldapserver=10.32.106.127--ldapbasedn="dc=vnxldap,dc=com"--updateauthconfig:Authenticationmodule/lib64/security/pam_ldap.soismissing.Authenticationprocessmightnotworkcorrectly.
那就装置pam_ldap,此处略去几十个字。
持续往后走,照样上岸不了,《LDAPAuthenticationOnRedHatEnterprise6》指出还得启动nslcd及装置nss-pam-ldapd。Thenss-pam-ldapdpackageallowsLDAPdirectoryserverstobeusedasaprimarysourceofnameserviceinformation.(Nameserviceinformationtypicallyincludesusers,hosts,groups,andothersuchdatahistoricallystoredinflatfilesorNIS.)
好,那就再装置nss-pam-ldapd:
#servicenslcdstatusnslcd(pid2451)isrunning...
AuthenticationConfigurationToolUI高等设置:
测验考试LDAP上岸又报错:
#tail-f/var/log/messagesMay1320:01:01OpenLDAP-Clientnslcd:ldap_start_tls_s()failed:Protocolerror(uri="ldap://10.32.106.127/")May1320:01:01OpenLDAP-Clientnslcd:failedtobindtoLDAPserverldap://10.32.106.127/:ProtocolerrorMay1320:01:01OpenLDAP-Clientnslcd:noavailableLDAPserverfound
几番测试逝世活不可,遂直接改成第二张计划,即编纂客户机文件
[*]LDAP设置装备摆设文件/etc/openldap/ldap.conf
[*]/etc/nsswitch.conf
[*]/etc/sysconfig/authconfig
[*]/etc/pam.d/system-auth
1./etc/openldap/ldap.conf:
PAM和NSS模块应用的根本设置装备摆设文件是/etc/openldap/ldap.conf。host选项指定LDAP办事器,base选项指定这个目次应用的DN。
-bash-3.2$cat/etc/openldap/ldap.confURIldap://10.32.106.127/BASEdc=vnxldap,dc=comTLS_CACERTDIR/etc/openldap/cacerts
2./etc/nsswitch.conf
要让NSS办事应用OpenLDAP办事器,须要将“ldap”添加到/etc/nsswitch.conf文件的passwd、shadow和group行中,以下所示:
passwd:filesldapshadow:filesldapgroup:filesldap
3./etc/sysconfig/authconfig
用来跟踪特定身份验证机制能否曾经启用的文件是/etc/sysconfig/authconfig。我们可以愿望以下条目标值都是“yes”:
-bash-3.2$cat/etc/sysconfig/authconfigUSELDAP=yesUSELDAPAUTH=yesUSEMD5=yesUSESHADOW=yesUSELOCAUTHORIZE=yes
4./etc/pam.d/system-auth
要让PAM身份验证办事应用OpenLDAP办事器,请将pam_ldap行参加到/etc/pam.d/system-auth中,地位在对应的尺度pam_unix.so条目以后:
#grepldapuser/etc/passwdldapuser:x:500:500::/home/ldapuser:/bin/bash#catpasswd.ldifdn:uid=ldapuser,ou=People,dc=vnxldap,dc=comuid:ldapusercn:ldapuserobjectClass:accountobjectClass:posixAccountobjectClass:topobjectClass:shadowAccountuserPassword:{SSHA}oVzczxYaRDM6RrPNZhScAII6RH2Y7333shadowLastChange:13048shadowMax:99999shadowWarning:7loginshell:/bin/bashuidNumber:500gidNumber:500homeDirectory:/home/ldapusergecos:ldapuser0
可照样不可,老是不克不及应用RedHat5.0的明文暗码方法,放狗搜刮了一下,独一的处理办法就是在/etc/sysconfig/authconfig把FORCELEGACY=YES,我试了下照样不可。老是强行请求应用TLS验证或HTTS。研讨了一两个小时,TLS验证或HTTS也不可,算是正式废弃了。网上也有很多人碰到和我异样的成绩,没有那末多时光去折腾,6.2的修改其实太年夜了。
2012-05-17更新:
明天找了个RH的工程师帮我看了下,很快就找到了缘由,真是各类灏。∑涫抵恍枰sslstart_tls在nslcd.conf中正文失落就能够:
最初
假如一切顺遂的话(今朝在RH5.0的Client测试经由过程),用户帐号信息可以从客户机体系中删除并从LDAP目次中停止获得了。当用户试图登录客户机体系时,PAM身份验证办事就会从用户那边获得用户名,在我们的例子中是ldapuser。PAM会从LDAP办事器中检索辨认名(DN)条目dn:uid=ldapuser,ou=People,dc=vnxldap,dc=com.。PAM然后会从用户那边获得暗码。然后PAM试图应用这个DN和暗码与LDAP办事器停止绑定。DN和暗码都以注释文本的格局发送给LDAP办事器。在对暗码停止散列操作以后,假如办事器可让用户登录,就会向PAM申报说曾经胜利停止了绑定。胜利绑定可以完整知足PAM对pam_ldap模块报告请示胜利的尺度,假如一切其他PAM尺度都曾经知足了,那末就许可用户登录到体系中。
当LDAP办事器对身份验证停止处置时,须要处理别的两个成绩能力知足供给靠得住平安的身份验证的目的。如今,任何客户机体系不克不及胜利地与LDAP办事器停止通讯都邑阻拦用户登录客户机体系。鄙人一节中我们将看到若何清除这类单点毛病,这将显示客户机若何从备份办事器上拜访LDAP目次。因为用户暗码是在收集上以注释文本格局传输的,是以这其实不能知足平安身份验证的需求。设置装备摆设TLS平安性将处理这个成绩。
小知识:CentOS完全免费,不存在REDHATAS4需要序列号的问题。
来一发CentOS 6.2 应用 OpenLDAP
为了更好的学习这门课程,我不仅课上认真听讲,课下也努力学习,为此还在自己的电脑上安装了Ubuntu系统。 熟读Linux系统有关知识,如系统目录树,有关内容可购书阅读或搜索论坛。 安装一个新的软件时先看README,再看INSTALL然后看FAQ,最后才动手安装,这样遇到问题就知道为什么。如果Linux说明文档不看,结果出了问题再去论坛来找答案反而浪费时间。 我是学习嵌入式方向的,这学期就选修了这门专业任选课。 应对Linux的发展历史和特点有所了解,Linux是抢占式多任务多用户操作系统,Linux最大的优点在于其作为服务器的强大功能,同时支持多种应用程序及开发工具。 虽然大家都比较喜欢漂亮的mm,但是在学 linux 的过程中,还是要多和“男人”接触一下:P 遇到问题的时候,出来看说和上网查之外,就是要多用 linux 下的 man 命令找找帮助。 笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机
页:
[1]