linux统一身份认证,OpenLDAP统一身份认证 [CentOS6/7]

2023-05-16

本文CentOS6/CentOS7 Linux系统平台,构建OpenLDAP的统一身份认证和双主从同步架构。

即两台LDAP服务器互为主、备,其中任一节点数据更新,将自动同步到另外一个节点上,从而达到数据备份,避免了单点故障。

a06b0740eaa3391d8ae431036d9424b2.png

1.OpenLDAP安装 #CentOS7或CentOS7

[root@centos ~]# yum install -y openldap-servers openldap-clients

[root@centos ~]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

[root@centos ~]# chown ldap. /var/lib/ldap/DB_CONFIG

启动OpenLDAP服务,并添加到开机启动列表中 #CentOS6

[root@centos ~]# service slapd start

[root@centos ~]# chkconfig slapd on #CentOS7

[root@centos ~]# systemctl start slapd

[root@centos ~]# systemctl enable slapd

2.设置LDAP管理员密码(admin)

使用slappasswd 生成加密后的密码 [root@centos ~]# slappasswd -s admin

New password:

Re-enter new password:

{SSHA}nKn/k9v72WiAF28quBZiGwBHyINg8rgF

首先查找当前系统ldap的配置数据库名称,注意CentOS7默认采用hdb数据库,CentOS6默认采用bdb数据库 #CentOS6

[root@centos6 ~]# sudo slapcat -b cn=config | grep "^dn: olcDatabase="

dn: olcDatabase={-1}frontend,cn=config

dn: olcDatabase={0}config,cn=config

dn: olcDatabase={1}monitor,cn=config

dn: olcDatabase={2}bdb,cn=config #CentOS7

[root@centos7 ~]# sudo slapcat -b cn=config | grep "^dn: olcDatabase="

dn: olcDatabase={-1}frontend,cn=config

dn: olcDatabase={0}config,cn=config

dn: olcDatabase={1}monitor,cn=config

dn: olcDatabase={2}hdb,cn=config

通过ldap api,将密码写入ldap配置数据库,注意将olcDatabase修改成对应系统的配置数据库名称: #CentOS7

[root@centos6 ~]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// <

dn: olcDatabase={2}bdb,cn=config

changetype: modify

add: olcRootPW

olcRootPW: {SSHA}nKn/k9v72WiAF28quBZiGwBHyINg8rgF

EOF #CentOS6

[root@centos7 ~]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// <

dn: olcDatabase={2}hdb,cn=config

changetype: modify

add: olcRootPW

olcRootPW: {SSHA}nKn/k9v72WiAF28quBZiGwBHyINg8rgF

EOF

注意: (1).两种方式新增的密码,在olcDatabase={2}bdb.ldif或olcDatabase={2}hdb.ldif文件中展现的形式略微不同。通过ldapi修改的密码,在ldif文件中,将不显示加密方式:

adde4e0af6aa884d64623c034f7688fa.png

(2).请首先修改LDAP域后在修改密码。否则可能会导致创建的密码无法登录的情况。

(3).CentOS6和CentOS7默认数据库存储方式不一样。CentOS7采用hdb,CentOS6采用bdb

3.配置OpenLDAP系统日志

修改slapd日志级别 [root@centos7 ~]#ldapmodify -Y EXTERNAL -H ldapi:/// <

dn:cn=config

changetype:modify

replace:olcLogLevel

olcLogLevel:stats

EOF

通过系统的rsyslog配置日志保存的文件 vi /etc/rsyslog.conf

在文件底部加入如下内容,然后重启rsyslog和slapd 服务: local4.* /var/log/slapd.log

注意:

你也可以在/etc/rsyslog.d目录下名为openldap.conf,将上面的内容写入该文件后重启效果是一样的。 #CentOS7

[root@centos7 ~]# systemctl restart rsyslog.service

[root@centos7 ~]# systemctl restart slapd #CentOS6

