学习是一个逐步发现自己无知的过程!

OpenLdap安装

OpenLDAP简述

LDAP 全称轻量级目录访问协议(英文:Lightweight Directory Access Protocol),是一个运行在 TCP/IP 上的目录访问协议。目录是一个特殊的数据库,它的数据经常被查询,但是不经常更新。其专门针对读取、浏览和搜索操作进行了特定的优化。目录一般用来包含描述性的,基于属性的信息并支持精细复杂的过滤能力。比如 DNS 协议便是一种最被广泛使用的目录服务。

LDAP 中的信息按照目录信息树结构组织,树中的一个节点称之为条目(Entry),条目包含了该节点的属性及属性值。条目都可以通过识别名 dn 来全局的唯一确定,可以类比于关系型数据库中的主键。比如 dn 为 uid=ada,ou=people,dc=xinhua,dc=io 的条目表示在组织中一个名字叫做 Ada Catherine 的员工,其中 uid=ada 也被称作相对区别名 rdn。

一个条目的属性通过 LDAP 元数据模型(Scheme)中的对象类(objectClass)所定义,下面的表格列举了对象类 inetOrgPerson(Internet Organizational Person)中的一些必填属性和可选属性。

属性名 是否必填 描述
cn 该条目被人所熟知的通用名(Common Name)
sn 该条目的姓氏
o 该条目所属的组织名(Organization Name)
mobile 该条目的手机号码
description 该条目的描述信息

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/DB_CONFIG.example 模板数据库配置文件

OpenLDAP监听的端口:

  • 默认监听端口:389(明文数据传输)
  • 加密监听端口:636(密文数据传输)

安装包介绍

openldap: OpenLDAP服务端和客户端用的库文件
openldap-servers: 服务端程序
openldap-clients: 客户端程序
openldap-devel: 开发包,可选
openldap-servers-sql: 支持sql模块,可选
compat-openldap: OpenLDAP 兼容性库

常用关键字介绍

file

安装OpenLDAP

先决条件

#关闭SELINUX
vim /etc/sysconfig/selinux   # SELINUX=disabled
setenforce 0 

#关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

安装 OpenLDAP 服务

[root@openldap ~]# yum -y install openldap-servers openldap-clients
[root@openldap ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@openldap ~]# chown ldap. /var/lib/ldap/DB_CONFIG
[root@openldap ~]# systemctl start slapd
[root@openldap ~]# systemctl enable slapd

设置 OpenLDAP 管理员密码。

# 生成加密密码
[root@openldap ~]# slappasswd 
New password: 
Re-enter new password: 
{SSHA}FBh79nz5yOI6yQECxMaL57M2sdHfmogr

# 指定上面为“olcRootPW”部分生成的密码
[root@openldap ~]# vim chrootpw.ldif
# specify the password generated above for "olcRootPW" section
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}x4Pdlfl5Oq8sYNLO5l0J8NgviV7dTogs

[root@openldap ~]#  ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif

导入基本架构

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

当然也可以导入所有的框架ls /etc/openldap/schema/*.ldif | xargs -I {} sudo ldapadd -Y EXTERNAL -H ldapi:/// -f {}

在 LDAP DB 上设置您的域名

# 生成目录管理员的密码
[root@openldap ~]# slappasswd
New password:
Re-enter new password:
{SSHA}xxxxxxxxxxxxxxxxxxxxxxxx

[root@openldap ~]# vi chdomain.ldif
# replace to your own domain name for "dc=***,dc=***" section
# specify the password generated above for "olcRootPW" section
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=Manager,dc=sirliu,dc=world" read by * none

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=sirliu,dc=world

dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=sirliu,dc=world

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}FBh79nz5yOI6yQECxMaL57M2sdHfmogr

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
  dn="cn=Manager,dc=sirliu,dc=world" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=sirliu,dc=world" write by * read

[root@openldap ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.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"
modifying entry "olcDatabase={2}hdb,cn=config"
modifying entry "olcDatabase={2}hdb,cn=config"
modifying entry "olcDatabase={2}hdb,cn=config"

[root@openldap ~]# vi basedomain.ldif
# 将“dc=***,dc=***”部分替换为您自己的域名
dn: dc=sirliu,dc=world
objectClass: top
objectClass: dcObject
objectclass: organization
o: Server World
dc: sirliu

dn: cn=Manager,dc=sirliu,dc=world
objectClass: organizationalRole
cn: Manager
description: Directory Manager

dn: ou=People,dc=sirliu,dc=world
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=sirliu,dc=world
objectClass: organizationalUnit
ou: Group

[root@openldap ~]# ldapadd -x -D cn=Manager,dc=sirliu,dc=world -W -f basedomain.ldif
Enter LDAP Password:     # 目录管理员密码
adding new entry "dc=sirliu,dc=world"
adding new entry "cn=Manager,dc=sirliu,dc=world"
adding new entry "ou=People,dc=sirliu,dc=world"
adding new entry "ou=Group,dc=sirliu,dc=world"

注意:其中cn=Manager中的Manager表示OpenLDAP管理员的用户名,dc是我们的组织信息,而olcRootPW表示OpenLDAP管理员的密码,用刚才我们生成的密码。

OpenLdap至此结束! 主要是需要注意这些配置文件,避免写错。

赞(0)
未经允许不得转载:劉大帥 » OpenLdap安装

你的评论可能会一针见血! 抢沙发

登录

找回密码

注册