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 兼容性库
常用关键字介绍
安装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至此结束! 主要是需要注意这些配置文件,避免写错。
最新评论
# 这只是一个创建远程登录并授权的语句、仅作为记录 GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'Fit2cloud!' WITH GRANT OPTION;
当MGR集群初始化结束后,需要开启MGR集群自启动(需要有一台节点是自动开启引导) loose-group_replication_start_on_boot = ON #设置节点是否在启动时自动启动 MGR 集群 loose-group_replication_bootstrap_group = ON #设置节点是否作为初始引导节点启动集群
密码:blog.sirliu.com
本内容密码:blog.sirliu.com 最新整理的文章在这里喔:https://blog.sirliu.com/2018/11/shell_lian_xi_ti.html