CentOS安装LDAP

前言

轻型目录访问协议英文Lightweight Directory Access Protocol缩写LDAP,/ˈɛldæp/)是一个开放的,中立的,工业标准的应用协议,通过IP协议提供访问控制和维护分布式信息的目录信息。

LDAP的主要应用场景

1.网络服务:DNS服务
2.统一认证服务:
3.Linux PAM (ssh, login, cvs. . . )
4.Apache访问控制
5.各种服务登录(ftpd, php based, perl based, python based. . . )
6.个人信息类,如地址簿
7.服务器信息,如帐号管理、邮件服务等

注意:从OpenLDAP2.4.23版本开始所有配置数据都保存在/etc/openldap/slapd.d/中,不再使用slapd.conf作为配置文件

安装

LDAP

安装工具

1
2
sudo yum install -y openldap compat-openldap openldap  openldap-clients  openldap-devel openldap-servers 
# 可选 collectd-openldap
  • 安装后的目录:/etc/openldap/
  • 数据文件路径:/var/lib/ldap
  • 模板数据库配置文件: /usr/share/openldap-servers/DB_CONFIG.example
  • /usr/share/openldap-servers/slapd.ldif

如果是虚拟机安装:需要挂载cdrom

启动服务

1
2
3
sudo systemctl start slapd
sudo systemctl enable slapd
sudo systemctl status slapd

查看端口

占用 389 端口

1
netstat -tlnp | grep slapd

查看用户

1
tail -n 1 /etc/passwd

配置

修改域信息

设置管理员密码

1
2
3
slappasswd
# 也可以指明密码
slappasswd -s maxzhao

输出的密码:{SSHA}0tKDKqne3gJ30xZ73rDO491r/AlaJd0N

修改域信息

1
2
cd /etc/openldap/slapd.d/cn\=config
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif

image-20220518194041425

  • olcRootDN:cn=root 中的 root是管理员用户名
  • olcRootPW:表示管理员密码

修改管理员信息

1
vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif

image-20220518193954213

  • dn.base是修改OpenLDAP的管理员的相关信息

验证OpenLDAP的基本配置,使用如下命令:

1
slaptest -u

image-20220518194138726

重启

1
2
sudo systemctl restart slapd
sudo systemctl status slapd

配置OpenLDAP数据库

OpenLDAP默认使用的数据库是BerkeleyDB,现在来开始配置OpenLDAP数据库,使用如下命令:

1
2
3
4
5
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
cp /usr/share/openldap-servers/slapd.ldif /etc/openldap/slapd.ldif
chown ldap:ldap -R /var/lib/ldap
chmod 700 -R /var/lib/ldap
ll /var/lib/ldap/

image-20220518194451664

/var/lib/ldap/就是 BerkeleyDB 数据库默认存储的路径。

导入基本Schema

1
2
3
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

安装 migrationtools

migrationtools 实现OpenLDAP 用户及用户组的添加,migrationtools 开源工具通过查找/etc/passwd、/etc/shadow、/etc/groups 生成LDIF 文件,并通过ldapadd 命令更新数据库数据,完成用户添加。

1
yum install -y migrationtools

修改migrate_common.ph文件

migrate_common.ph文件主要是用于生成ldif文件使用,修改migrate_common.ph文件,如下:

1
vim /usr/share/migrationtools/migrate_common.ph +71

写入

1
2
3
$DEFAULT_MAIL_DOMAIN = “maxzhao.com”;
$DEFAULT_BASE = “dc=maxzhao,dc=com”;
$EXTENDED_SCHEMA = 1;

image-20220518195011644

添加用户和用户组

管理员用户就是 root,没有普通用户

添加系统用户

1
2
3
4
5
6
groupadd ldapg1
groupadd ldapg2
useradd -g ldapg1 ldapu1
useradd -g ldapg2 ldapu2
echo '1' | passwd --stdin ldapu1
echo '2' | passwd --stdin ldapu2

生成 ldif文件

取出用户

1
2
3
4
grep ":10[0-9][0-9]" /etc/passwd > /root/users
grep ":10[0-9][0-9]" /etc/group > /root/groups
cat users
cat groups

image-20220518195600679

根据上述生成的用户和用户组属性,使用migrate_passwd.pl文件生成要添加用户和用户组的ldif,如下:

1
2
3
4
/usr/share/migrationtools/migrate_passwd.pl /root/users > /root/users.ldif
/usr/share/migrationtools/migrate_group.pl /root/groups > /root/groups.ldif
cat users.ldif
cat groups.ldif

image-20220518195823844

image-20220518195845785

导入用户到LDAP

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
cat > /root/base.ldif << EOF
dn: dc=maxzhao,dc=com
o: maxzhao com
dc: maxzhao
objectClass: top
objectClass: dcObject
objectclass: organization
dn: cn=root,dc=maxzhao,dc=com
cn: root
objectClass: organizationalRole
description: Directory Manager
dn: ou=People,dc=maxzhao,dc=com
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=maxzhao,dc=com
ou: Group
objectClass: top
objectClass: organizationalUnit
EOF

导入基础数据库:

1
ldapadd -x -w "maxzhao" -D "cn=root,dc=maxzhao,dc=com" -f /root/base.ldif

导入用户到数据库

1
ldapadd -x -w "maxzhao" -D "cn=root,dc=maxzhao,dc=com" -f /root/users.ldif

image-20220518200312581

查看BerkeleyDB数据库文件

1
ll /var/lib/ldap/

https://www.ilanni.com/?p=13775

本文地址: https://github.com/maxzhao-it/blog/post/4754f56b/