统一身份认证系统 OpenLDAP 完整部署

统一身份认证系统 OpenLDAP 完整部署

0)LDAP 介绍

LDAP 是什么?在那些地方用会用到 LDAP?

LDAP英文名称:Lightweight Directory Access Protocol 轻型目录访问协议。

常用在单点登录,用户可以通过一个用户和密码登录多个服务,方便管理。目前我们使用的一下工具,Jenkins,GitLab,Jumpserver,Grafana,Confluence,NextCloud 等等,很多开源的软件都集成了 LDAP,方便了用户使用,也方便了运维管理。下面针对 LDAP 在 CentOS7 环境中的安装方法进行一下说明:

1)LDAP 一般组织架构

1)软件安装

yum install openldap openldap-clients openldap-servers -y

2)配置 OpenLDAP Server

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

将 cn=Manager,dc=my-domain,dc=com

改为你自己的,内容可以随便,但是所有地方都要一致

cn=admin,dc=wuhanjiayou,dc=cn

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

将 olcSuffix: dc=my-domain,dc=com olcRootDN: cn=Manager,dc=my-domain,dc=com

改为

olcSuffix: dc=wuhanjiayou,dc=cn

olcRootDN: cn=admin,dc=wuhanjiayou,dc=cn

然后在末尾添加一行

此处设置的是 认证密码

olcRootPW: 123456

拷贝 DB 文件

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

// 修改该文件的权限

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

测试配置文件是否正确

slaptest -u

如果修改了 hostname,相应的要修改 hosts,不然执行命令会卡住,很长时间才会执行完成。

hostnamectl set-hostname ldap

echo '127.0.0.1 ldap' >> hosts

启动服务

systemctl start slapd

systemctl enable slapd

添加 scheme 表 [ 重要 ]

否则,后面使用 ldapaddgroup 命令会报错 Error adding group test to LDAP

ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/nis.ldif

ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/cosine.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

3)创建 base.ldif 文件

创建如下文件,内容按照自己的配置修改

[root@localhost ~] vim base.ldif

dn: dc=wuhanjiayou,dc=cn

objectClass: dcObject

objectClass: organization

o: wuhanjiayou.cn

dc: wuhanjiayou

dn: ou=users,dc=wuhanjiayou,dc=cn

objectClass: organizationalUnit

objectClass: top

ou: users

dn: ou=groups,dc=wuhanjiayou,dc=cn

objectClass: organizationalUnit

objectClass: top

ou: groups

建立最基础的目录结构

ldapadd -x -W -D "cn=admin,dc=wuhanjiayou,dc=cn" -f base.ldif

验证基础目录是否创建成功

vim /etc/openldap/ldap.conf

添加如下行信息

BASE dc=wuhanjiayou,dc=cn

URI ldap://10.0.59.114 ldap://10.0.59.114:666

4)管理用户与组

ldapscripts-2.0.8.tgz.zip

1. 安装依赖包 yum install sharutils

yum install sharutils -y

2. Ldapscripts 需要手动下载安装

cd /opt

tar xzvf ldapscripts-2.0.8.tgz

cd ldapscripts-2.0.8 && make install PREFIX=/

3. 配置 ldapscripts

vim /etc/ldapscripts/ldapscripts.conf

3.1 将 SERVER="ldap://localhost" 改成 SERVER="ldap://10.0.59.114"

3.2 将 SUFFIX="dc=example,dc=com" 改成 SUFFIX="dc=wuhanjiayou,dc=cn"

3.3 将 BINDDN="cn=Manager,dc=example,dc=com" 改成 BINDDN="cn=admin,dc=wuhanjiayou,dc=cn"

3.4 去掉 #ICONVCHAR="ISO-8859-15" 的注释

4. 修改 /etc/ldapscripts/ldapscripts.passwd 文件

sh -c "echo -n '123456' > /etc/ldapscripts/ldapscripts.passwd"

5)管理 Group,User

// 创建 Group

ldapaddgroup it

// 创建 User

ldapadduser wangj it

// 设置用户密码

ldapsetpasswd wangj

6)基于 PHPLDAPAdmin 访问管理后台

LDAP 装好后,下面安装 Web 界面 PHPLDAPAdmin。

我们可以安装 PHPLDAPAdmin Web 平台来管理我们的 OpenLDAP 服务,这样就可以在 Web 页面进行 OpenLDAP 服务的数据增删改查,方便运维。

安装 Apache 和 PHP

yum install httpd php php-ldap php-gd php-mbstring php-pear php-bcmath php-xml -y

安装 PHPLDAPAdmin

# 需要先安装 epel 源

yum -y install epel-release

yum --enablerepo=epel -y install phpldapadmin

配置 HTTPD

vim /etc/httpd/conf/httpd.conf

AllowOverride All // 第 151 行

DirectoryIndex index.html index.cgi index.php // 第 164 行

# 末尾添加如下几行

# server's response header

ServerTokens Prod

# keepalive is ON

KeepAlive On

配置 PHPLDAPAdmin,修改登入规则和监听端口

vim /etc/phpldapadmin/config.php

# 397 行取消注释, 398 行添加注释 [设置通过 DN 整个条目来登入 PHPLDAPAdmin 而不是通过用户的 UID 来登入 ]

$servers->setValue('login','attr','dn');

// $servers->setValue('login','attr','uid');

# [ 如果 LDAP 服务安装和 PHPLDAPAdmin 服务安装不在同一个服务器上 ]

# 则修改 298 和 301 行, 修改 PHPLDAPAdmin 监听的 IP 和端口, 并取消注释

# [ 如果 LDAP 服务和 PHPLDAPAdmin 服务在同一台服务器上 ]

# 且 LDAP 的端口为 389, 则可不修改, 直接取消注释即可

/* Examples:

'ldap.example.com',

'ldaps://ldap.example.com/',

'ldapi://%2fusr%local%2fvar%2frun%2fldapi'

(Unix socket at /usr/local/var/run/ldap) */

$servers->setValue('server','host','127.0.0.1');

配置 PHPLDAPAdmin

修改 PHPLDAPAdmin 的配置文件,访问控制权限 vim /etc/httpd/conf.d/phpldapadmin.conf,允许谁访问添加访问的 IP 段,允许远程客户端访问。

vim /etc/httpd/conf.d/phpldapadmin.conf

#

# Web-based tool for managing LDAP servers

#

Alias /phpldapadmin /usr/share/phpldapadmin/htdocs

Alias /ldapadmin /usr/share/phpldapadmin/htdocs

# Apache 2.4 # Apache版本是 2.4 的修改这里的配置

Require local

Require ip 10.0.59.0/24 # 修改

# Apache 2.2

Order Deny,Allow

Deny from all

Allow from 127.0.0.1

Allow from ::1

启动 PHPLDAPAdmin

systemctl enable httpd

systemctl start httpd

Web 浏览器访问网址

使用数据库管理账户登入 PHPLDAPAdmin,如果登入成功,则表示配置成功。

http://10.0.59.114/ldapadmin/

用户名:cn=admin,dc=wuhanjiayou,dc=cn 密码:123456

如登录报错:可尝试关闭服务器 SELinux 试试

setenforce 0

大功告成~

相关文章

真的花钱买经验,一晚上刷4亿经验
365365bet官

真的花钱买经验,一晚上刷4亿经验

⌛ 01-10 👁️‍🗨️ 6636
瓜叶菊的繁殖方法与具体步骤
约彩365官网

瓜叶菊的繁殖方法与具体步骤

⌛ 09-03 👁️‍🗨️ 575