CentOS 6.9下美国高防38.134.12OpenLDAP 的安装与配置
LDAP 全称轻量级目录访问协议(英文:Lightweight Directory Access <b>美国服务器</b>Protocol),是一个运行在 TCP/IP 上的目录访问协议。LDAP实现提供被称为目录服务的信息服务,可以看做是一张特殊的数据库系统。可以有效的解决众多网络服务的用户账户问题,规定了统一的身份信息数据库、身份认证机制和接口,实现了资源和信息的统一管理,保证了数据的一致性和完整性。
有两个系统A,B;需要把A系统创建的用户同步到B中,而B是个apache 开源项目,此时需要借助LDAP来解决。首先在A中建用户的同时,同步更新到LDAP中,然后B系统从LDAP中同步到自己的系统中,这样就实现了A中的用户到B系统的同步。
在LDAP中,信息以树状方式组织,基本数据单元是条目,而每个条目由属性构成,属性由类型(Type)和一个或多个值(Value)组成。
Entry
包含的信息描述了现实世界中的一个真实的对象,在目录系统中可以理解为一个节点。在目录中添加一个Entry时,该Entry必须属于一个或者多个对象类(Oject Class),Entry的类型由属性Object Class规定。每个Entry都有一个唯一的DN(distinguished name)来标识Entry在directory中的位置。用Java的方式Entry相当于一个Instances,而Ojbect class自然就是Class。
根节点DN的命名有多种方法,其中之一就是域名命名法,例如sohu.com根阶节点的DN应该是DN:dc=sohu,dc=com,People节点的DN:ou=People,dc=example,dc=com,RDN是目录树中节点的相对标识,例如People节点的RDN:ou=people。
Attribute
每个Entry都是由许多Attribute组成,每个属性描述的是对象的一个特征,每个属性由一个类型和一个或多个值Value组成。
每个属性类型有所对应的语法和匹配规则;对象类和属性类型的定义均可以使用继承的概念。每个条目创建时,必须定义<b>美国高防</b> 所属的对象类,必须提供对象类中的必选属性类型的属性值,在LDAP中一个属性类型可以对应多个值。
常见属性:
属性名
是否必填
描述
c
否
国家
dc
是
domain component,常用来指一个域名的一部分
o
否
该条目所属的组织名(Organization Name)
ou
否
一个组织单元的名字
cn
是
common name,一个对象的名字,如果指人,使用全名
sn
是
Surname,一个人的姓
uid
是
Userid,某个用户的登录名,与Linux系统中用户的uid不同
userPassword
否
登陆密码
否
邮箱
givenName
否
一个人的名
displayName
否
显示条目时要使用的首选名称
uidNumber
否
账号的UID
gidNumber
否
账号的GID
homeDirectory
否
用户的家目录指定
loginShell
否
用户登录的SHELL
employeeNumber
否
工号相关信息
homePhone
否
家庭电话
mobile
否
该条目的手机号码
description
否
该条目的描述信息
Object class
在LDAP中,一个条目必须包含一个Oject class属性,且需要赋予至少一个值。每个值将用作一条LDAP条目进行数据存储的模板,模板中包含了一个条目必须被赋值的属性和可选的属性。
Object分为三类,结构型(Structural),如Person和orginzationUnit,辅助型(Auxiliary),如extensibeObject,抽象型(Abstract):如top,抽象型的ObjectClass不能直接使用。
下面部分常用的ObjectClass,定义在/etc/openldap/schema/core.schema文件中
名称
描<b>美国服务器</b> 述
必要属性
domain
organization
o
organizationalUnit
ou
person
sn,cn
organizationPerson
cn,sn
top
抽象型,顶级ObjectClass
posixAccount
Linux用户
cn,gidNumber,homeDirectory,uid,uidNumber
posixGroup
Linux用户组
cn,gidNumber
Entry必须仅包含一个Structural类型的OjectClass,其他两种类型可包括0或者多个。
描述LDAP 协议可以采用的相关操作,来访问存储在目录树中的数据,可以将操作分
成三组:
(1) 更新操作 包括添加,删除,重命名,修改Entry
(2) Interrogation Operation 用于数据的查询
(3) 认证和控制 (bind unbind abandon)
(1) 提供一个框架,包含目录中的信息不被非法访问,LDAP 的安全模型主要是通过身份认
证、安全通道和访问控制(ACL)来实现。
(2) LDAP 是一个面向连接的协议,在能够对LDAP 目录进行任何操作之前,LDAP 客户端
端必须获得一个到LDAP 服务端的一个连接,在这个过程中需要对LDAP 客户端的身份进
行验证(可以理解为用户绑定)。
(3) 在用户通过验证之后,为用户分配附加的权限,比如一些用户只能查看特定的Entry,而不能修改。一些用户可以查看并且修改所有的Entry等。
下面是一个典型的 LDAP 目录树结构,其中每个节点表示一个条目。在下一节中,我们将按照这个结构来配置一个简单的 LDAP 服务。
本文仅涉及没有SSL的OpenLDAP配置。
IP
hostname
说明
192.168.1.101
openldap-server
server端
192.168.1.102
openldap-client
client端
查看SELinux状态:getenforce, 或/usr/sbin/sestatus
临时关闭:
永久关闭:
步骤
分为server端操作和client端操作
OpenLDAP的相关配置文件信息
/etc/openldap/slapd.conf:OpenLDAP的主配置文件,记录根域信息,管理员名称,密码,日志,权限等
/etc/openldap/slapd.d/*:这下面是/etc/openldap/slapd.conf配置信息生成的文件,每修改一次配置信息,这里的东西就要重新生成
/etc/openldap/schema/*:OpenLDAP的schema存放的地方
/var/lib/ldap/*:OpenLDAP的数据文件
/usr/share/openldap-servers/slapd.conf.obsolete 模板配置文件
/usr/share/openldap-servers/DB_CONFIG.example 模板数据库配置文件
OpenLDAP监听的端口:
默认监听端口:389(明文数据传输)
加密监听端口:636(密文数据传输)
修改其中cn,dc相关内容,及rootpw密文密码,rootpw配置上面设置的密码
(rootpw必须顶格写,与密码Tab键分开)
检测/etc/openldap/slapd.conf是否有错误
这里的日志级别有很多种,这里选择256这个值的级别(主从节点都要打开openldap日志功能)
参考:
migrationtools 实现OpenLDAP 用户及用户组的添加。
可以编辑base.ldif 进行修改,将不需要的条目删除,然后通过ldapadd 导入至<b>美国高防</b>OpenLDAP目录树。
添加用户和用户组的方式有两种。一种是将系统用户通过migrationtools 工具生成LDIF 文件并结合ldapadd 命令导入OpenLDAP 目录树中,生成OpenLDAP 用户。另一种通过自定义LDIF 文件并通过OpenLDAP 命令进行添加或者修改操作。本文主要介绍第二种来完成OpenLDAP用户的添加。
创建组织:
此LDIF 文件中存在中文字符,建议使用Linux dos2unix 命令进行转换,例如dos2unix -k –n filenew_file。作者建议尽可能不要使用中文字符进行添加,而使用英文添加。
导入组织数据
============================================================
如果报错:
产生原因:o.ldif文件中的不规范的空格所致!!即导入的数据含有空格所致!
纠错如下:
===========================================================
查询刚导入数据
在新建组织下创建管理员及组
导入组数据
通过以上的所有步骤,我们就设置好了一个 LDAP 目录树:其中基准 dn: o=tengxun,dc=qq,dc=com 是该树的根节点,其下有一个管理域 <b>美国高防</b>cn=Manager,o=tengxun,dc=qq,dc=com 和两个组织单元 ou=People,o=tengxun,dc=qq,dc=com 及 ou=Group,o=tengxun,dc=qq,dc=com。
创建用户及部门(cn组)
导入用户数据
可以登陆phpLDAPadmin的web界面查询新导入的数据
添加其它用户
把san.zhang用户加入到kaifa组中(没验证)
或者
通过OpenLDAP界面把san.zhang用户添加到kaifa组中
点击左侧相应组织下的"ou=Group" --> "cn=kaifa" --> "uniqueMember" --> 点击下面的赋值,复制上面一行,然后修改uid保存即可。
当你发现自己的才华撑不起野心时,就请安静下来学习吧