[root@centos6 ~]# service rsyslog restart

[root@centos6 ~]# service slapd restart

4.创建基础组织树配置ldif文件 cat > /tmp/template.ldif << EOF

dn: dc=aixiuyun,dc=com

objectclass: dcObject

objectclass: organization

o: aixiuyun com

dc: aixiuyun

dn: ou=People,dc=aixiuyun,dc=com

objectClass: organizationalUnit

objectClass: top

ou: People

dn: ou=Groups,dc=aixiuyun,dc=com

objectClass: organizationalUnit

objectClass: top

ou: Groups

dn: cn=Manager,dc=aixiuyun,dc=com

objectclass: organizationalRole

cn: Manager

EOF

将LDIF文件应用到LDAP数据库中 [root@centos7 ~]# ldapadd -x -D "cn=Manager,dc=aixiuyun,dc=com" -W -f /tmp/template.ldif

Enter LDAP Password:

adding new entry "dc=aixiuyun,dc=com"

adding new entry "ou=People,dc=aixiuyun,dc=com"

adding new entry "ou=Groups,dc=aixiuyun,dc=com"

adding new entry "cn=Manager,dc=aixiuyun,dc=com"

添加成功后,可以通过如下命令进行查询 [root@centos7 ~]# ldapsearch -x -b 'dc=aixiuyun,dc=com' '(objectclass=*)'

# extended LDIF

#

# LDAPv3

# base with scope subtree

# filter: (objectclass=*)

# requesting: ALL

#

# aixiuyun.com

dn: dc=aixiuyun,dc=com

objectClass: dcObject

objectClass: organization

o: aixiuyun com

dc: aixiuyun

# People, aixiuyun.com

dn: ou=People,dc=aixiuyun,dc=com

objectClass: organizationalUnit

objectClass: top

ou: People

......

# numResponses: 5

# numEntries: 4

5.LDAP系统安全加固

禁用匿名登录 [root@centos7 ~]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// <

dn: cn=config

changetype: modify

add: olcDisallows

olcDisallows: bind_anon

EOF

[root@centos7 ~]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// <

dn: olcDatabase={-1}frontend,cn=config

changetype: modify

add: olcRequires

olcRequires: authc

EOF

允许用户自己修改密码 #CentOS6

[root@centos6 ~]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// <

dn: olcDatabase{2}bdb,cn=config

changetype: modify

replace: olcAccess

access to attrs=userPassword

by self write

by anonymous auth

by users none

EOF #CentOS7

[root@centos7 ~]# ldapmodify -Q -Y EXTERNAL -H ldapi:/// <

dn: olcDatabase{2}hdb,cn=config

changetype: modify

replace: olcAccess

access to attrs=userPassword

by self write

by anonymous auth

by users none

EOF

注意:by前面有必须要有一个空格,否则会报错。

启用slapd TLS

复制CA中级证书,服务器证书到/etc/openldap/certs [root@centos7 ~]# mkdir /etc/openldap/certs

[root@centos7 ~]# cp /etc/pki/tls/certs/server.key \

/etc/pki/tls/certs/server.crt \

/etc/pki/tls/certs/ca-bundle.crt \

/etc/openldap/certs/

[root@centos7 ~]# chown ldap. -R /etc/openldap/certs

cat > /tmp/mod_ssl.ldif << EOF

# create new

dn: cn=config

changetype: modify

add: olcTLSCACertificateFile

olcTLSCACertificateFile: /etc/openldap/certs/ca-bundle.crt

-

replace: olcTLSCertificateFile

olcTLSCertificateFile: /etc/openldap/certs/server.crt

-

replace: olcTLSCertificateKeyFile

olcTLSCertificateKeyFile: /etc/openldap/certs/server.key

EOF

