linux 设置多个ldap client,Linux下LDAP Server/Client配置

甄文彬
2023-12-01

OpenLDAP 在Linux上的配置与使用

最近由于工作的原因,需要做一些DevOps和Saas相关的工作,需要使用到LDAP来搭建一个统一的账号管理认证平台,把需要用到的N台Linux Server配置好LDAP服务。

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

Note:

本次配置的服务器环境是, Centos/Suse类似, Debian/Ubuntu安装包可能略有不同,但是大致过程应该相似。

PS:LDAP 是C/S结构的,所以接下来我们要设计好哪台机器上搭建LDAP Server,剩下的机器上安装LDAP Client.

LDAP Server Machine:192.168.1.10 (此IP为机器的实际IP,自己配置时根据实际情况而定)

LDAP Client   Machine:192.168.1.11 (此IP为机器的实际IP,自己配置时根据实际情况而定)

LDAP Client Machine N...... (其余N多的client机器不一一列举,完成一个client配置后,其他机器Clone整个过程即可 :-))

××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××

写在开始之前:在自己第一次做LDAP配置的时候,也曾查阅了很多国内的相关博客和帖子,发现好多讲的都不够完善,让人在安装和配置调试遇到问题是,总要浪费很大一部分时间来游走于各大搜索引擎去寻根问药,多么痛苦的过程,而且好多还被“墙”了,你们懂得。。。Anyway,通过不断的尝试和摸索,还是搞定了LDAP的配置,下面来和大家分享一下整个配置过程,包括:client/server配置,su配置,ssh配置...

1.LDAP Server Setup:

a.安装LDAP服务(使用YUM本地光盘安装)

# yum install openldap-* -y

会提示安装以下几个必须的包,另外鉴于依赖,可能还会安装一些其他的包,所以我们选择-y:

openldap-devel-2.4.23-26.el6.x86_64

openldap-clients-2.4.23-26.el6.x86_64

openldap-2.4.23-26.el6.x86_64

openldap-servers-2.4.23-26.el6.x86_64

....

OpenLDAP 使用Berkely-DB来作为数据库存储信息,我们可以去官网下载解压到本地安装。But,用Yum的话,应该会帮我们做好这一切事情。 我们只要在安装完后检查一下是否安装了db4*相关的rpm包就可以了。If true,那恭喜,我们可以进行下一步了。If not,请用yum命令安装。

查看rpm安装包的命令:rpm -qa | grep db4

b.拷贝LDAP配置文件到LDAP目录(redhat6.3):

# cd /etc/openldap/

# cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf

Note: redhat6.0或6.1版本配置文件在主目录有备份:

# cd /etc/openldap/

# cp slapd.conf.bak slapd.conf

c.创建LDAP管理员密码:

# slappasswd

这里我输入的密码是redhat,输入完密码后,返回一串密文,先保存到剪贴板,之后要复制到LDAP配置文件中使用:

{SSHA}pfAJm+JJa4ec2y8GjTc8uMEJpoR5YKLy

d.编译配置文件

# vi /etc/openldap/slapd.conf

....

# enable server status monitoring (cn=monitor)

database monitor

access to *

by dn.exact="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read

by dn.exact="cn=admin,dc=test,dc=com" read

by * none

#######################################################################

# database definitions

#######################################################################

database        bdb

suffix          "dc=test,dc=com"

checkpoint      1024 15

rootdn          "cn=admin,dc=test,dc=com"

# Cleartext passwords, especially for the rootdn, should

# be avoided.  See slappasswd(8) and slapd.conf(5) for details.

# Use of strong authentication encouraged.

# rootpw                secret

# rootpw                {crypt}ijFYNcSNctBYg

rootpw {SSHA}pfAJm+JJa4ec2y8GjTc8uMEJpoR5YKMn

.......

保存退出。

e.拷贝DB_CONFIG文件到指定目录

# cp /usr/share/openldap-servers/DB_CONFIG.example  /var/lib/ldap/DB_CONFIG

删除默认/etc/openldap/slapd.d下面的所有内容,否则后面在使用ldapadd的时候会报错:

# rm -rf /etc/openldap/slapd.d/*

f.启动LDAP的slapd服务,并设置自启动:

# service slapd restart

# chkconfig slapd on

赋予配置目录相应权限:

# chown -R ldap:ldap /var/lib/ldap

# chown -R ldap:ldap /etc/openldap/

g.测试并生成配置文件:

slaptest  -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d

返回config file testing succeeded,则配置成功。

赋予生成的配置文件予权限并重启:

# chown -R ldap:ldap /etc/openldap/slapd.d

# service slapd restart

h.创建一个账号,以备客户端测试登陆

# useradd ldapuser1

# passwd ldapuser1

至此,这些用户仅仅是系统上存在的用户(存储在/etc/passwd和/etc/shadow上),并没有在LDAP数据库里,所以要把这些用户导入到LDAP里面去。但LDAP只能识别特定格式的文件 即后缀为ldif的文件(也是文本文件),所以不能直接使用/etc/passwd和/etc/shadow。 需要migrationtools这个工具把这两个文件转变成LDAP能识别的文件。

i.安装配置migrationtools

# yum install migrationtools -y

j.进入migrationtool配置目录

# cd /usr/share/migrationtools/

首先编辑migrate_common.ph

# vi  migrate_common.ph

...

# Default DNS domain

$DEFAULT_MAIL_DOMAIN = "test.com";

# Default base

$DEFAULT_BASE = "dc=test,dc=com";

.......

 类似资料: