kerberos与openldap整合
OpenLDAP安装及配置
OpenLDAP安装及配置OpenLDAP安装及配置折腾了好多天总算是折腾出些眉⽬来了,openldap在linux下的安装与⽂件的配置估计令好多⼈都⽐较头疼吧?我就遇到了这样的问题。
下⾯我就⼤致说⼀下openldap的安装过程以及所遇到的⼀些问题的处理办法。
1.安装BerkeleyDB我选⽤的数据库是BerkeleyDB-4.8.26,在安装openldap之前需要把BDB先装好。
安装步骤如下:1)⾸先把下载好的⽂件db-4.8.26.tar解压,⽣成⽂件夹db-4.8.26,# cd db-4.8.26/build_unix# ../dist/configure# make# make install这个过程⼀般没什么问题,默认安装到了/usr/local下,⽬录名,BerkeleyDB.4.8,2) 接下来应该把BerkeleyDB.4.8下include和lib⽂件夹下的⽂件都考到usr⽂件夹下相应的include和lib⽂件下。
也可以通过以下命令来实现#cp /usr/local/ BerkeleyDB.4.8/include/* /usr/include#cp /usr/local/ BerkeleyDB.4.8/lib/* /usr/lib注意:*后边要有空格,这是cp命令的格式2.安装openldap同样,先解压,我⽤的是openldap-2.4.13,安装步骤如下#cd openldap-2.4.13#env CPPFLAGS=”-I/usr/local/ BerkeleyDB.4.8/include” LDFLAGS=”-L/usr/local/ BerkeleyDB.4.8/lib”./configure --prefix=/usr/local/openldap出现Making servers/slapd/backends.cAdd config…Add ldif…Add monitor…Add bdb…Add hdb…Add relay…Make servers/slapd/overlays/statover.cAdd syncprov…Please run “make depend” to build dependencies就可以进⾏下⼀步了,# make depend#make#make test# make install这样openldap就基本上安装完成了,但在这⼀步容易出现⼀些问题。
一种单jvm进程中同时支持多个kerberos认证的方法与流程
一种单jvm进程中同时支持多个kerberos认证的方法与流程如何在单个JVM进程中同时支持多个Kerberos认证Kerberos是一种网络身份验证协议,可用于在计算机网络中进行强大的身份验证。
当涉及到在单个JVM进程中同时支持多个Kerberos认证时,有一些特定的步骤和流程需要遵循。
在本文中,我们将一步一步回答如何实现这个需求。
步骤1:理解Kerberos认证的基本原理在开始之前,我们需要对Kerberos认证的基本原理有一定的了解。
Kerberos使用对称密钥加密和票据传递来验证用户和服务之间的身份。
它依赖于KDC(Key Distribution Center)服务器来分发凭证和密钥。
Kerberos身份验证包括以下步骤:1. 用户发送用户名和密码到KDC。
2. KDC验证用户的身份并生成一个票据(Ticket)。
3. 用户使用票据向服务请求访问。
4. 服务使用服务密钥解密并验证票据。
5. 如果票据有效,则服务授予用户访问权限。
步骤2:准备环境和配置KDC在单个JVM进程中同时支持多个Kerberos认证之前,我们需要设置KDC 服务器和相关配置。
KDC是负责管理用户和服务的密钥分发的服务器。
1. 安装KDC服务器:选择一个合适的KDC服务器,例如MIT Kerberos 或Microsoft Active Directory。
2. 配置KDC:根据您的环境和需求,配置KDC服务器和相关认证参数,包括Realm(领域)、Principal(主体)和Keytabs(密钥文件)等。
步骤3:配置JVM以支持多个Kerberos认证现在,我们可以开始配置JVM以支持多个Kerberos认证。
1. 创建不同的JAAS(Java Authentication and Authorization Service)配置文件:JAAS是Java的身份验证和授权框架,用于配置各种身份验证模块和策略。
针对每个Kerberos认证,我们需要创建一个独立的JAAS 配置文件。
LDAP安装与开发
编译并安装OpenLDAP本节讨论Senior Level Linux Professional(LPIC-3)考试301 的302.1 主题的内容。
这个主题的权值为3。
在本节中,学习如何:∙从源代码编译和配置OpenLDAP∙理解OpenLDAP 后端数据库∙管理OpenLDAP 守护进程∙排除安装期间的错误OpenLDAP 是一个实现LDAP 服务器和相关工具的开放源码应用程序。
因为它是开放源码的,所以可以免费下载它的源代码。
OpenLDAP 项目并不直接发布二进制代码,但是大多数主流的发行版都打包了二进制代码。
在本教程中,学习如何从源代码和软件包安装OpenLDAP。
从源代码编译第一步是从项目站点下载OpenLDAP 的最新版本(见参考资料中的下载链接)。
这个项目通常有两个当前版本:一个是稳定版本,另一个是测试版本。
本教程使用稳定版2.3.30 和2.3.38。
如果按照本教程进行操作,一些目录名可能会随版本而变化。
为了从下载的文件中提取源代码,输入tar -xzf openldap-stable-20070831.tgz。
这会将下载的文件解压到一个目录中。
用cd openldap-2.3.38命令进入这个新目录(根据需要替换您的OpenLDAP 版本号)。
现在的位置在源代码目录中。
现在必须配置系统的构建环境,然后构建这个软件。
OpenLDAP 使用脚本configure执行这些操作。
输入./configure --help就可以看到可用的所有选项。
一些选项定义安装文件的位置(比如--prefix):其他选项定义希望安装的OpenLDAP 特性。
清单1 列出特性及其默认设置。
清单 1. 与OpenLDAP 特性相关的配置选项SLAPD (Standalone LDAP Daemon) Options:--enable-slapd enable building slapd [yes]--enable-aci enable per-object ACIs (experimental) [no]--enable-cleartext enable cleartext passwords [yes]--enable-crypt enable crypt(3) passwords [no]--enable-lmpasswd enable LAN Manager passwords [no]--enable-spasswd enable (Cyrus) SASL password verification [no]--enable-modules enable dynamic module support [no]--enable-rewrite enable DN rewriting in back-ldap and rwm overlay[auto]--enable-rlookups enable reverse lookups of client hostnames [no]--enable-slapi enable SLAPI support (experimental) [no]--enable-slp enable SLPv2 support [no]--enable-wrappers enable tcp wrapper support [no]SLAPD Backend Options:--enable-backends enable all available backends no|yes|mod--enable-bdb enable Berkeley DB backend no|yes|mod [yes]--enable-dnssrv enable dnssrv backend no|yes|mod [no]--enable-hdb enable Hierarchical DB backend no|yes|mod [yes]--enable-ldap enable ldap backend no|yes|mod [no]--enable-ldbm enable ldbm backend no|yes|mod [no]--enable-ldbm-api use LDBM API auto|berkeley|bcompat|mdbm|gdbm [auto]--enable-ldbm-type use LDBM type auto|btree|hash [auto]--enable-meta enable metadirectory backend no|yes|mod [no]--enable-monitor enable monitor backend no|yes|mod [yes]--enable-null enable null backend no|yes|mod [no]--enable-passwd enable passwd backend no|yes|mod [no]--enable-perl enable perl backend no|yes|mod [no]--enable-relay enable relay backend no|yes|mod [yes]--enable-shell enable shell backend no|yes|mod [no]--enable-sql enable sql backend no|yes|mod [no]SLAPD Overlay Options:--enable-overlays enable all available overlays no|yes|mod--enable-accesslog In-Directory Access Logging overlay no|yes|mod [no] --enable-auditlog Audit Logging overlay no|yes|mod [no]--enable-denyop Deny Operation overlay no|yes|mod [no]--enable-dyngroup Dynamic Group overlay no|yes|mod [no]--enable-dynlist Dynamic List overlay no|yes|mod [no]--enable-lastmod Last Modification overlay no|yes|mod [no]--enable-ppolicy Password Policy overlay no|yes|mod [no]--enable-proxycache Proxy Cache overlay no|yes|mod [no]--enable-refint Referential Integrity overlay no|yes|mod [no]--enable-retcode Return Code testing overlay no|yes|mod [no]--enable-rwm Rewrite/Remap overlay no|yes|mod [no]--enable-syncprov Syncrepl Provider overlay no|yes|mod [yes]--enable-translucent Translucent Proxy overlay no|yes|mod [no]--enable-unique Attribute Uniqueness overlay no|yes|mod [no]--enable-valsort Value Sorting overlay no|yes|mod [no]SLURPD (Replication Daemon) Options:--enable-slurpd enable building slurpd [auto]Optional Packages:--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)--with-subdir=DIR change default subdirectory used for installs--with-cyrus-sasl with Cyrus SASL support [auto]在清单1 中,可以看到许多特性在默认情况下是禁用的,比如元目录和模块。
大数据平台kerberos安装部署文档
大数据平台-kerberos安装部署文档————————————————————————————————作者: ————————————————————————————————日期:ﻩ1.环境准备1.1.操作系统本次安装部署要求在操作系统为CentOS release 6.5(Final)的版本下进行部署,所以在安装部署kerberos之前请先确保操作系统为以上版本,并且集群中各机器已做时钟同步。
本次安装部署以csdm-hadoop-04作为主kdc服务器,以csdm-hadoop-05作为从kdc服务器,以csdm-hadoop-03作为客户端。
一般不建议在服务器上再安装其他应用程序,比如hadoop。
但为了节省资源本次安装在这三台机器均已安装hadoop相关软件。
1.2.创建操作用户创建操作系统hdfs、yarn、mapred用户,并使其归属于hadoop用户组: adduserhdfs -gHadoopadduseryarn -g Hadoopadduser mapred-gHadoop1.3.配置hosts文件为各台机器修改/etc/hosts文件,将真实ip与主机名对应配置,服务端与客户端均需配置,形如:(不能存在127.0.0.1的配置,否则hadoop进行kerberos验证时将会出错)1.4.关闭防火墙执行以下命令关闭防火墙:service iptables stop出现以下界面表示关闭成功1.5.注册服务与端口的对应在/etc/service文件最后增加以下信息,以便后续使用:ﻩkrb5_prop754/tcp # Kerberos slave propagation2.安装配置Kerberos2.1.安装rpm包➢以root用户登录并创建目录存放安装包:mkdir /var/kerberos➢上传安装包文件到创建的目录,包括krb5-libs-1.10.3-10.el6_4.6.x86_64.rpm、krb5-server-1.10.3-10.el6_4.6.x86_64.rpm(客户端可不安装)、krb5-workstation-1.10.3-10.el6_4.6.x86_64.rpm➢执行安装命令:rpm -ivh krb5-libs-1.10.3-10.el6_4.6.x86_64.rpmrpm -ivh krb5-server-1.10.3-10.el6_4.6.x86_64.rpm【客户端可不安装】ﻫrpm -ivh krb5-workstation-1.10.3-10.el6_4.6.x86_64.rpm➢查看上述包是否已安装成功:rpm –qa krb5*若出现以下情况则代表安装成功。
11_Hadoop基础技术-KerberosLDAP
密码太多的烦恼
聊天工具 游戏
看漫画
邮箱 微博
听音乐 追剧追番
各种登录。。。 账号密码记不住呀!!!
统一身份认证
统一身份认证就类似于游乐园的通行规则一样,游客可以 通过一个通行证(秘钥)来畅玩授权过的游乐项目。
在开源大数据平台中,用户可能需要同时使用很多开源组 件,因此会涉及到每个组件的身份认证和访问权限等问题。 利用统一的认证服务能够更好的管理用户的身份认证及会 话管理等。
单点登录的特点如下:
为用户提供便捷服务 提高运维和管理效率 简化应用系统的开发
实现单点登录的主流技术
对于单点登录的实现,主要有如下六种技术:
cookies技术
Broker-based技术
Agent-based技术
Agent and Broker-based技术
Gateway-based技术
Ldap 服务器
身份认证功能设计
LdapServer通过使用Group(组)和Role(角色)的身份认证方式来管理用户,从而更好地管理 不同组织下的用户的属性和权限。
LdapServer的Group(组)是对用户进行统一的组管理,如果用户添加到该组中,该组的 member属性中就会添加成员的dn记录。
LdapServer作为目录服务系统是由目录数据库和一套访问协议组成的系统:
LdapServer基于OpenLDAP开源技术实现。 LdapServer以Berkeley DB作为默认的后端数据库。 LdapServer是基于LDAP标准协议的一种具体开源实现。
LdapServer组织模型
例:左下方节点dn为:
cn=stu_George,uid=001, ou=Primary school, dc=CN,dc=edu
OpenLDAP使用疑惑解答及使用Java完成LDAP身份认证
导读LDAP(轻量级目录访问协议,Lightweight Directory Access Protocol)是实现提供被称为目录服务的信息服务。
目录服务是一种特殊的数据库系统,其专门针对读取,浏览和搜索操作进行了特定的优化。
目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力。
目录一般不支持通用数据库针对大量更新操作操作需要的复杂的事务管理或回卷策略。
而目录服务的更新则一般都非常简单。
这种目录可以存储包括个人信息、web链结、jpeg图像等各种信息。
为了访问存储在目录中的信息,就需要使用运行在TCP/IP 之上的访问协议—LDAP。
LDAP目录中的信息是是按照树型结构组织,具体信息存储在条目(entry)的数据结构中。
常见的例子是通讯簿,由以字母顺序排列的名字、地址和电话号码组成。
目录服务与关系数据库之间的主要区别在于:二者都允许对存储数据进行访问,只是目录主要用于读取,其查询的效率很高,而关系数据库则是为读写而设计的。
也就是目录服务不适于进行频繁的更新,属于典型的分布式结构。
总结:对于查询操作多于更新操作的(认证)系统来说,使用OpenLDAP是一个比关系数据库如MySq、PostgreSQL等更好的选择。
LDAP的功能在LDAP的功能模型中定义了一系列利用LDAP协议的操作,主要包含以下4部分:查询操作:允许查询目录和取得数据,其查询性能比关系数据库好。
更新操作:目录的更新操作没关系数据库方便,更新性能较差,但也同样允许进行添加、删除、修改等操作。
复制操作:前面也提到过,LDAP是一种典型的分布式结构,提供复制操作,可将主服务器的数据的更新复制到设置的从服务器中。
认证和管理操作:允许客户端在目录中识别自己,并且能够控制一个会话的性质。
而本文所要将的OpenLDAP就是一个优秀的开源的LDAP实现。
OpenLDAP安装配置及疑惑解答1. 安装和配置OpenLDAP安装软件非常简单,但在配置过程中遇到了不少坎坷,不是服务启动不成功就是验证不成功。
openldap-多级同步
3. 所有机器设置为镜像模式。
MirrorMode=True进一步分析看来N-Way Master模式具有比MirrorMode更多的配置项,从一定意义上来讲,MirrorMode是N-Way Master的一个特例。
由此引起我对N-Way Master Mode的极大兴趣,是否有更灵活的其他用发可以发掘呢?我将目光注意到了一个MirrorMode的配置项上,如没有这个项目,则MirrorMode的配置即变为普通syncreplica,如有,则标志为对等的镜像模式。
这个开关是否是控制服务器在集群里的读写模式的关键呢?如果这个开关灵活运用,是否可以在服务器之间形成单向+对等的复杂关系呢?后来通过查看openldap的源代码,确定了这个开关的确是控制服务器读写模式的重点。
结果我们可以在N-Way Master配置中引入不对等的配置,假设我们有4台服务器分别命名为ldap1 ldap2 ldap3 ldap4已经配置为N-Way Master模式。
我们将ldap2 ldap3 ldap4的MirrorMode关闭,同时把syncrepl的配置只保留ldap1为源,将会形成什么结果?结果就是,我们做了一个很有意思的主从结构,从N-Way Master的模式,转换到了Master-Slave配置,这个配置的好处是什么呢?此种模式下,主从服务器的配置文件差异只有一个小参数:MirrorMode=True/False,而其他所有配置完全相同。
如此以来我们将会有比较大的机会来做配置文件数据库cn=config的全部同步,并且有机会保持此种差异而不引起整个架构的变化。
我们可以灵活使用一个syncrepl的配置中的一个很有意思的限制,将可以把这个MirrorMode排除在数据库同步的内容之外:exattrs="olcMirrorMode"。
则我们将上面的例子改变为rid=002 provider=ldap://:389 binddn="cn=config"bindmethod=simple credentials=secret searchbase="cn=config"exattrs="olcMirrorMode" type=refreshAndPersist而且如果我们的slave服务器上使用这个syncrepl配置,将不会把master端的MirrorMode参数同步过来。
OPENLDAP API 编程简述
int ld_sizelimit;
int ld_errno;
char *ld_matched;
> ld是连接句柄
4、 ldap_search()族API查询LDAP目录:
int ldap_search(
LDAP *ld,
char *base,
int scope,
> hostname是LDAP服务器的地址,可以是IP或域名;
> portno是LDAP服务器的端口号,缺省的端口是常数:LDAP_PORT;
> 返回值:成功返回一个struct LDAP指针是一个连接句柄用于以后的操作,
失败返回NULL。
说明:该Entry会作为LDAP判断用ld句柄是否有权进行操作的依据(可
以用帐号去理解,一般系统在配置时会设置一个rootdn可看作超级用户帐
号)
> passwd是对应dn的帐号密码。
> method是验证方法:LDAP_AUTH_SIMPLE,LDAP_AUTH_KRBV41,或
int ldap_simple_bind( LDAP *ld, char *dn, char *passwd );
int ldap_simple_bind_s( LDAP *ld, char *dn, char *passwd );
1、 ldap_open() 打开到LDAP服务器的连接:
typedef struct ldap {
/* ... opaque parameters ... */
int ld_deref;
ldap_simple_bind_s )。
Kerberos配置
1前言假设你的Openldap已经配置好并成功运行,本文只是介绍如何使Openldap使用K e r b e r o s来验证用户身份。
本配置在F C5上通过,在使用r h e时,很可能会有不同的情况。
2名词解释K e r b e r o s 基于共享密钥的安全机制,由MIT发明,现在已经被标准化,最新是版本5,简称krb5。
Kerberos特别适合局域网络,Windows2k及以上系统的安全机制即基于kerberos。
Kerberos有多个实现版本,本文使用的一个它的实现叫做mit-kerberos。
S A S L 简单认证和安全层(SimpleAuthenticationandSecurityLayer)。
也是一套RFC定义的标准。
它的核心思想是把用户认证和安全传输从应用程序中隔离出来。
像SMTP协议在定义之初都没有考虑到用户认证等问题,现在SMTP可以配置使用SASL来完成这方面的工作。
O p e n l d a p同样如此。
S A S L支持多种认证方法,比如A N O N Y M O U S:无需认证。
P L A I N:明文密码方式(c l e a r t e x t p a s s w o r d) DIGEST-MD5:HTTPDigest兼容的安全机制,基于MD5,可以提供数据的安全传输层。
这个是方便性和安全性结合得最好的一种方式。
也是默认的方式。
G S S A P I:G e n e r i c S e c u r i t y S e r v i c e s A p p l i c a t i o n P r o g r a m I n t e r f a c e Gssapi本身是一套API,由IETF标准化。
其最主要也是着名的实现是基于Kerberos 的。
所以一般说到g s s a p i都暗指k e r b e r o s实现。
E X T E R N A L:认证已经在环境中实现了,比如S S L/T L S,I P S e c.C y r u s S A S L Cyrus-SASL是SASL协议最常用的一个实现。
OpenLdap使用手册
OpenLdap使用手册一、文档概述 (2)二、LDAP简介 (2)2.1 LDAP介绍 (2)2.2 LDAP优劣 (3)2.3 LDAP协议 (3)2.4 LDAP服务器 (4)2.5 LDAP使用权限 (4)2.6 LDAP目标 (4)三、安装配置 (5)3.1 软件安装 (5)3.2 软件配置 (5)3.3 软件运行 (5)3.4 初始数据 (6)四、LDAP应用 (8)4.1 LDAP常用属性 (8)4.2LDAP Schema语法 (9)五、LDAP客户端 (9)5.1 增加目录属性 (10)5.2 删除目录属性 (11)5.3 修改目录属性 (11)5.4 增加目录 (11)5.5 修改目录 (12)5.6 删除目录 (13)六、应用举例 (14)附录: (15)X.500 (15)一、文档概述本文从介绍ldap入手,讲述了ldap的使用场合,并进一步的指导用户进行openldap安装与配置。
是新手入门的一个教程。
二、LDAP简介2.1 LDAP介绍LDAP的英文全称是Lightweight Directory Access Protocol,它是基于X.500标准的,但是简单多了并且可以根据需要定制。
与X.500不同,LDAP支持TCP/IP,这对访问Internet是必须的。
LDAP的核心规范在RFC中都有定义,所有与LDAP相关的RFC都可以在LDAPman RFC网页中找到。
LDAP目录中可以存储各种类型的数据:电子邮件地址、邮件路由信息、人力资源数据、公用密匙、联系人列表,等等。
通过把LDAP目录作为系统集成中的一个重要环节,可以简化员工在企业内部查询信息的步骤,甚至连主要的数据源都可以放在任何地方。
2.2 LDAP优劣目录服务的数据类型主要是字符型,为了检索的需要添加了BIN(二进制数据)、CIS(忽略大小写)、CES(大小写敏感)、TEL(电话型)等语法(Syntax),而不是关系数据库提供的整数、浮点数、日期、货币等类型,同样也不提供象关系数据库中普遍包含的大量的函数,它主要面向数据的查询服务(查询和修改操作比一般是大于10:1),不提供事务的回滚(rollback)机制,它的数据修改使用简单的锁定机制实现All-or-Nothing,它的目标是快速响应和大容量查询并且提供多目录服务器的信息复制功能。
OpenLDAP的安装配制
OpenLDAP的安装配制当前(Debian/testing)提供的OpenLDAP的版本是: bf 2.3.25-1$ sudo aptitude install slapd ldap-utilsReading package lists... DoneBuilding dependency tree... DoneReading extended state informationInitializing package states... DoneReading task descriptions... DoneBuilding tag database... DoneThe following NEW packages will be automatically installed:db4.2-util libiodbc2 libldap-2.3-0The following NEW packages will be installed:db4.2-util ldap-utils libiodbc2 libldap-2.3-0 slapd0 packages upgraded, 5 newly installed, 0 to remove and 0 not upgraded. Need to get 1791kB of archives. After unpacking 4502kB will be used. Do you want to continue? [Y/n/?]Y其中:slapd 提供LDAP服务ldap-utils 提供客户工具安装完毕后, 其配制文件位于/etc/ldap/目录下:tony@tonybox:~$ ls -l /etc/ldap/total 16-rw-r--r-- 1 root root 333 2006-06-19 17:56 ldap.confdrwxr-xr-x 2 root root 4096 2006-12-29 11:33 schema-rw------- 1 root root 4351 2006-12-29 11:33 slapd.conf/etc/ldap/schema/目录下为schema文件$ ls /etc/ldap/schema/ -ltotal 208-rw-r--r-- 1 root root 8231 2006-11-11 05:39 corba.schema-rw-r--r-- 1 root root 20591 2006-11-11 05:39 core.ldif-rw-r--r-- 1 root root 19762 2006-11-11 05:39 core.schema-rw-r--r-- 1 root root 74080 2006-11-11 05:39 cosine.schema-rw-r--r-- 1 root root 1553 2006-11-11 05:39 dyngroup.schema-rw-r--r-- 1 root root 6360 2006-11-11 05:39 inetorgperson.schema-rw-r--r-- 1 root root 13984 2006-11-11 05:39 java.schema-rw-r--r-- 1 root root 2471 2006-11-11 05:39 misc.schema-rw-r--r-- 1 root root 7723 2006-11-11 05:39 nis.schema-rw-r--r-- 1 root root 3391 2006-11-11 05:39 openldap.ldif-rw-r--r-- 1 root root 1601 2006-11-11 05:39 openldap.schema-rw-r--r-- 1 root root 19689 2006-11-11 05:39 ppolicy.schema-rw-r--r-- 1 root root 2968 2006-11-11 05:39 README3.2 启动与停止服务启动$ sudo /etc/init.d/slapd start服务停止$ sudo /etc/init.d/slapd stop 服务重启$ sudo /etc/init.d/slapd restsart可以通过以下命令查看slapd是否启动$ ps aux |grep slapdopenldap 6406 0.0 0.2 14608 2764 ? Ssl 13:27 0:00/usr/sbin/slapd -g openldap -u openldaptony 6417 0.0 0.0 4892 752 pts/1 R+ 13:28 0:00 grep slapd3.3 配制比如说我们的域名是, 在配制文件/etc/ldap/slapd.conf中可以做如下调整database bdb #设置使用的资料库suffix "dc=debsir,dc=org" #设置目录后缀rootdn "cn=admin,dc=debsir,dc=org" #设置目录管理员directory "/var/lib/ldap" #设置数据库路径rootpw secret #设置管理密码这里用了明文的“secret”密码。
LDAP 概念与架设
LDAP 概念与架设現今網路常用的服務,以 HTTP、Mail 和 File System (Samba) 為最常用的服務,然而在這些常用的服務裡,會有使用者帳號的問題,每當要使用 Mail 時要輸入 Mail 的帳號密碼,存取 File System 要有 File System 帳號密碼,再更多的服務就要記更多的帳號密碼,小弟曾看過某機關,一位承辦人居要要背五組以上的的帳號密碼,而每兩個月又要修改一次,想想看這是多麼恐怖的一件事。
LDAP 是一種目綠服務,可使用 LDAP 記錄各種的人員資訊,就像是通訊錄一樣,又更進階一點,他也可以拿來做帳號整合,若是在 AP 上都有所支援,那麼要使用同一組帳號秘碼就不再是難以搞定的事了。
在小弟等當兵的這一段日子裡,打算使用 LDAP 來做Linux login(new window)、Postfix(new window)、Samba、HTTP 等帳號密碼整合。
所以,我將會寫一系列的LDAP 整合文章,當然,太深入、難以說明或是太過於理論的地方我都不會講,因為這只是筆記,我會儘量說明清楚。
為了要讓閱讀本文章的讀者們可以更容易的找到相關書籍,我在文章裡也會提供參考圖書或網頁的資料。
無論如何,小弟只對 Redhat Linux 的部份較為熟悉,所以在以下文章裡所提到的 LDAP,其實是指 OpenLDAP 套件,跟 Microsoft 的 Active Directory 沒有關係,因為小弟對 AD 也不熟。
在這個章節裡,我將要介紹基本的 LDAP 觀念和如何使者用 ldap command 來新增、查尋資料。
而在實作的環境裡,我是使用 CentOS 4.0,也就是說若您的系統是使用 CentOS 4、Redhat Enterprise Linux 4、Fedora Core 3 或 Fedora Core 4 的話應該都可以照著本文章實作,當然,CentOS 4.0 裡附的 OpenLDAP 版本是 openldap-2.2。
安装和配置OPENLDAP
安装和配置OPENLDAP必需的软件包在大多数基于软件包的系统上(例如,在基于RPM的分发版(distribution )上,女口Red Hat、Mandrake和SuSE)安装和配置OpenLDAP是一个相对比较简单的过程。
第一步先确定将哪些OpenLDAP组件(如果有的话)作为初始Linux设置的一部分进行安装。
从控制台窗口或命令行,输入:[rootthor root]# rpm -qa | grep openldapopenldap-devel-2.0.23-4openldap-2.0.23-4openldap-servers-2.0.23-4openldap-clients-2.0.23-4[rootthor root]#您应该看到类似上面的输出。
注:Red Hat分发版安装OpenLDAP客户机软件,但不安装openldap-servers 软件包,即使您选择了服务器配置也是如此。
要安装RPM软件包,在分发版媒质上找到所需文件的位置并输入:rpm -ivh packagename配置OpenLDAP服务器安装了必需的软件之后,下一步是要配置服务器。
首先,备份原始配置文件以供今后参考(cp /etc/openldap/slapd.conf /etc/openldap/slapd.conf.orig )。
现在,在您所喜爱的文本编辑器中打开/etc/openldap/slapd.conf文件,花几分钟时间通读注释。
除了定义目录数据库类型、suffix、rootdn和存储目录数据库的位置的几个项外,slapd.conf中的大多数缺省设置都是适当的。
database ldbmsuffix "dc=syroidmanor,dc="rootdn "cn=root,dc=syroidmanor.,dc="rootpw {CRYPT}05T/JKDWO0Suldirectory /var/lib/ldapindex objectClass,uid,uidNumber,gidNumber,memberUid eqindex ,mail,surname,givenname eq,subinitial保护rootdnrootdn项控制谁可以对目录数据库进行写操作,以及他们要这样做所必须提供的密码。
基于LDAP单点登录服务的设计和实现
北京工业大学工程顶士学倥论文2.3平台总体方案设计我们所研究的目标是以目录服务为核心,通过J2EE技术、嚼EB服务/XML技术、PKI/刚T技术和相关的网络安全技术,设计和实现一个基于LDAP的公安资源管理平台,下图是基于LDAP的公安资源管理平台的总体方案示意图:酗2—2基于LDAP的公安资源管理平台总体方案示意图Figure2—2Accordingtothetotalprojectsketch嗨poftheresourcesmanagementteYraceofLDAPpublicsecurityofficial基于LDAP的公安资源管理平台将公安网络各类服务和部门信息系统,以目录服务存储为核心,借助认证中心cA为核心的安全控锘9体系和№rberos的单点登录机制,实现安全的、快速反应的、统一协同的网上公安业务。
为实现内部网络资源的集中安全管理,必须满足以下几个关键要求川:(1)需要对希望访问内部网的个人的身份进行认证(2)~个中央授权框架将能够使管理得到大大简化一个允许组织以集中方式对所有这些服务器的访问控制进行管理并为用户在web空间中提供单点登录的安全解决方案可以使安全管理得到大大简北京工业大学工程硕士学位论文八用,‘。
或应用最统2.4.3功能模块吏新单元数据格式转换‘转换规则图2—3更新系统结构图Figur;e2—3ReneⅣthesystemknotcOmpositiOn为了保证整个数据更新过程的雁常进行,数据同步系统需要具备一些特定的功能模块。
数据同步系统的功能模块如图2—4所示。
关系数据麾触发苄I元数据同步系统转换规则配置更新施元更新监控其他管理图2—4数据同步系统功能模块豳Figure2—4AFigureofthedatasynchronoussystemfunction皿old各模块的功能如下:≯关系数据库触发单元:弱实时的捕获业务系统的关系数据库中数据的更新变化,包括插入新数据、删除旧数据、修改数据等。
kerberos与openldap整合
kerberos与openldap整合一、安装kerberos1.安装方法:编译源代码。
2.kerberos版本:krb5-1.7。
接下来我们开始安装kerberos:1../configure –prefix=/usr/local/注:--prefix=/usr/local/用来指定kerberos的安装路径。
在此之前,我们需要在usr/local/目录下创建var文件夹,在usr/local/var目录下创建krb5kdc文件夹。
2.make3.make install安装kerberos 之后,开始写配置文件:在目录/etc/下找到配置文件krb5.conf进行修改在目录/usr/local/var/krb5kdc 下创建数据库配置文件kdc.conf和权限管理文件kadm5.acl。
这里为了方便,我们进行了最简单的权限配置。
创建数据库:/usr/local/sbin/kdb5_util create –r KDC -s这样就基本完成了kerberos 的安装了。
接下来我们启动服务,测试服务是否安装成功。
启动服务:usr/local/sbin/krb5kdc添加管理主体:启动kadmin服务:启动kadmin服务失败。
通过修改目录/etc 下的hosts文件就可以解决这一问题这个名字要与配置文件中的名字保持一致。
再次启动kadmin服务就能成功了通过启动以上几个服务,kerberos基本安装成功了。
二、安装openldap1.安装方法:编译源代码。
2.openldap版本:openldap-2.3.40。
接下来我们就开始安装openldap:1../configure --prefix=/usr/local/openldap注:prefix=/usr/local/openldap是用来指定安装路径的。
需要我们先手动在/usr/local/目录新建openldap这个文件夹。
2.make depend3.make4.make test5.make install安装openldap 之后,开始写配置文件在usr/local/openldap/etc/openldap/下找到配置文件slapd.conf1.引入schema文件2.修改目录名,设置管理员3.设置密码当前的密码是以明文的形式保存在配置文件之中,这样存在安全隐患,我们可以通过/usr/local/openldap/sbin下的slappasswd,将密码加密成密文的形式,保存于配置文件中。
openLdap安装教程
openLdap安装教程环境操作系统:centOS 7.0 OpenLDAP:2.4.X安装从yum源安装yum install openldap openldap-servers openldap-clients -y配置执⾏如下命令来初始化OpenLdap的配置cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG在/etc/openldap⽬录下新建openLdap配置⽂件cd /etc/openldaptouch slapd.confslapd.conf的⽂件内容为include /etc/openldap/schema/corba.schemainclude /etc/openldap/schema/core.schemainclude /etc/openldap/schema/cosine.schemainclude /etc/openldap/schema/duaconf.schemainclude /etc/openldap/schema/dyngroup.schemainclude /etc/openldap/schema/inetorgperson.schemainclude /etc/openldap/schema/java.schemainclude /etc/openldap/schema/misc.schemainclude /etc/openldap/schema/nis.schemainclude /etc/openldap/schema/openldap.schemainclude /etc/openldap/schema/ppolicy.schemainclude /etc/openldap/schema/collective.schema# OpenLDAP 服务允许连接的客户端版本。
OpenLDAP 和 Postfix 的整合应用
OpenLDAP 和 Postfix 的整合應用先前小弟在前三篇文章中提到一些 LDAP 的應用,經過了五、六個月之久,最近終於有機會來實作 Postfix 和 OpenLDAP 的整合,老實說在實作過程中遇到了不少困難,所幸 的豐富文件讓我解開了不少棘手問題。
實作之前,我先說明一下測試環境:兩台主機分別為 vm-ldap 和 vm-mail,vm-ldap 上面只有跑 OpenLDAP;而 vm-mail 則是負責郵件服務,當然了,郵件系統是使用 postfix。
這次的實作過程,主要是測試如何讓 postfix 去查詢 OpenLDAP 的資料庫資料,也會示範如何編寫 ldap_table 讓 postfix 去做查詢的依據,以下所以的範例,都可以在文章的連結中找得到。
建立 LDAP 環境:我們沿用先前的環境,先做出 LDAP 的設定檔,再匯入到資料庫中,中間的實作過程,可以參考LDAP 入門(New Window)一文,在這裡我就不再贅述。
建立 postfix 環境:在建立 postfix 環境之前,因為我們是要查詢 LDAP 資料錄,所以要先讓postfix 支援 LDAP 才行,在你的系統之中,以 Redhat 系為例的話,最少需要裝有 openldap 套件才可以。
root # yum install openldap安裝完成之後,就可以開始編釋 postfix 了。
root # cd /miscroot # wgetftp://.tw/Unix/Mail/Postfix/official/postfix-2.3.0.tar.gzroot # cd postfix-2.3.0root # make tidyroot # make makefiles CCARGS="-I/usr/local/include -DHAS_LDAP" AUXLIBS="-L/usr/local/lib -R/usr/local/lib -lldap -L/usr/local/lib-R/usr/local/lib -llber"上面的過程,會重新建立 mailfile 檔案,並且把 LDAP 的支援也加進去。
Linux配置OpenLDAP服务
(9). 测试并生成配置文件: [root@ldapse ~]# slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/ config file testing succeeded [root@ldapse ~]# [root@ldapse ~]# ll /etc/openldap/slapd.d/ total 8 drwxr-x---. 3 root root 4096 Oct 20 16:00 cn=config -rw-------. 1 root root 1259 Oct 20 16:00 cn=config.ldif [root@l限并重启: [root@ldapse ~]# chown -R ldap:ldap /etc/openldap/slapd.d/ [root@ldapse ~]# ll /etc/openldap/slapd.d/ total 8 drwxr-x---. 3 ldap ldap 4096 Oct 20 16:00 cn=config -rw-------. 1 ldap ldap 1259 Oct 20 16:00 cn=config.ldif [root@ldapse ~]# [root@ldapse ~]# service slapd restart Stopping slapd: Starting slapd: [root@ldapse ~]# (11). 创建几个账号,以备客户端测试登陆: [root@ldapse ~]# useradd zhangdawei [root@ldapse ~]# passwd zhangdawei [root@ldapse ~]# useradd dwzhang [root@ldapse ~]# passwd dwzhang 至此,这些用户仅仅是系统上存在的用户(存储在/etc/passwd 和/etc/shadow 上) ,并没有 在 LDAP 数据库里,所以要把这些用户导入到 LDAP 里面去。但 LDAP 只能识别特定格式的文 件 即后缀为 ldif 的文件 (也是文本文件) , 所以不能直接使用/etc/passwd 和/etc/shadow。 需 要 migrationtools 这个工具把这两个文件转变成 LDAP 能识别的文件。 (12). 安装配置 migrationtools: [root@ldapse ~]# yum install -y migrationtools (13). 编辑 migrate_common.ph,添加域名: [root@ldapse ~]# cd /usr/share/migrationtools/ [root@ldapse migrationtools]# vim migrate_common.ph 70 # Default DNS domain 71 $DEFAULT_MAIL_DOMAIN = "";
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
kerberos与openldap整合
一、安装kerberos
1.安装方法:编译源代码。
2.kerberos版本:krb5-1.7。
接下来我们开始安装kerberos:
1../configure –prefix=/usr/local/
注:--prefix=/usr/local/用来指定kerberos的安装路径。
在此之前,我们需
要在usr/local/目录下创建var文件夹,在usr/local/var目录下创建krb5kdc
文件夹。
2.make
3.make install
安装kerberos 之后,开始写配置文件:
在目录/etc/下找到配置文件krb5.conf进行修改
在目录/usr/local/var/krb5kdc 下创建数据库配置文件kdc.conf和权限管理文件kadm5.acl。
这里为了方便,我们进行了最简单的权限配置。
创建数据库:/usr/local/sbin/kdb5_util create –r KDC -s
这样就基本完成了kerberos 的安装了。
接下来我们启动服务,测试服务是否安装成功。
启动服务:usr/local/sbin/krb5kdc
添加管理主体:
启动kadmin服务:
启动kadmin服务失败。
通过修改目录/etc 下的hosts文件就可以解决这一问题
这个名字要与配置文件中的名字保持一致。
再次启动kadmin服务就能成功了
通过启动以上几个服务,kerberos基本安装成功了。
二、安装openldap
1.安装方法:编译源代码。
2.openldap版本:openldap-2.
3.40。
接下来我们就开始安装openldap:
1../configure --prefix=/usr/local/openldap
注:prefix=/usr/local/openldap是用来指定安装路径的。
需要我们先手动
在/usr/local/目录新建openldap这个文件夹。
2.make depend
3.make
4.make test
5.make install
安装openldap 之后,开始写配置文件
在usr/local/openldap/etc/openldap/下找到配置文件slapd.conf
1.引入schema文件
2.修改目录名,设置管理员
3.设置密码
当前的密码是以明文的形式保存在配置文件之中,这样存在安全隐患,我们可以通过/usr/local/openldap/sbin下的slappasswd,将密码加密成密文的形式,保存于配置文件中。
将密文形式的密码粘贴到配置文件中
写完配置文件之后,进行数据录入
我们采用导入ldif文件的方式进行数据录入的。
首先创建一个ldif文件,在里面写入要导入openldap中的数据,内容如下:
注:每一行的行首、行尾一定不能有空格、Tab!!!
通过命令:ldapadd –x –D “cn=admin,dc=kerberos,dc=kdc”–W –f test.ldif 完成数据录入。
通过命令:ldapsearch -x -b "dc=kerberos0,dc=kdc0" "(objectclass=*)"查询
ldap中的数据。
通过以上几个步骤,可以确定openldap已经安装成功,接下来我们来安装kerbreos
三、安装kerberos
1.安装方法:编译源代码。
2.kerberos版本:krb5-1.7。
接下来我们开始安装kerberos:
1../configure --prefix=/usr/local/–with-ldap
注:--prefix=/usr/local/用来指定kerberos的安装路径,--with-ldap是将
kerberos和ldap进行整合。
在此之前,我们需要在usr/local/目录下创建var文件夹,在usr/local/var
目录下创建krb5kdc文件夹。
2.make
3.make install
安装kerberos之后,开始写配置文件
在目录/etc/下找到配置文件krb5.conf进行修改
注:红线框出来的部分,是用来指定ldap为kerberos存放数据的地方,注意在写配置文件的时候不要漏泄了这一句。
蓝线框出来的部分,是存放进入ldap的密码文件的目录。
写完了kerberos的配置文件,我还要修改openldap的配置文件,使openldap 支持kerberos。
修改openldap配置,使其支持kerberos有两种情况:
1.静态通过slapd.conf配置,每次配置后需要重新启动ldap服务2.slapd.d来动态配置,不需要重新配置ldap服务器。
这里我们采用的是静态配置方法。
对于静态ldap的情况很简单就是在slapd.conf文件中配置加上
1.引入kerberos.schema
在kerberos的安装源代码,目录src/plugins/kdb/ldap/libkdb_ldap下找到kerberos.schema文件,拷贝到目录/usr/local/openldap/etc/openldap/schema下,然后在配置文件中引入kerberos.schema。
2.在slapd.conf中添加ACL
3.krb5principalName添加索引。
以上就完成了对openldap的配置文件的修改。
接下来就进行数据的录入:
1.创建全局container(ou=krb5,dc=kerberos0,dc=kdc0)
2.管理“域”的dn(cn=kdc-srv,ou=krb5,dc=kerberos0,dc=kdc0)
3.kdc服务的dn(cn=adm-srv,ou=krb5,dc=kerberos0,dc=kdc0)
同样是采用导入ldif文件的方式进行数据录入
通过命令:ldapadd –x –D “cn=admin,dc=kerberos,dc=kdc”–W –f krb.ldif 完成数据录入。
图中用红线框出来的部分就是kerberos进入ldap所需的密码,接下来我们就需要经这两个密码提取出来,以文件的形式放入krb5.conf配置文件中所指定的目录下。
通过命令:kdb5_ldap_util -D cn=admin,dc=kerberos,dc=kdc stashsrvpw -f /etc/kerberos/service.keyfile cn=kdc-srv,ou=krb5,dc=kerberos,dc=kdc和
kdb5_ldap_util –D,cn=admin,dc=kerberos,dc=kdc stashsrvpw -f /etc/kerberos/service.keyfile cn=adm-srv,ou=krb5,dc=kerberos,dc=kdc提取密码。
接下为kerberos创建域:
kdb_ldap_util –D cn=admin,dc=kerberos,dc=kdc create –r KDC –s.
这样就完成openldap对kerberos的支持。
四、测试
1.添加管理主体
命令addprinc,添加主体。
命令listprincs,列出所有的主体。
用红线框出来的就是我们刚才创建的主体。
2.启动服务
命令kinit,获取票据。
命令klist,列出票据。