[root@centos7 ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /tmp/mod_ssl.ldif

修改/etc/sysconfig/slapd,加入ldaps:/// [root@centos7 ~]# vi /etc/sysconfig/slapd

# line 9: add

SLAPD_URLS="ldapi:/// ldap:/// ldaps:/// "

[root@centos7 ~]# systemctl restart slapd

启用本地Client使用ldaps访问ldap [root@centos7 ~]# echo "TLS_REQCERT allow" << /etc/openldap/ldap.conf

配置nslcd服务使用ldaps,此服务用于集成本地账户或应用系统登录 [root@centos7 ~]# echo "tls_reqcert allow" << /etc/nslcd.conf

[root@centos7 ~]# authconfig --enableldaptls --update

6.OpenLDAP主从复制

在LDAP Master节点启用同步模块 [root@centos7-Master ~]# cat > /temp/mod_syncprov.ldif << EOF

# create new

dn: cn=module,cn=config

objectClass: olcModuleList

cn: module

olcModulePath: /usr/lib64/openldap

olcModuleLoad: syncprov.la

EOF

[root@centos7-Master ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /temp/mod_syncprov.ldif

[root@centos7-Master ~]# cat > /temp/syncprov.ldif << EOF

# create new

dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config

objectClass: olcOverlayConfig

objectClass: olcSyncProvConfig

olcOverlay: syncprov

olcSpSessionLog: 100

EOF

[root@centos7-Master ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /temp/syncprov.ldif

[root@centos7-slave ~]# cat > /temp/syncrepl.ldif << EOF

dn: olcDatabase={2}hdb,cn=config

changetype: modify

add: olcSyncRepl

olcSyncRepl: rid=001

provider=ldap://10.12.49.44:389/

bindmethod=simple

binddn="cn=Manager,dc=aixiuyun,dc=com"

credentials=password

searchbase="dc=aixiuyun,dc=com"

scope=sub

schemachecking=on

type=refreshAndPersist

retry="30 5 300 3"

interval=00:00:05:00

EOF

[root@centos7-slave ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /temp/syncrepl.ldif

注意: (1).在olcSyncRepl下面的内容前面要保持有空格。

(2).密码若包含特殊符号不需要使用引号,直接将内容填入credentials

设置LDAP客户端使用多个ldap服务器 [root@centos7 ~]# authconfig --ldapserver=ldap1.aixiuyun.com,ldap2.aixiuyun.com --update

分别重启openldap服务 [root@centos7 ~]# systemctl restart slapd

7.OpenLDAP多主同步

多主同步,是有两台以上LDAP服务器,互为主从接口,在其中任意一台修改数据都可以同步到另外一台服务器上。

首先按照上文中的内容,分别在两台ldap服务器上加载并启用同步模块。 [root@centos7 ~]# cat > /temp/mod_syncprov.ldif << EOF

# create new

dn: cn=module,cn=config

objectClass: olcModuleList

cn: module

olcModulePath: /usr/lib64/openldap

olcModuleLoad: syncprov.la

EOF

[root@centos7 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /temp/mod_syncprov.ldif

[root@centos7 ~]# cat > /temp/syncprov.ldif << EOF

# create new

dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config

objectClass: olcOverlayConfig

objectClass: olcSyncProvConfig

olcOverlay: syncprov

olcSpSessionLog: 100

EOF

[root@centos7 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /temp/syncprov.ldif

在所有的ldap服务上,配置同步的数据源服务器,注意在服务器上配置不同的olcServerID和provider数据源服务器的地址。 [root@centos7 ~]# cat > /temp/master01.ldif <

dn: cn=config

changetype: modify

replace: olcServerID

# specify uniq ID number on each server

olcServerID: 0

dn: olcDatabase={2}hdb,cn=config

changetype: modify

add: olcSyncRepl

olcSyncRepl: rid=001

provider=ldap://10.12.49.44:389/

bindmethod=simple

binddn="cn=Manager,dc=aixiuyun,dc=com"

credentials=password

searchbase="dc=aixiuyun,dc=com"

scope=sub

schemachecking=on

type=refreshAndPersist

retry="30 5 300 3"

interval=00:00:05:00

-

add: olcMirrorMode

olcMirrorMode: TRUE

dn: olcOverlay=syncprov,olcDatabase={2}hdb,cn=config

changetype: add

objectClass: olcOverlayConfig

objectClass: olcSyncProvConfig

olcOverlay: syncprov

EOF

[root@centos7 ~]# ldapmodify -Y EXTERNAL -H ldapi:/// -f /temp/master01.ldif

备注: (1) olcSyncRepl为数据源服务器ID

(2)provider 指定不同的LDAP服务器URI

(3)binddn 具有读取目录权限的用户

(4)credentials 该用户的密码

(5)scope=sub 包含子树

(6)retry 重试的时间间隔,格式如下

[retry interval] [retry times] [interval of re-retry] [re-retry times]

retry=”30 5 300 3″

(7)interval= 同步的间隔时间

interval=00:00:05:00

设置LDAP客户端使用多个ldap服务器 [root@centos7 ~]# authconfig --ldapserver=ldap1.aixiuyun.com,ldap2.aixiuyun.com --update

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux统一身份认证,OpenLDAP统一身份认证 [CentOS6/7] 的相关文章

随机推荐

  • 超详细的CentOS下载与图文安装

    一 CentOS7 4下载 官网下载页面地址 xff1a Index of 如果觉得下载比较繁琐 xff0c 我已经提供了CentOS7 4的安装包 链接 xff1a https pan baidu com s 1cRgNfZ5REf4LQ
  • Linux控制台命令结果返回,bash的命令执行状态返回值及命令行展开详解

    命令执行状态返回值及命令行展开是bash的2个基本特性 xff0c 其详细特点及应用如下 xff1a 一 命令执行的状态结果 xff1a bash通过状态返回值来输出此结果 成功 xff1a 0 失败 xff1a 1 255 命令执行完成之
  • rtos和linux在内存管理上,freertos与linux区别

    freeRTOS是一个实时操作系统 xff0c 主要实现了任务调度 内存管理 IPC 中断管理这几个模块 xff0c 它要求快速的处理任务 xff0c gui 驱动框架 shell 这些都不是它的核心功能 xff0c 而且大部分情况下都不会
  • 如何远程连接MySQL数据库

    新安装的 MySQL 只有一个 root 用户 xff0c 默认不开启远程连接 下面以 Ubuntu 系统下的 MySQL 为例 xff0c 说明如何远程连接 MySQL 数据库 登录 root 用户 mysql uroot pyongdu
  • linux重启时无法关机,linux系统无法关机/重启

    机器型号 xff1a 戴尔380 系统 xff1a Linux操作系统 使用图形界面启动后 xff0c 在开始菜单里 xff0d 关机 xff0c 显示器 鼠标 键盘瞬间断电 xff0c 但是主机保持原状 xff0c 当ssh远程可以登录该
  • 卫星导航算法 --geo 库函数的学习

    博主自己在看px4源码时 xff0c 发现geo的好多库函数挺有意思的 xff0c 于是将其进行总结学习 库函数 xff1a 1 int map projection global reproject float x float y dou
  • pixhawk 源码分析-SPI驱动-MS5611

    最近学习了一下SPI的驱动软件 xff0c 在此将其进行总结 本文使用的代码为pixhawk 1 5 5版本的源码 源码下载地址 第一步函数入口 xff1a 老规矩 xff0c 所有px4的代码的函数入口都是在启动脚本中 xff0c 启动脚
  • ucosii内核总结

    博主最近一直在看有关ucosii的代码 xff0c 并将其成功移植到了正点原子STM32F103的开发板上 颇有一些收获 xff0c 于是将其总结下来与大家一起分享 本文不会向你介绍怎么移植ucos xff08 在STM32上移植ucos的
  • python 语法糖_python中有哪些语法糖?

    在对待解题思路的时候 xff0c 往往会有多种方法实现最后的结果 只不过有一种是我们所说的常见用法 xff0c 另一类是在这种特性条件下 xff0c 另辟蹊径产生的解决方法 xff0c 语法糖可以说和这种理念是一样的 xff0c 为了简便
  • VDO、RAID、LVM

    VDO RAID LVM实验记录 VDORAIDRAID10实验RAID5实验 LVM创建逻辑卷扩容逻辑卷缩小逻辑卷逻辑卷快照删除逻辑卷 VDO 使用vdo 虚拟数据优化 目的节省空间 实验为创建挂载的操作 虚拟机中新添加一块SATA硬盘
  • 使用Android手机控制树莓派操作流程

    使用Android手机控制树莓派操作流程 二次排版请看此连接 xff1a 详细请看二次排版 xff0c 有图有真相直达 xff1a 如果你觉得用计算机来控制树莓派不太方便 xff0c 要求路由器网线等比较多 xff0c 那么今天我就简单的说
  • 一次可编程的非易失性存储器(OTP NVM)工作原理、eFuse模块解析

    关于eFuse模块解析 一次可编程的非易失性存储器 xff08 OTP NVM xff09 解析 1 基本概况及介绍1 1 相关简介1 2 关于eFuse工作原理 2 应用功能总结3 关于eFuse解析3 1 基本介绍3 2 相关信号3 3
  • 滤波器原理及其作用计算机网络,滤波器的原理与作用

    目录1 基本原理 2 滤波的概念 3 主要参数 4 作用 5 使用 滤波器是什么 滤波器是对波进行过滤的器件 xff0c 一般有两个端口 xff0c 一个输入信号 一个输出信号 可以说它是重要的电子元器件 xff0c 滤波器把电源功率传输到
  • python isdigit用法中0_Python string isdigit()用法及代码示例

    在Python中 xff0c isdigit 是用于字符串处理的内置方法 如果字符串中的所有字符均为数字 xff0c 则isdigit 方法返回 True xff0c 否则 xff0c 返回 False 此函数用于检查参数是否包含数字 xf
  • C语言错误r6002,奇怪的C语言浮点数问题

    奇怪的C语言浮点数问题 奇怪的C语言浮点数问题 如下的程序用VC6 0编译运行 debug时报运行时错误 release时出现 runtime error R6002 floating point not loaded 奇怪极了 同样的程序
  • cas mysql_CAS单点登录之mysql数据库用户验证及常见问题

    前面已经介绍了CAS服务器的搭建 xff0c 详情见 xff1a 搭建CAS单点登录服务器 然而前面只是简单地介绍了服务器的搭建 xff0c 其验证方式是原始的配置文件的方式 xff0c 这显然不能满足日常的需求 下面介绍下通过mysql数
  • Android Studio的build.gradld(Module:app)版本信息

    Android Gradle插件 Android studio是采用Gradle进行代码的打包编译以及构建项目的 Gradle是一个非常先进的开源化自动构建工具 xff0c 面向于全平台 xff0c 所以Android在基于Gradle进行
  • linux windows 串口,c – linux和windows之间的串行通信

    我将数据字节从linux发送到串口RS232的窗口 然后一切正常 只有我必须处理从linux发送的0xa 因为Windows将其读取为0xd 0xa 但是当我从windows发送数据字节到linux时 一些字节被替换为 windows发送
  • Ubuntu搭建本地apt源

    注意 xff1a 同步镜像需要约500G磁盘空间 下载 apt mirror master zip 解压文件 unzip apt mirror master zip 将apt mirror master 移动到 opt 目录 mv apt
  • linux统一身份认证,OpenLDAP统一身份认证 [CentOS6/7]

    本文CentOS6 CentOS7 Linux系统平台 xff0c 构建OpenLDAP的统一身份认证和双主从同步架构 即两台LDAP服务器互为主 备 xff0c 其中任一节点数据更新 xff0c 将自动同步到另外一个节点上 xff0c 从